我有以下设置:带有两个 LXC 容器的 Proxmox 主机。LXC A:10.0.0.10 LXC B:10.0.0.30
在主机内部我可以做
wget 10.0.0.30
这很完美。但这在 LXC A 内部不起作用。我总是超时。我可以从 LXC A 执行 ping。
我的 vmbr0 配置如下:
auto vmbr0
iface vmbr0 inet static
address 10.0.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o ens18 -j MASQUERADE
# post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
post-up iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 80 -j DNAT --to 10.0.0.10:80
post-up iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 85 -j DNAT --to 10.0.0.10:81
post-up iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 443 -j DNAT --to 10.0.0.10:443
# post-up iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 10000 -j DNAT --to 10.0.0.10:>
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o ens18 -j MASQUERADE
我应该从哪里开始调试这个问题?谢谢。
答案1
终于我找到了答案。确实就这么简单。
iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 80 ! -s 10.0.0.0/24 -j DNAT --to 10.0.0.10:80
我必须补充一点:
! -s 10.0.0.0/24
之前,此规则适用于源自接口 ens18 的所有流量。来自端口 80 上的 ens18 的所有流量均转发到 10.0.0.10。由于 vmbr0 也连接到接口 ens18,因此始终应用此规则。
排除 IP 范围 10.0.0.0/24 内的流量后,现在可以实现直接连接!