
Я пытаюсь достичь определенного IP-адреса из гостевой системы VirtualBox с использованием сети только для хоста в другой подсети. Я хочу, чтобы гостевая машина была изолирована (недоступна извне, за исключением этого конкретного IP-адреса, и, что более важно, не имела доступа в Интернет). Я не уверен, возможно ли это вообще, поскольку это называется сетью «только для хоста», и, возможно, есть другое, лучшее решение для этого — я буду рад любым советам.
Вот моя текущая настройка:
Хост-машина A (Ubuntu 14.04):
eth0: 192.168.0.100, шлюз 192.168.0.1
vboxnet0: 192.168.56.1
Гостевая машина B (Windows 10) с хост-адаптером:
192.168.56.101, шлюз 192.167.56.1
Другая машина C:
192.168.0.101
Мне нужна эта машина.Бможет достичь машиныАиСно нет других машин/сетей или интернета. В настоящее время я могу пинговать хост-машинуАс гостевой машиныБчерез ping 192.168.0.100
, но не машинуС. Я попробовал создать маршрут на хост-машинеАиспользуя команду
ip route add 192.168.56.101 via 192.168.0.100 dev eth0
но пинг отБкАпосле этого работать не будет.
Редактировать:Теперь мне ясно, что создание маршрута на хосте не имеет смысла и является неправильным подходом к данному вопросу.
Должен признать, что я не эксперт в области сетей, поэтому буду рад любой обратной связи.
решение1
Просто для справки я хотел бы опубликовать решение, которое сработало у меня после перепробования разных способов.
Следующие шаги сработали у меня с Ubuntu 14.04 в качестве хоста и Windows 10 в качестве гостя:
Убедитесь, что IP-пересылка включена.
sudo sysctl net.ipv4.ip_forward=1 sudo sysctl -p
Установить
iptables
правила:sudo iptables -t filter -I FORWARD --in-interface vboxnet0 --out-interface eth0 --source 192.168.56.0/24 --destination 192.168.0.101 -j ACCEPT sudo iptables -t filter -I FORWARD --in-interface eth0 --out-interface vboxnet0 --source 192.168.0.0/24 --destination 192.168.56.0/24 -j ACCEPT sudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
Применив эти шаги, я смогу добраться до машинАиСот гостяБно нет другого адреса и тем более интернета. Я не знаю точно, почему это работает, и, возможно, кто-то, кто разбирается в этой теме, знает объяснение.