首頁 > 軟體

在 Ubuntu 15.10 上為單個網絡卡設定多個 IP 地址

2020-06-16 17:47:28

有時候你可能想在你的網絡卡上使用多個 IP 地址。遇到這種情況你會怎麼辦呢?買一個新的網絡卡並分配一個新的 IP?不,沒有這個必要(至少在小型網路中)。現在我們可以在 Ubuntu 系統中為一個網絡卡分配多個 IP 地址。想知道怎麼做到的?跟著我往下看,其實並不難。

這個方法也適用於 Debian 以及它的衍生版本。

 

臨時新增 IP 地址

首先,讓我們找到網絡卡的 IP 地址。在我的 Ubuntu 15.10 伺服器版中,我只使用了一個網絡卡。

執行下面的命令找到 IP 地址:

  1. sudoip addr

樣例輸出:

  1. 1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. inet 127.0.0.1/8 scope host lo
  4. valid_lft forever preferred_lft forever
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  8. link/ether 08:00:27:2a:03:4b brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
  10. valid_lft forever preferred_lft forever
  11. inet6 fe80::a00:27ff:fe2a:34e/64 scope link
  12. valid_lft forever preferred_lft forever

  1. sudoifconfig

樣例輸出:

  1. enp0s3 Link encap:EthernetHWaddr08:00:27:2a:03:4b
  2. inet addr:192.168.1.103Bcast:192.168.1.255Mask:255.255.255.0
  3. inet6 addr: fe80::a00:27ff:fe2a:34e/64Scope:Link
  4. UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  5. RX packets:186 errors:0 dropped:0 overruns:0 frame:0
  6. TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
  7. collisions:0 txqueuelen:1000
  8. RX bytes:21872(21.8 KB) TX bytes:9666(9.6 KB)
  9. lo Link encap:LocalLoopback
  10. inet addr:127.0.0.1Mask:255.0.0.0
  11. inet6 addr:::1/128Scope:Host
  12. UP LOOPBACK RUNNING MTU:65536Metric:1
  13. RX packets:217 errors:0 dropped:0 overruns:0 frame:0
  14. TX packets:217 errors:0 dropped:0 overruns:0 carrier:0
  15. collisions:0 txqueuelen:0
  16. RX bytes:38793(38.7 KB) TX bytes:38793(38.7 KB)

正如你在上面輸出中看到的,我的網絡卡名稱是 enp0s3,它的 IP 地址是 192.168.1.103

現在讓我們來為網絡卡新增一個新的 IP 地址,例如說 192.168.1.104

開啟你的終端並執行下面的命令新增額外的 IP。

  1. sudoip addr add 192.168.1.104/24 dev enp0s3

用命令檢查是否啟用了新的 IP:

  1. sudoip address show enp0s3

樣例輸出:

  1. 2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  2. link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
  3. inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
  4. valid_lft forever preferred_lft forever
  5. inet 192.168.1.104/24 scope global secondary enp0s3
  6. valid_lft forever preferred_lft forever
  7. inet6 fe80::a00:27ff:fe2a:34e/64 scope link
  8. valid_lft forever preferred_lft forever

類似地,你可以新增任意數量的 IP 地址,只要你想要。

讓我們 ping 一下這個 IP 地址驗證一下。

  1. sudoping192.168.1.104

樣例輸出

  1. PING 192.168.1.104(192.168.1.104)56(84) bytes of data.
  2. 64 bytes from192.168.1.104: icmp_seq=1 ttl=64time=0.901 ms
  3. 64 bytes from192.168.1.104: icmp_seq=2 ttl=64time=0.571 ms
  4. 64 bytes from192.168.1.104: icmp_seq=3 ttl=64time=0.521 ms
  5. 64 bytes from192.168.1.104: icmp_seq=4 ttl=64time=0.524 ms

好極了,它能工作!

要刪除 IP,只需要執行:

  1. sudoip addr del192.168.1.104/24 dev enp0s3

再檢查一下是否刪除了 IP。

  1. sudoip address show enp0s3

樣例輸出:

  1. 2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  2. link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
  3. inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
  4. valid_lft forever preferred_lft forever
  5. inet6 fe80::a00:27ff:fe2a:34e/64 scope link
  6. valid_lft forever preferred_lft forever

可以看到已經沒有了!!

正如你所知,重新啟動系統後這些設定會失效。那麼怎麼設定才能永久有效呢?這也很簡單。

 

