查看网络接口使用情况
查看当前服务器的网络接口使用情况
nmcli device status
在 Linux 系统中,特别是使用 Docker 等容器化工具时,可能会看到许多网络接口。这些接口可能包括:
- 物理网络接口:如
p7p1
和p2p1
。- Docker 虚拟网络接口:如
docker0
和许多以veth
开头的接口。- 本地回环接口:如
lo
。
网络接口lo
在 Linux 系统中,lo
是指本地回环接口(loopback interface)。它的主要功能是在本地机器上进行网络通信测试,或在本地计算机上运行网络应用程序时用于环回通信。lo
接口的 IP 地址通常是 127.0.0.1
,也被称为 localhost
。这是一个特殊的网络接口,它不会与外部网络通信。
以下是一些关于
lo
接口的详细信息:
功能:
lo
接口用于本地通信,不会通过任何物理网络接口发送数据。它的主要用途包括本地测试和调试网络应用程序。配置:
lo
接口通常默认配置,无需手动设置。它在大多数 Linux 发行版中默认启用,并且配置为127.0.0.1/8
。重要性:许多系统服务和应用程序依赖于
lo
接口来进行本地通信,因此它对于系统的正常运行非常重要。
p7p1与p2p1区别
p7p1
和 p2p1
都是你的物理以太网接口,它们之间的主要区别在于它们所连接的物理网络端口不同。你可以选择其中一个接口来配置静态 IP 地址,具体选择哪个接口取决于你希望哪个网络接口用于网络通信。
网络接口的类型
在 CentOS 7 中配置网络接口时,TYPE
字段用于指定网络接口的类型。以下是一些常见的 TYPE
类型:
Ethernet:标准的以太网接口,这是物理网络接口最常见的类型。
TYPE=Ethernet
Bridge:网桥接口,用于将多个网络接口连接在一起,形成一个逻辑网络。
TYPE=Bridge
Bond:绑定接口,用于将多个网络接口绑定在一起,提高带宽或提供冗余。
TYPE=Bond
VLAN:虚拟局域网接口,用于创建基于标签的虚拟局域网。
TYPE=Vlan
Team:类似于绑定接口,用于将多个网络接口聚合在一起,但使用不同的机制提供负载均衡和故障转移。
TYPE=Team
Wireless:无线网络接口,通常用于 Wi-Fi 连接。
TYPE=Wireless
InfiniBand:用于高速网络接口,通常在高性能计算环境中使用。
TYPE=InfiniBand
PPP:点对点协议接口,用于点对点网络连接。
TYPE=PPP
示例
配置以太网接口的示例:
TYPE=Ethernet BOOTPROTO=none NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
配置网桥接口的示例:
TYPE=Bridge BOOTPROTO=none NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.1.200 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
配置绑定接口的示例:
TYPE=Bond BOOTPROTO=none NAME=bond0 DEVICE=bond0 ONBOOT=yes BONDING_OPTS="mode=active-backup miimon=100" IPADDR=192.168.1.150 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
配置VLAN接口的示例:
TYPE=Vlan BOOTPROTO=none NAME=vlan10 DEVICE=eth0.10 ONBOOT=yes VLAN=yes IPADDR=192.168.10.100 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 DNS1=8.8.8.8 DNS2=8.8.4.4
进入网络配置目录
cd /etc/sysconfig/network-scripts/
编辑网络配置文件
网络配置文件通常位于 /etc/sysconfig/network-scripts/
目录下,以 ifcfg-
开头,后面跟着网络接口的名称。我的服务器网络接口名称是 p7p1,则配置文件为 ifcfg-p7p1
。使用文本编辑器打开该文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-p7p1
修改的配置内容:
# 告诉系统这是一个标准的以太网接口 TYPE=Ethernet # 配置为静态IP地址,因此不使用DHCP或其他协议来动态获取IP地址 BOOTPROTO=none # 定义这个配置文件所对应的网络接口名称 NAME=p7p1 # 定义实际的网络接口设备 DEVICE=p7p1 # 确保系统启动时自动激活并配置这个网络接口 ONBOOT=yes # 设置此网络接口的IP, 静态固定ip IPADDR=静态IP # 设置子网掩码 NETMASK=子网掩码 # 设置网关 GATEWAY=网关 # 设置DNS服务器 DNS1=DNS服务器 # 可选的第二DNS服务器,非必要设置 DNS2=DNS服务器
查看当前服务器的IP、子网掩码、网关、DNS
查看 IP 地址和子网掩码
ip addr show p7p1
- inet:表示 IPv4 地址。
- 172.16.3.249:这是分配给该接口的 IPv4 地址。
- /22:表示子网掩码的前缀长度。/22 对应的子网掩码是 255.255.252.0。这意味着网络部分占据了 22 位,剩下的 10 位用于主机地址。
子网掩码的前缀长度(例如 /22
)表示了子网掩码中网络部分的位数。了解如何计算这个长度是很重要的,因为它决定了一个网络中有多少个 IP 地址可以分配给主机。
计算方法
子网掩码的二进制表示:
子网掩码是由一系列连续的 1
后跟一系列连续的 0
组成。例如,/22
对应的子网掩码是 255.255.252.0
。将其转换为二进制表示是:
11111111.11111111.11111100.00000000
前缀长度的定义:
/22
表示前面有 22 位是 1
,后面是 0
。这意味着前 22 位是网络部分,剩下的 32 - 22 = 10 位是主机部分。
计算可用的 IP 地址:
- 主机位数:剩余的 10 位是用于主机地址。
- 可用主机数:主机位数为 n 时,可用的主机数是 2n−22^n - 22n−2,其中减去 2 是因为其中一个地址用作网络地址,另一个用作广播地址。
对于 /22
子网,主机位数是 10 位, 因此,/22
子网可以分配 1022 个 IP 地址给主机使用。
2^10 - 2 = 1024 - 2 = 1022
总结:
/22
子网掩码表示网络部分占据了 22 位,剩下的 10 位用于主机地址。通过这种方式计算,可以确定一个特定子网掩码可以支持的 IP 地址数量和其分配给主机的能力。
查看默认网关
ip route
其中,default via 172.16.1.1
表示默认网关是 172.16.1.1
。
查看 DNS 服务器
DNS 服务器信息通常存储在 /etc/resolv.conf
文件中,可以使用 cat
命令查看
cat /etc/resolv.conf
其中,nameserver
行表示配置的 DNS 服务器。
重启网络服务
sudo systemctl restart network
验证配置
可以再次使用ip addr
或 nmcli
命令来验证新的 IP 配置是否生效:
ip addr show p7p1