我在 proxmox 中正确配置网络时遇到了一些问题。
简而言之,从容器中,我可以访问外部的任何 Web 服务器(例如:google.com),但我无法访问容器上的 Web 服务器。Web 服务器可从互联网访问。
设置如下:
DNS :mydomain.example -> xxxx/32
主持人
vmbr0: xxxx venet0:(路由到各个容器)
Iptables 规则:
iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 80 -i vmbr0 -j DNAT --to-destination y.y.y.z:n
iptables -t nat -A POSTROUTING -o vmbr0 -s y.y.y.0/24 ! -d y.y.y.0/24 -j MASQUERADE
容器
venet0: yyyz
问题
从容器执行的命令:
ping google.com:好的
ping mydomain.example:好的
获得http://google.com 好的
获得http://mydomain.example:击倒
Resolving mydomain.example... x.x.x.x
Connecting to mydomain.example|x.x.x.x|:80... failed: Connection refused.
我遗漏了什么?您需要更多信息吗?
谢谢
答案1
您应该-i
在规则中删除该选项prerouting
。
这里,请求来自venet0
接口,因此您的实际DNAT
规则不适用。