Networking

如何在沒有物理適配器的機器上創建虛擬乙太網介面?

  • March 27, 2021

我有一台戴爾 XPS 13 超極本,它有一個 wifi 網卡,但沒有物理乙太網網卡(wlan0,但沒有 eth0)。ifup eth0:1...我需要創建一個虛擬適配器以將Vagrant與 NFS 一起使用,但我發現典型的ignoring unknown interface eth0:1=eth0:1. 我也嘗試過創建一個針對 的虛擬介面wlan0,但收到了相同的結果。

如何在沒有物理介面的這台機器上創建虛擬介面?

設置一個虛擬介面

如果您想創建網路介面,但缺少支持它的物理 NIC,則可以使用虛擬連結類型。你可以在這裡閱讀更多關於它們的資訊:iproute2 Wikipedia page

創建 eth10

要製作此界面,您首先需要確保已載入虛擬核心模組。你可以這樣做:

$ sudo lsmod | grep dummy
$ sudo modprobe dummy
$ sudo lsmod | grep dummy
dummy                  12960  0 

現在載入驅動程序後,您可以創建您喜歡的任何虛擬網路介面:

$ sudo ip link add eth10 type dummy

**注意:**在舊版本中,ip您會像這樣執行上述操作,似乎在此過程中發生了變化。將其保留在此處以供參考,但基於評論的回饋,以上內容現在有效。

$ sudo ip link set name eth10 dev dummy0

並確認:

$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
   link/ether c6:ad:af:42:80:45 brd ff:ff:ff:ff:ff:ff

更改 MAC

然後,您可以根據需要更改 MAC 地址:

$ sudo ifconfig eth10 hw ether 00:22:22:ff:ff:ff
$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
   link/ether 00:22:22:ff:ff:ff brd ff:ff:ff:ff:ff:ff

創建別名

然後,您可以在 eth10 之上創建別名。

$ sudo ip addr add 192.168.100.199/24 brd + dev eth10 label eth10:0

並像這樣確認它們:

$ ifconfig -a eth10
eth10: flags=130<BROADCAST,NOARP>  mtu 1500
       ether 00:22:22:ff:ff:ff  txqueuelen 0  (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

$ ifconfig -a eth10:0
eth10:0: flags=130<BROADCAST,NOARP>  mtu 1500
       inet 192.168.100.199  netmask 255.255.255.0  broadcast 192.168.100.255
       ether 00:22:22:ff:ff:ff  txqueuelen 0  (Ethernet)

或使用ip

$ ip a | grep -w inet
   inet 127.0.0.1/8 scope host lo
   inet 192.168.1.20/24 brd 192.168.1.255 scope global wlp3s0
   inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
   inet 192.168.100.199/24 brd 192.168.100.255 scope global eth10:0

刪除這一切?

如果你想放鬆這一切,你可以執行這些命令來做到這一點:

$ sudo ip addr del 192.168.100.199/24 brd + dev eth10 label eth10:0
$ sudo ip link delete eth10 type dummy
$ sudo rmmod dummy

參考

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