Ip-Forwarding

啟動時未為乙太網介面啟用核心 IP 轉發

  • March 19, 2021

要在 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 參數:

iface enp0s25 inet static
   address x.x.x.x
   netmask 255.255.255.0
   gateway x.x.x.x
   ip-forward 1

引用自:https://serverfault.com/questions/1041496