要在 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 有不同的时间戳,所以这可能是理解发生了什么的关键。
答案1
事实证明这是一个错误ifupdown2实用程序,我甚至不知道它已经安装。在 Buster 中解决错误之前,解决方法是在 /etc/network/interfaces 中设置 ip-forward 参数:
iface enp0s25 inet static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x
ip-forward 1