按照了文章,我也给一个容器手动配置了网络,最后给br666
这个 Bridge 配置 NAT 后
sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o enp7s0 -j MASQUERADE
在 Ubuntu 容器里 ping 还是不通的
root@6414d7278905:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
我在宿主机上 tcpdump 还是能看到 ICMP 包的
sudo tcpdump icmp -i br666
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br666, link-type EN10MB (Ethernet), capture size 262144 bytes
16:07:58.270987 IP 10.0.0.2 > dns.google: ICMP echo request, id 78, seq 73, length 64
16:07:59.295299 IP 10.0.0.2 > dns.google: ICMP echo request, id 78, seq 74, length 64
16:08:00.319332 IP 10.0.0.2 > dns.google: ICMP echo request, id 78, seq 75, length 64
有echo request
没echo reply
,应该是 iptables 配置错了吧
1
salamanderMH OP 看了下 https://askubuntu.com/questions/1052789/correct-way-to-route-between-2-interfaces-with-netplan-in-ubuntu-18-04 这里
是需要添加 FORWARD 链 我这里的情况的话,就是要 ``` sudo iptables -A FORWARD -i br666 -o br666 -j ACCEPT sudo iptables -A FORWARD -i br666 ! -o br666 -j ACCEPT sudo iptables -A FORWARD ! -i br666 -o br666 -j ACCEPT ``` 按 Docker0 的那个网桥的 FORWARD 的规则来的。 |