Debian

如何防止在重新啟動期間添加不需要的預設網關

  • November 20, 2019

我正在使用在 Debian 系統上執行網路伺服器的 Beaglebone Black。BBB 在本地網路 (192.168.5.xyz) 中作為 DHCP + DNS(使用 dnsmasq)工作,無法直接訪問 Internet。我可以輕鬆連接從 BBB 檢索 IP 的設備。到現在為止還挺好。

例如,如果我在家,我想為這個小網路添加網際網路訪問。因此,我將此網路連接到一個路由器,該路由器提供網際網路訪問並在此網路內具有靜態 IP 地址(192.168.5.254)。所以我將路由器的 IP 添加到 /etc/network/interfaces 文件中:

/etc/網路/介面:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

allow-hotplug eth0
iface eth0 inet static
address 192.168.5.1
netmask 255.255.255.0
gateway 192.168.5.254

但是由於某種原因,每當我重新啟動我的 BBB 時,都會添加一個額外的預設路由條目。當我使用 GW 0.0.0.0 手動刪除/刷新預設條目時,一切正常。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         0.0.0.0         0.0.0.0         U     0      0        0 eth0
default         192.168.5.254   0.0.0.0         UG    0      0        0 eth0
link-local      0.0.0.0         255.255.0.0     U     0      0        0 eth0
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

似乎在引導期間添加了不需要的預設網關: journalctl -b

…
Nov 06 11:29:40 webserver connmand[1827]: eth0 {add} address 192.168.5.1/24 label eth0 family 2
Nov 06 11:29:40 webserver avahi-daemon[1792]: Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.5.1.
Nov 06 11:29:40 webserver connmand[1827]: eth0 {add} route 192.168.5.0 gw 0.0.0.0 scope 253 <LINK>
Nov 06 11:29:40 webserver avahi-daemon[1792]: New relevant interface eth0.IPv4 for mDNS.
Nov 06 11:29:40 webserver avahi-daemon[1792]: Registering new address record for 192.168.5.1 on eth0.IPv4.
Nov 06 11:29:40 webserver connmand[1827]: eth0 {add} route 0.0.0.0 gw 192.168.5.254 scope 0 <UNIVERSE>
…

我還可以在 /etc/network/interfaces 中創建“想要的”路由。這些也是由 Connman Deamon 製造的。但是**/etc/connman/main.conf**顯然不是導致網關 0.0.0.0 的預設路由的文件:

[General]
PreferredTechnologies=ethernet,wifi
SingleConnectedTechnology=false
AllowHostnameUpdates=false
PersistentTetheringMode=true
NetworkInterfaceBlacklist=SoftAp0,usb0,usb1

您是否有任何提示如何找出添加額外路線的位置以及如何防止它?我已經查看了幾個在啟動期間呼叫但找不到的 sripts……或者我設置 eth0 的方式完全錯誤?

您會看到路線是通過命令添加的。它與普通介面設置無關,而是一個單獨的配置。如果您不能完全禁用它(不知道您的 BBB 是否需要它),您必須查看它的配置。如果您發布該配置並告訴需要 connman 的工作,有人可以進一步幫助您。


在這種情況下,解決方案只是通過更改 to 的最後一行來禁用 connman 來處理/etc/connman/main.confeth0 NetworkInterfaceBlacklist=eth0,SoftAp0,usb0,usb1

這將路由的輸出更改為:

Kernel IP routing table
Destination    Gateway        Genmask        Flags  Metric Ref  Use  Iface
default        192.168.5.254  0.0.0.0        UG     0      0    0    eth0
192.168.5.0    0.0.0.0        255.255.255.0  U      0      0    0    eth0

有了這個,一切似乎都很好。

引用自:https://unix.stackexchange.com/questions/551506