Linux 中的网络接口
Nilesh Katuwal
2023年1月30日
2022年5月11日
- Linux 中的物理和虚拟网络接口
-
在 Linux 中使用
ifconfig
命令诊断和配置网络接口 -
在 Linux 中设置
eth0
-
Linux 中
dhcp
的接口设置 -
编辑
/etc/network/interfaces
文件以创建静态
地址接口
本教程将在 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/24
和 192.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