情况:
我有一个无聊的盒子(运行centos / 7),它使用ansible(docker_container)构建服务生态系统。
出于开发目的,我想将流量从localhost:8444
在无业游民的框中重定向到在本地计算机上运行的应用程序(使用IntelliJ)
可通过默认IP地址10.0.2.2
从游民箱中访问本地计算机
在我的本地计算机上,该应用程序正在localhost:9081
上运行,并且还可以通过localhost与vagrant框内的所有服务进行通信,因为所有端口都使用来转发到本地计算机。
config.vm.network "forwarded_port", guest: i, host: i, host_ip: "127.0.0.1"
在Vagrantfile
在“无业游民”框中,可以通过10.0.2.2:9081
来访问该应用
注意:Docker容器使用host
网络模式,这意味着它们正在使用虚拟机的本地网络
我想
将流量从localhost:8444
(在Vagrant框中)重定向到主机上的10.0.2.2:8091
我尝试过:
iptables
(在“无业游民”框中):
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
作品