Насправді, існує ціла купа вагомих причин використовувати NAT для своїх віртуальних машин, а не мостового інтерфейсу .. (Це давнє питання, але він з'явився як мій перший результат пошуку того, як це зробити, переміщаючись з VirtualBox, куди я роблю це весь час, тому я вважав, що варто додати)
Лише кілька причин використовувати NAT:
- Це легко і портативно
- якщо ви користуєтеся локальною мережею клієнтів, для отримання IP-адреси потрібна відома MAC-адреса (інакше вам доведеться спробувати відгадати невикористані та ризикувати конфліктом, і взагалі привертати до себе погану увагу :)),
- такі речі, як дозволити вашим віртуальним машинам використовувати один проксі-сервер на своєму хості (IE, якщо ви не керуєте мережею, на якій ви працюєте), або мати можливість брандмауера / фільтрувати їх трансляцію (windows тощо) трафіку на виході за один зручне місце.
- можливість призначити їм фіксовану або зарезервовану IP-адресу, щоб ви могли посилатися на них по імені / IP з-за меж хоста (знову ж таки, якщо ви не можете отримати бронювання в мережі за допомогою мостового інтерфейсу)
- але найбільше це дозволяє вам ховатися за єдиним конфігурацією брандмауера на своєму хості та ділитися речами між вами / ними більш захищеним способом, а не піддавати кожен VM «дикому» та захищати їх усіх індивідуально тощо .. Так само, як ви робите з інтернет-модемом / роутером
У будь-якому випадку для мого випадку (VMWare Workstation 10, хост Linux, OS X Guest) та кожного, хто натрапляє на це, це огляд того, що працювало для мене. Крім вафлі та що-небудь, є насправді лише 3 основні кроки.
- Отже, спершу вам потрібно вирішити, що ви хочете дозволити своєму ВМ / гостю "поза" вашого хоста (зверніть увагу, як нижче, ви зможете легко дістатися до нього з самого хоста). Безпечною ставкою було б просто виставити / дозволити лише SSH (порт 22) машинам у вашій підмережі. Ви також можете дозволити порт 80/443, якщо у вас був веб-сервер на VM тощо, а також ви можете використовувати "тунель" для доступу до інших служб за допомогою SSH (наведемо приклад нижче), а також використовувати FUSE / SSHFS для того, щоб дати хосту доступ до файлової системи .. (Або об'єкт спільної папки у VMWare, але я його ще не використовував).
Тож ідея є приблизно такою: "Дозволити речам у локальній мережі мого хоста (наприклад, 10.1.1.0/24 або 192.168.1.0/24) підключитися до порту 22222 на хості, який ми будемо пересилати разом до порту 22 a конкретний гість ". Звичайно, це повинен бути конкретний гість (Це робить можливість налаштувати ваші IP-адреси ще кориснішими, і ви можете змінити їх в одному місці, не відкриваючи кожен VM), як і робити це через Інтернет-роутер, щоб дозволити ігрові речі через тощо.
Отже, як тільки це все буде зроблено, ви можете бути на своєму ноутбуці чи іншій машині в локальній мережі, перейдіть на свою робочу станцію (хост vmware) 22222, і ви будете бігти до гостя, про який ви сказали, щоб переслати вас. Як було сказано вище, якщо ви також скажете, що хочете мати можливість підключитися до postgres-сервера на гостьовому сервері (або vnc-сервері, який часто не шифрується), ви можете тунелювати в цій самій команді (замість того, щоб додавати його також до конфіденційності dhcp). Наприклад, наприклад
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
і ви будете запрошені до гостя через ip вперед у vmware, і ви могли б вказати свій інструмент pgadmin3 на localhost: 54320 (без приватного доступу) на своєму ноутбуці, і ваш трафік в мережі буде зашифрований. (Примітка "localhost" там уже передано гостю)
Примітки
- Існують всілякі способи цього зробити. Для одного, ви можете просто тунель для розміщення і вкажіть ip гостя в -L, і він "вирветься" і вкаже вас туди, але варіант nat.conf хороший і зручно, і вам не потрібно вводити його щоразу. Існують також інші способи переадресації портів
- Я бачив посилання на пару потоків gui віртуальної мережі, щоб це зробити (як у virtualbox), але я не міг знайти його в цій версії
- Я не використовую Windows, так що, хоча я припускаю, це було б дуже схоже на налаштування як хост, я не впевнений. Налаштування NAT повинні працювати для будь-якого гостя vmware (хоча я не використовував жодної іншої версії VMWare)
VMware встановлює маршрут, щоб хост міг зв’язатися з NAT-гостем безпосередньо, IE з консолі хоста, я можу пінг / ssh і т.д. NAT гість 192.168.198.10 (визначено вище)
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
- З нотатки про Linux, є деяке сповіщення з vmware з systemd init, щоб добре запуститися автоматично, і разом з цим я виявив, що не можу просто перезапустити vmware (vmci не завантажується знову), і мені доведеться перезапустити моя машина, щоб зробити NAT / DHCP речі над палицею, але у вас може не виникнути проблеми. Однак є деякі теми з системними рішеннями