如何防止在重新啟動期間添加不需要的預設網關
我正在使用在 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.conf
eth0NetworkInterfaceBlacklist=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
有了這個,一切似乎都很好。