![使用 iptables 将 PREROUTING 到 LXC 容器](https://linux22.com/image/1560750/%E4%BD%BF%E7%94%A8%20iptables%20%E5%B0%86%20PREROUTING%20%E5%88%B0%20LXC%20%E5%AE%B9%E5%99%A8.png)
我已经用lxd设置了两个容器,一个用haproxy,用nginx指向另一个容器。
我希望我的服务器在端口 80 上的传入流量通过 haproxy 进入容器。这是我为 iptables 提供的规则,但我仍然无法从笔记本电脑上的本地网络访问我的服务器(将服务器的本地 ip 提供给浏览器)。
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.148.218.95:80
我也试过
$ curl http://127.0.0.1:80 curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused
和
$ curl http://192.168.100.5:80 curl: (7) Failed to connect to 192.168.100.5 port 80: Connection refused
在服务器本身上。
有人可以启发我吗?
答案1
我明白了(尽管我还不确定为什么):
-A PREROUTING -d 192.168.100.5/32 -j DNAT --to-destination 10.148.218.95
-A OUTPUT -d 192.168.100.5/32 -j DNAT --to-destination 10.148.218.95
-A POSTROUTING -s 10.148.218.95/24 -d 10.0.4.30/32 -j MASQUERADE