Trên thực tế, có rất nhiều lý do chính đáng để sử dụng NAT với máy ảo của bạn, thay vì giao diện cầu nối .. (Đây là một câu hỏi cũ, nhưng nó xuất hiện khi kết quả đầu tiên của tôi tìm kiếm cách thực hiện điều này, di chuyển từ VirtualBox nơi tôi làm tất cả thời gian, vì vậy tôi nghĩ rằng nó đáng để thêm vào)
Chỉ cần một vài lý do để sử dụng NAT là:
- Thật dễ dàng và di động
- nếu bạn đang sử dụng mạng LAN khách hàng yêu cầu địa chỉ MAC đã biết để nhận IP (nếu không, bạn sẽ phải thử đoán những người không sử dụng và có nguy cơ xảy ra xung đột và thường gây chú ý cho chính mình :)),
- những thứ như cho phép máy ảo của bạn sử dụng một máy chủ proxy duy nhất trên máy chủ của bạn (IE nếu bạn không kiểm soát mạng bạn đang bật) hoặc có thể tường lửa / lọc lưu lượng phát sóng (windows, v.v.) của chúng trên đường ra nơi thuận tiện.
- có thể chỉ định cho họ một IP cố định hoặc dành riêng để bạn có thể tham khảo chúng theo tên / IP từ bên ngoài máy chủ (một lần nữa, nếu bạn không thể đặt chỗ trên mạng với giao diện bắc cầu)
- nhưng trên hết, nó cho phép bạn ẩn đằng sau một cấu hình tường lửa duy nhất trên máy chủ của mình và chia sẻ mọi thứ giữa bạn / chúng theo cách được bảo vệ hơn, thay vì phơi bày mọi VM thành "hoang dã" và phải bảo vệ chúng một cách riêng lẻ, v.v. .. Giống như bạn làm với modem / bộ định tuyến internet
Dù sao, đối với trường hợp của tôi (VMWare Workstation 10, máy chủ Linux, OS X Guest) và bất kỳ ai vấp phải điều này, đây là tổng quan về những gì làm việc cho tôi. Ngoài waffling và what-ifs, thực sự chỉ có 3 bước chính.
- Vì vậy, trước tiên, bạn cần quyết định những gì bạn muốn cho phép VM / khách của bạn từ "bên ngoài" máy chủ của bạn (lưu ý như bên dưới, bạn sẽ có thể dễ dàng truy cập nó từ máy chủ). Đặt cược an toàn sẽ chỉ hiển thị / chỉ cho phép SSH (cổng 22), cho các máy trên mạng con của bạn. Bạn cũng có thể cho phép cổng 80/443 nếu bạn có máy chủ web trên VM, v.v. và bạn cũng có thể sử dụng "đường hầm" để truy cập các dịch vụ khác bằng SSH (sẽ đưa ra ví dụ bên dưới) và sử dụng FUSE / SSHFS để cung cấp cho máy chủ của bạn truy cập hệ thống tệp .. (Hoặc tiện ích thư mục dùng chung trên VMWare, nhưng tôi chưa sử dụng nó).
Vì vậy, ý tưởng này giống như: "Cho phép mọi thứ trên mạng cục bộ của máy chủ của tôi (Ví dụ: 10.1.1.0/24 hoặc 192.168.1.0/24) kết nối với cổng 22222 trên máy chủ, chúng tôi sẽ chuyển tiếp đến cổng 22 của một khách cụ thể ". Tất nhiên nó phải là một khách cụ thể (Điều này giúp có thể định cấu hình IP của bạn hữu ích hơn và bạn có thể thay đổi tất cả chúng ở một nơi mà không cần mở từng VM), giống như thực hiện thông qua bộ định tuyến internet của bạn để cho phép chơi trò chơi thông qua vv
Vì vậy, một khi tất cả đã xong, bạn có thể ở trên máy tính xách tay hoặc máy khác trên mạng LAN, ssh đến máy trạm của bạn (máy chủ vmware) vào ngày 22222 và bạn sẽ được gửi đến khách mà bạn đã nói với bạn để chuyển tiếp cho bạn. Như đã đề cập ở trên, nếu bạn cũng nói muốn có thể kết nối với máy chủ postgres trên máy khách (hoặc máy chủ vnc, thường không được mã hóa), bạn có thể tạo đường hầm trong cùng một lệnh (thay vì thêm nó vào conf dhcp). Ví dụ
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
và bạn sẽ được gửi cho khách thông qua ip chuyển tiếp trong vmware và có thể trỏ công cụ pgadmin3 của bạn tới localhost: 54320 (không thuộc quyền sở hữu) trên máy tính xách tay của bạn và lưu lượng truy cập của bạn trên mạng sẽ được mã hóa. (Lưu ý 'localhost' đã được chuyển tiếp cho khách)
Ghi chú
- Có tất cả các cách để làm điều này .. Đối với một, bạn chỉ có thể tạo đường hầm để lưu trữ và chỉ định ip của khách trong -L và nó sẽ "thoát ra" và chỉ cho bạn ở đó, nhưng tùy chọn nat.conf rất hay và thuận tiện và bạn không phải gõ nó mỗi lần. Ngoài ra còn có các cách chuyển tiếp cổng khác
- Tôi đã thấy tham chiếu đến một vài chủ đề của một gui mạng ảo để làm điều này (giống như hộp ảo), nhưng tôi không thể tìm thấy nó trong phiên bản này
- Tôi không sử dụng windows, vì vậy mặc dù tôi cho rằng nó sẽ rất giống với cấu hình như một máy chủ lưu trữ, tôi không chắc chắn. Các cấu hình NAT sẽ hoạt động cho mọi khách vmware mặc dù (mặc dù tôi chưa sử dụng bất kỳ phiên bản VMWare nào khác)
VMware thiết lập một tuyến đường để máy chủ có thể liên hệ trực tiếp với khách NAT, IE từ bảng điều khiển của máy chủ, tôi có thể ping / ssh, v.v ... khách NAT 192.168.198.10 (được xác định ở trên)
console ~> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
<snip>
192.168.198.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.233.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
- Từ một ghi chú linux, có một số vấn đề với vmware với systemd init để khởi động độc đáo, và cùng với đó tôi đã tìm thấy tôi không thể khởi động lại vmware (vmci không tải lại) và tôi phải khởi động lại Máy của tôi để tạo ra các công cụ NAT / DHCP ở trên, nhưng bạn có thể không gặp vấn đề gì. Có một số chủ đề với các giải pháp systemd mặc dù