Network-Interface
為什麼禁用網路介面後伺服器接受連接?
我已經四處搜尋並執行了其他命令(我只留下了我認為更有用的命令)。大多數搜尋都指向我關於如何關閉/關閉介面的解釋,並且沒有關於這種行為的提示。
鑑於:
- 帶有兩個 NIC(
enp3s0
和)的小型伺服器(Lubuntu 20.04wlp9s0
)。- 路由器分別通過 DHCP 設置中的 MAC/地址保留分配
192.168.1.78
和.79
到enp3s0
和。wlp9s0
- 最初,伺服器僅通過 WiFi (
wlp9s0
) 連接,因此僅接受連接192.168.1.79
。什麼時候:
- 幾小時後: Eth 電纜 (
enp3s0
) 已連接,192.168.1.78
開始接受連接。- WiFi 介面通過
sudo ifconfig wlp9s0 down
.然後:
- 連接嘗試
192.168.1.79
失敗(預期,OK)- 但是….許多小時後:連接嘗試
192.168.1.79
再次開始工作(?)更多數據:
從另一台機器執行
arp -a
顯示兩個 IP 映射到相同的 MAC 地址 (?):d (192.168.1.78) at d3:cf:47:c8:a:a9 on en0 ifscope [ethernet] ? (192.168.1.79) at d3:cf:47:c8:a:a9 on en0 ifscope [ethernet]
在伺服器上執行
ip address
確認 WiFi 連結已關閉,192.168.1.79
但仍分配給它。1: lo: <LOOPBACK,UP,LOWER_UP> ... 2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether d3:cf:47:c8:a:a9 brd ff:ff:ff:ff:ff:ff inet 192.168.1.78/24 brd 192.168.1.255 scope global dynamic noprefixroute enp3s0 valid_lft 82801sec preferred_lft 82801sec 3: wlp9s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether f1:bf:5c:ac:4c:6d brd ff:ff:ff:ff:ff:ff inet 192.168.1.79/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp9s0 valid_lft 12983sec preferred_lft 12983sec
為什麼現在
enp3s0
接受兩個 IP 的流量?
實際上,這在 Linux 中並不少見。第三個介面 (wlp9s0) 有一個地址。所有介面都會 ARP 響應該地址,並且在錯誤介面上接收到的數據包將被該地址接受。
關閉介面後它可能失敗的原因是遠端機器的 ARP 表中已經有無線 MAC 地址。一旦超時,就可以找到另一個地址。
為防止這種情況,請從關閉介面中徹底刪除地址。這可能是使用 ifconfig 給它一個不同的地址,或者:
ip address del 192.168.1.79/24 dev wlp9s0