Network-Interface

為什麼禁用網路介面後伺服器接受連接?

  • August 19, 2020

我已經四處搜尋並執行了其他命令(我只留下了我認為更有用的命令)。大多數搜尋都指向我關於如何關閉/關閉介面的解釋,並且沒有關於這種行為的提示。

鑑於:

  • 帶有兩個 NIC(enp3s0和)的小型伺服器(Lubuntu 20.04 wlp9s0)。
  • 路由器分別通過 DHCP 設置中的 MAC/地址保留分配192.168.1.78.79enp3s0和。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 

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