新增永久 IP 地址

Ubuntu 系統的網絡卡組態檔是 /etc/network/interfaces

讓我們來看看上面檔案的具體內容。

  1. sudocat/etc/network/interfaces

輸出樣例:

  1. #Thisfile describes the network interfaces available on your system
  2. #and how to activate them.Formore information, see interfaces(5).
  3. source /etc/network/interfaces.d/*
  4. # The loopback network interface
  5. auto lo
  6. iface lo inet loopback
  7. # The primary network interface
  8. auto enp0s3
  9. iface enp0s3 inet dhcp

正如你在上面輸出中看到的,網絡卡啟用了 DHCP。

現在,讓我們來分配一個額外的地址,例如 192.168.1.104/24

編輯 /etc/network/interfaces

  1. sudonano/etc/network/interfaces

如下新增額外的 IP 地址。

  1. #Thisfile describes the network interfaces available on your system
  2. #and how to activate them.Formore information, see interfaces(5).
  3. source /etc/network/interfaces.d/*
  4. # The loopback network interface
  5. auto lo
  6. iface lo inet loopback
  7. # The primary network interface
  8. auto enp0s3
  9. iface enp0s3 inet dhcp
  10. iface enp0s3 inet static
  11. address 192.168.1.104/24

儲存並關閉檔案。

執行下面的命令使更改無需重新啟動即生效。

  1. sudo ifdown enp0s3 &&sudo ifup enp0s3

樣例輸出:

  1. Killed old client process
  2. InternetSystemsConsortium DHCP Client4.3.1
  3. Copyright2004-2014InternetSystemsConsortium.
  4. All rights reserved.
  5. Forinfo, please visit https://www.isc.org/software/dhcp/
  6. Listening on LPF/enp0s3/08:00:27:2a:03:4e
  7. Sending on LPF/enp0s3/08:00:27:2a:03:4e
  8. Sending on Socket/fallback
  9. DHCPRELEASE on enp0s3 to 192.168.1.1 port 67(xid=0x225f35)
  10. InternetSystemsConsortium DHCP Client4.3.1
  11. Copyright2004-2014InternetSystemsConsortium.
  12. All rights reserved.
  13. Forinfo, please visit https://www.isc.org/software/dhcp/
  14. Listening on LPF/enp0s3/08:00:27:2a:03:4e
  15. Sending on LPF/enp0s3/08:00:27:2a:03:4e
  16. Sending on Socket/fallback
  17. DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 3(xid=0xdfb94764)
  18. DHCPREQUEST of 192.168.1.103 on enp0s3 to 255.255.255.255 port 67(xid=0x6447b9df)
  19. DHCPOFFER of 192.168.1.103from192.168.1.1
  20. DHCPACK of 192.168.1.103from192.168.1.1
  21. bound to 192.168.1.103-- renewal in35146 seconds.

注意:如果你從遠端連線到伺服器,把上面的兩個命令放到一行非常重要,因為第一個命令會斷掉你的連線。而採用這種方式可以保留你的 ssh 對談。

現在,讓我們用下面的命令來檢查一下是否新增了新的 IP:

  1. sudoip address show enp0s3

輸出樣例:

  1. 2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  2. link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
  3. inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
  4. valid_lft forever preferred_lft forever
  5. inet 192.168.1.104/24 brd 192.168.1.255 scope global secondary enp0s3
  6. valid_lft forever preferred_lft forever
  7. inet6 fe80::a00:27ff:fe2a:34e/64 scope link
  8. valid_lft forever preferred_lft forever

很好!我們已經新增了額外的 IP。

再次 ping IP 地址進行驗證。

  1. sudoping192.168.1.104

樣例輸出:

  1. PING 192.168.1.104(192.168.1.104)56(84) bytes of data.
  2. 64 bytes from192.168.1.104: icmp_seq=1 ttl=64time=0.137 ms
  3. 64 bytes from192.168.1.104: icmp_seq=2 ttl=64time=0.050 ms
  4. 64 bytes from192.168.1.104: icmp_seq=3 ttl=64time=0.054 ms
  5. 64 bytes from192.168.1.104: icmp_seq=4 ttl=64time=0.067 ms

好極了!它能正常工作。就是這樣。

想知道怎麼給 CentOS/RHEL/Scientific Linux/Fedora 系統新增額外的 IP 地址,可以點選下面的連結。

工作愉快!


IT145.com E-mail:sddin#qq.com