如何禁用Ubuntu服务器的ip_forward

这是我的服务器启动后的状态:

root@vzu01-ubuntu:~# cat /proc/sys/net/ipv4/ip_forward 1 

没有其他启用的ip_forwardconfiguration:

 root@vzu01-ubuntu:~# grep -r ip_forward /etc /etc/sysctl.conf:net.ipv4.ip_forward=0 /etc/ufw/sysctl.conf:#net/ipv4/ip_forward=1 

如果我做了sysctl -p – 它禁用转发就好了,但重启后ip_forward重新启用。 即使我把sysctl -p放在rc.local中,也不会在启动时禁用ip_forward。

任何想法?

第1部分 – 更新sysctl.conf

编辑/etc/sysctl.conf ,添加下面一行:

 net.ipv4.ip_forward=0 

确保文件或/etc/sysctl.d下没有其他ip_forward行:

 grep -r ip_forward /etc/sysctl.d 

如果你find了,可以在行首加一个#删除或注释它们。

第2部分 – 确保没有其他configuration会自动重新启用转发

正如@wick提到的,Ubuntu发行版可以有桥接接口,在您closures之后就可以开启转发。

在我的情况下,这是lcxbr0

 ip addr show (...) 3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 

对于上面的接口,编辑/etc/default/lxc-net ,并将USE_LXC_BRIDGE更改为:

 USE_LXC_BRIDGE="false" 

如果您有任何其他brX界面,请使用search引擎找出如何删除它们。

第3部分 – 重新启动并validation

重启后,下面的命令应该打印0:

 cat /proc/sys/net/ipv4/ip_forward 0