Linux 中的网络接口

Nilesh Katuwal 2023年1月30日 2022年5月11日
  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