Linux 中的網路介面

Nilesh Katuwal 2023年1月30日
  1. Linux 中的物理和虛擬網路介面
  2. 在 Linux 中使用 ifconfig 命令診斷和配置網路介面
  3. 在 Linux 中設定 eth0
  4. Linux 中 dhcp 的介面設定
  5. 編輯 /etc/network/interfaces 檔案以建立 靜態 地址介面
Linux 中的網路介面

本教程將在 Debian 及其衍生版本的 /etc/network/interfaces 中檢視完整的語法解釋。

檔案 /etc/network/interfaces 允許你為介面指定靜態和動態 IP 地址,配置路由資訊、預設閘道器、偽裝網路繫結等。

Linux 中的物理和虛擬網路介面

TCP/IP 實現定義了一個介面,該介面掩蓋了網路供應的變化,並將網路通訊減少為與抽象實體的資料交換。

Linux 核心區分物理網路介面和虛擬網路介面。

在 Linux 中使用 ifconfig 命令診斷和配置網路介面

ifconfig 是一個類 UNIX 系統命令列程式,用於診斷和配置網路介面。

$ ifconfig

輸出:

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:72:4e:1a:db  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

enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether d4:81:d7:bd:c6:ef  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

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 11182  bytes 1139133 (1.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11182  bytes 1139133 (1.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.69  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2403:3800:3217:204b:3be8:d506:7950:933c  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::4cd5:8a62:8187:55fc  prefixlen 64  scopeid 0x20<link>
        inet6 2403:3800:3217:204b:9902:5eba:d521:1d6b  prefixlen 64  scopeid 0x0<global>
        ether 3c:f8:62:e5:d7:e2  txqueuelen 1000  (Ethernet)
        RX packets 521763  bytes 557860095 (557.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 288568  bytes 61590689 (61.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我們可以看到有四個網路介面。

  • docker0 是一個 docker 的虛擬橋接介面,它為 Docker 容器建立一個獨特的網路,允許它們連線。
  • enp3s0 以前稱為 eth0。此物理介面代表乙太網。
  • lo 是一個虛擬網路介面,主要用於診斷和故障排除,並連線到在 localhost 上執行的服務。
  • wlp2so 是你的 wifi 介面。

在 Linux 中設定 eth0

在以下示例中,使用 192.168.1.5 IP 地址和到 192.168.1.254 的閘道器(路由)設定 eth0(初始網路介面卡):

iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.254

Linux 中 dhcp 的介面設定

使用以下命令將 eth0 轉為 dhcp

auto eth0
iface eth0 inet dhcp

編輯 /etc/network/interfaces 檔案以建立 靜態 地址介面

如果你想配置靜態 IP 地址和閘道器而不是使用 DHCP,請將前面的說明替換為以下內容(將 192.168.0.8/24192.168.0.1 更改為你的實際 IP 地址):

auto <Interface>
iface <Interface> inet static
address 192.168.0.1
netmask 255.255.255.0

gateway 192.168.0.1
dns-nameservers 8.8.8.8