如何在 Ubuntu 20.04 上正确运行 net.ipv4.ip_forward=1?

如何在 Ubuntu 20.04 上正确运行 net.ipv4.ip_forward=1?

我尝试在 ubuntu 20.04 LTS 服务器上创建一个简单的路由器,因此首先我检查/etc/sysctl.conf/proc/sys/net/ipv4/ip_forward

$cat /etc/sysctl.conf | grep ip_forward
#net.ipv4.ip_forward=1

$cat /proc/sys/net/ipv4/ip_forward
1

根据这个输出,我假设服务器已经启用了 IP 转发,但 IP 转发不起作用。之后,我取消注释该行#net.ipv4.ip_forward=1并运行sudo sysctl -p,但它仍然不起作用。

$cat /etc/sysctl.conf | grep ip_forward
net.ipv4.ip_forward=1

$ sudo sysctl -p
net.ipv4.ip_forward = 1

重启后终于可以正常工作了,但我不明白为什么运行sysctl -p没有启用 IP 转发。我还发现它可以在运行时禁用echo 0 > /proc/sys/net/ipv4/ip_forward(并在运行后启用echo 1 > /proc/sys/net/ipv4/ip_forward)。

当然,当我改为 并重新启动时,IP 转发已被禁用net.ipv4.ip_forward。但是,即使我改为后运行或运行,0也无法启用它。echo 1 > /proc/sys/net/ipv4/ip_forwardsysctl -pnet.ipv4.ip_forward1

我真的需要重新启动才能启用吗net.ipv4.ip_forward=1

答案1

如果你这样做,sysctl -p它将重新加载/etc/sysctl.conf,但需要在完成后完成

sudo -i

按 Enter 键,输入您的密码,然后在提示符下发出命令#。不要只用 来执行此操作sudo

相关内容