Ip-Forwarding
啟動時未為乙太網介面啟用核心 IP 轉發
要在 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