Ситуация:
У меня есть бродячий ящик (работает centos / 7) , который создает экосистему сервисов с использованием ansible (docker_container).В целях разработки я хотел бы перенаправить трафик с localhost:8444
в бродячем окне на приложение, работающее на моей локальной машине (с использованием IntelliJ)
на локальной машинедоступно из vagrant box через IP-адрес по умолчанию 10.0.2.2
На моем локальном компьютере приложение работает на localhost:9081
и может также взаимодействовать со всеми службами vagrant box через localhost, потому чтовсе порты перенаправляются на локальный компьютер с помощью.
config.vm.network "forwarded_port", guest: i, host: i, host_ip: "127.0.0.1"
в Vagrantfile
Из окна vagrant приложение должно быть доступно через 10.0.2.2:9081
Примечание: контейнеры Docker используют host
сетевой режим, что означает, что они используют локальную сеть виртуальной машины
Я хотел бы:
Перенаправить трафик, идущий наlocalhost:8444
(в поле Vagrant) до 10.0.2.2:8091
на моем хост-компьютере
Я попытался:
iptables
(в окне Vagrant):
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8444 -j DNAT --to-destination 10.0.2.2:9081
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Однако, когда я пытаюсь(внутри бродячей коробки)
curl localhost:8444
curl: (7) Failed connect to 127.0.0.1:8444; Connection refused
Обратите внимание, что
curl 10.0.2.2:9081
Работает