要在 Debian 启动时启用 IP 转发,请将以下内容放入 /etc/sysctl.conf:
net.ipv4.ip_forward=1
我已经完成了数千次,并且它始终可以正常工作。但是有一台 Debian Buster 机器,它为除以太网接口之外的所有接口启用了转发。在 /proc/sys/net/ipv4/conf/ 我有以下内容:
dr-xr-xr-x 1 root root 0 Nov 6 08:07 all
dr-xr-xr-x 1 root root 0 Nov 6 08:07 default
dr-xr-xr-x 1 root root 0 Nov 6 07:53 enp0s25
dr-xr-xr-x 1 root root 0 Nov 6 08:07 lo
dr-xr-xr-x 1 root root 0 Nov 6 08:07 tun-mega
所有文件的内容都是1,除了enp0s25,它是0。所以在我手动启用之前转发不起作用。我尝试在 /etc/sysctl.conf 中专门启用它:
net.ipv4.conf.enp0s25.forwarding=1
但这没有什么区别。我注意到文件 enp0s25 具有不同的时间戳,因此这可能是了解正在发生的事情的关键。
事实证明这是ifupdown2实用程序中的一个错误,我什至不知道它已安装。在 Bug 解决进入 Buster 之前,解决方法是在 /etc/network/interfaces 中设置 ip-forward 参数: