Debian
Debian Buster 無法設置靜態 IP
我有一台執行 Debian Buster 的基於 NPI iMX6ULL ARM 的單板電腦。它有 2 個網路埠,由
ifconfig
aseth0
和eth1
它似乎忽略了我的網路配置
/etc/network/interfaces
auto lo eth0 eth1 iface lo inet loopback iface eth0 inet dhcp iface eth1 inet static address 192.168.1.254 netmask 255.255.255.0 iface usb0 inet static address 192.168.7.2 netmask 255.255.255.252 network 192.168.7.0 gateway 192.168.7.1
啟動上述配置並
eth0
連接到 dhcp 伺服器後,ifconfig
報告:eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.4.10.131 netmask 255.255.192.0 broadcast 10.4.63.255 inet6 fe80::d489:7cff:feec:e09e prefixlen 64 scopeid 0x20<link> ether d6:89:7c:ec:e0:9e txqueuelen 1000 (Ethernet) RX packets 478 bytes 42931 (41.9 KiB) RX errors 0 dropped 29 overruns 0 frame 0 TX packets 30 bytes 2883 (2.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC> mtu 1500 ether d6:89:7c:ec:e0:9d txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1
同樣,在連接到 dhcp 伺服器的情況下啟動上述配置後,ifconfig
報告:eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether d6:89:7c:ec:e0:9e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500 inet 10.4.11.126 netmask 255.255.192.0 broadcast 10.4.63.255 inet6 fe80::d489:7cff:feec:e09d prefixlen 64 scopeid 0x20<link> ether d6:89:7c:ec:e0:9d txqueuelen 1000 (Ethernet) RX packets 1234 bytes 118390 (115.6 KiB) RX errors 0 dropped 58 overruns 0 frame 0 TX packets 38 bytes 3547 (3.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果我這樣做,
sudo ifdown eth1
它會報告:ifdown: interface eth1 not configured
它
sudo ifup eth1
出現了:debian@npi:~$ sudo ifup eth1 debian@npi:~$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.4.10.131 netmask 255.255.192.0 broadcast 10.4.63.255 inet6 fe80::d489:7cff:feec:e09e prefixlen 64 scopeid 0x20<link> ether d6:89:7c:ec:e0:9e txqueuelen 1000 (Ethernet) RX packets 16846 bytes 1401257 (1.3 MiB) RX errors 0 dropped 856 overruns 0 frame 0 TX packets 65 bytes 4551 (4.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC> mtu 1500 inet 192.168.1.254 netmask 255.255.255.0 broadcast 192.168.1.255 ether d6:89:7c:ec:e0:9d txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
是什麼在啟動時控制我的網路配置。我怎麼知道?
我確實發現了一些關於我的 MAC 地址問題的 Google 點擊,但這兩個介面都發生了這種情況。我也嘗試更改我的 MAC 地址,但沒有任何改變。
感謝 Seamus 為我指明了正確的方向。關鍵是我使用的圖像是基於 BeagleBone 圖像的。
之前的問題是
connman
控製網路埠networkd
。在一個單元上,我可以connman
使用apt
. 之後,我的配置/etc/systemd/network/interfaces
被正確應用。我的研究表明這
connman
是未來的方式,所以我也想出瞭如何配置它。這個頁面提供了很多很棒的資訊。connmanctl
可用於直接設置靜態IP。root@npi:~# connmanctl connmanctl> config ethernet_00142d259a48_cable --ipv4 manual 192.168.10.2 255.255.255.0 192.168.10.1 connmanctl> config ethernet_00142d259a48_cable --nameservers 8.8.8.8 connmanctl> exit
設備名稱中間的十六進製字元串是設備的 MAC 地址。手動指定靜態IP,數字是IP地址、網路遮罩和網關(網關是可選的)。
這個頁面也很好地解釋了它。不幸的是,大多數文件都旨在配置 wifi。大多數網站只是順便提及靜態定址。
希望這對下一個人有所幫助。