我有 2 个 Ubuntu 系统,都安装了 Ubuntu 20.04,一个安装了服务器(5.4.0-42-generic),另一个安装了桌面(5.4.0-58-generic)。我可以在安装了服务器的一个系统上使 IP 转发正常工作。但是我无法在另一个安装了桌面的系统上使它正常工作。能够转发数据包的系统和不能转发数据包的系统上的网络配置相同。
我已经检查过了
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
我已经使用以下命令刷新了 iptables:
iptables -F
ufw 防火墙处于非活动状态。
我可以从任一侧 ping 路由器的两个接口,因此我认为任一侧主机上的路由表都是正确的。我还可以从路由器 ping 任一侧主机上的接口,因此我认为路由器上的路由表是正确的。我已禁用 NetworkManager;正在使用 networkd /etc/netplan/*yaml
。
关于如何调试这个问题有什么建议吗?
答案1
如果 iptableFORWARD
策略没有设置为ACCEPT
。
$ sudo iptables --list
Chain FORWARD (policy DROP) <-- HERE
target prot opt source destination
将其更改为ACCEPT
。
sudo iptables --policy FORWARD ACCEPT
Chain FORWARD (policy ACCEPT)
target prot opt source destination
有时,即使启用了 ipv4 转发,也可能会出现此问题