Sebenarnya, ada sejumlah alasan bagus untuk menggunakan NAT dengan VM Anda, bukan antarmuka yang dijembatani .. (Ini adalah pertanyaan lama, tetapi muncul sebagai hasil pertama saya mencari cara melakukan ini, bermigrasi dari VirtualBox tempat saya melakukan sepanjang waktu, jadi saya pikir ini layak ditambahkan)
Hanya beberapa alasan untuk menggunakan NAT adalah:
- Mudah dan portabel
- jika Anda menggunakan LAN pelanggan yang membutuhkan alamat MAC yang dikenal untuk mendapatkan IP (jika tidak, Anda harus mencoba menebak yang tidak terpakai dan mempertaruhkan konflik, dan umumnya menarik perhatian buruk pada diri sendiri :)),
- hal-hal seperti mengizinkan VMs Anda untuk menggunakan server proxy tunggal pada host Anda (yaitu jika Anda tidak mengontrol jaringan yang sedang Anda gunakan), atau dapat membuat firewall / filter lalu lintas siaran (windows dll) mereka di jalan keluar dalam satu tempat yang nyaman.
- bisa menetapkan IP tetap atau dilindungi undang-undang agar Anda dapat merujuknya dengan nama / IP dari luar host (sekali lagi, jika Anda tidak bisa mendapatkan reservasi di jaringan dengan antarmuka yang dijembatani)
- tetapi yang terpenting, ini memungkinkan Anda untuk bersembunyi di balik konfigurasi firewall tunggal pada host Anda, dan berbagi hal-hal di antara Anda / mereka dengan cara yang lebih terlindungi, daripada mengekspos setiap VM ke "liar" dan harus melindungi mereka semua secara individu dll .. Sama seperti yang Anda lakukan dengan modem / router internet
Ngomong-ngomong, untuk kasus saya (VMWare Workstation 10, host Linux, OS X Guest), dan siapa saja yang menemukan ini, ini adalah ikhtisar dari apa yang bekerja untuk saya. Terlepas dari waffling dan what-ifs, sebenarnya hanya ada 3 langkah utama.
- Jadi, pertama-tama Anda harus memutuskan apa yang ingin Anda izinkan untuk VM / tamu Anda dari "di luar" host Anda (perhatikan seperti di bawah ini, Anda akan dapat mengaksesnya dengan mudah dari host itu sendiri). Taruhan aman hanya akan mengekspos / memperbolehkan hanya SSH (port 22), ke mesin-mesin di subnet Anda. Anda juga dapat mengizinkan port 80/443 jika Anda memiliki server web di VM, dll, dan Anda juga dapat menggunakan "tunnel" untuk mengakses layanan lain menggunakan SSH (akan memberikan contoh di bawah), dan menggunakan FUSE / SSHFS untuk memberikan host Anda akses filesystem .. (Atau fasilitas folder bersama di VMWare, tapi saya belum menggunakannya).
Jadi idenya adalah seperti: "Izinkan hal-hal di jaringan lokal host saya (Eg 10.1.1.0/24, atau 192.168.1.0/24) untuk terhubung ke port 22222 pada host, yang akan kami teruskan ke port 22 dari tamu spesifik ". Itu harus menjadi tamu tertentu saja (Ini membuat Anda dapat mengkonfigurasi IP Anda menjadi lebih berguna, dan Anda dapat mengubahnya semuanya di satu tempat tanpa membuka setiap VM), seperti halnya melakukannya melalui router internet Anda untuk memungkinkan hal-hal bermain game melalui dll
Jadi, setelah semuanya selesai, Anda bisa menggunakan laptop atau mesin lain di LAN, ssh ke workstation Anda (host vmware) di 22222, dan Anda akan dibawa ke tamu yang Anda suruh untuk meneruskannya. Seperti disebutkan di atas, jika Anda juga mengatakan ingin dapat terhubung ke server postgres pada tamu (atau server vnc, yang sering tidak terenkripsi), Anda dapat melakukan tunnel pada perintah yang sama (alih-alih menambahkannya juga ke dhcp conf). Untuk misalnya
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
dan Anda akan dibawa ke tamu melalui ip forward di vmware, dan bisa mengarahkan alat pgadmin3 Anda ke localhost: 54320 (non-priveleged) di laptop Anda, dan lalu lintas Anda di jaringan akan dienkripsi. (Catatan 'localhost' sudah ada diteruskan ke tamu)
Catatan
- Ada segala macam cara untuk melakukan ini .. Untuk satu, Anda bisa tunnel untuk menjadi tuan rumah dan menentukan ip tamu di -L dan itu akan "keluar" dan mengarahkan Anda ke sana, tetapi opsi nat.conf bagus dan nyaman, dan Anda tidak harus mengetiknya setiap kali. Ada juga cara lain untuk meneruskan porta
- Saya telah melihat referensi pada beberapa utas gui jaringan virtual untuk melakukan ini (seperti yang dimiliki virtualbox), tetapi saya tidak dapat menemukannya di versi ini
- Saya tidak menggunakan windows, jadi meskipun saya menganggap itu akan sangat mirip dengan mengkonfigurasi sebagai tuan rumah, saya tidak yakin. Konfigurasi NAT harus bekerja untuk semua tamu vmware (walaupun saya belum menggunakan versi VMWare lainnya)
VMware mengatur rute sehingga tuan rumah dapat menghubungi tamu NAT secara langsung, yaitu dari konsol tuan rumah, saya dapat melakukan ping / ssh dll tamu NAT 192.168.198.10 (didefinisikan di atas) secara langsung
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
- Dari catatan linux, ada beberapa mengutak-atik vmware dengan systemd init untuk memulai dengan baik` secara otomatis, dan seiring dengan itu saya menemukan saya tidak bisa hanya me-restart vmware (vmci tidak memuat lagi), dan saya harus memulai ulang mesin saya untuk membuat hal-hal NAT / DHCP di atas tetap, tetapi Anda mungkin tidak memiliki masalah. Ada beberapa utas dengan solusi systemd sekalipun