一、查看网络基本信息
1. ip命令 -- 显示与配置网卡信息
ip命令的功能是显示与配置网卡信息。
bash
ip [选项] 对象 [动作]
常见的对象:
对象 | 功能 |
---|---|
address | IP地址信息 |
route | 路由表信息 |
2. ifconfig命令 -- 显示或设置网络设备参数信息
ifconfig命令来自英文词组network interfaces configuring的缩写,功能是显示或设置网络设备参数信息。
bash
ifconfig [选项] [网卡] [IP地址] [动作]
常见的选项:
选项 | 功能 |
---|---|
-a | 显示全部网卡 |
常见的动作:
动作 | 功能 |
---|---|
add | 设置网络地址 |
del | 删除网络地址 |
down | 关闭网络设备 |
up | 启动网络设备 |
ifconfig显示的内容:
bash
ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.128 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe9a:2e0e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:9a:2e:0e txqueuelen 1000 (以太网)
RX packets 102725 bytes 148357711 (148.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 64957 bytes 3947529 (3.9 MB)
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 (本地环回)
RX packets 172 bytes 16011 (16.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 172 bytes 16011 (16.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- flags=4163<UP,BROADCAST,RUNNING,MULTICAST>:表示网络接口的状态,UP表示接口已激活,BROADCAST表示支持广播,RUNNING表示接口正在运行,MULTICAST表示支持多播。
- mtu 1500:最大传输单元(Maximum Transmission Unit),即网络接口能够传输的最大数据包大小,这里是1500字节。
- inet 192.168.1.128:IPv4地址。
- netmask 255.255.255.0:子网掩码。
- broadcast 192.168.1.255:广播地址。
- inet6 fe80::20c:29ff:fe9a:2e0e:IPv6地址。
- prefixlen 64:IPv6地址的前缀长度。
- scopeid 0x20<link>:表示这是一个链路本地地址。
- ether 00:0c:29:9a:2e:0e:MAC地址,也就是网卡的物理地址。
- txqueuelen 1000:发送队列的长度。
- RX packets、TX packets:分别表示接收和发送的数据包数量。
- bytes:接收和发送的总字节数。
- RX errors、TX errors:接收和发送时的错误数。
- dropped:由于缓冲区满等原因而丢弃的数据包数。
- overruns:由于缓冲区溢出而丢失的数据包数。
- frame:由于帧同步错误而丢失的数据包数。
- carrier:表示物理层的载波检测状态。
- collisions:在发送数据时发生的冲突数。
设置网络设备的虚拟网卡:
bash
ifconfig ens33:1 192.168.1.100/24
- ens33:1:虚拟网卡名称。ens33是物理网卡名称,:1表示这是一个虚拟接口。
- 192.168.1.100/24:分配给虚拟网卡的IP地址和子网掩码。
- 注意:物理网卡要能够正常工作,接口名称可以是数字或者是字母,名称不能够重复;当系统重启或者虚拟网卡停止使用后,就会消失。
3. ifup命令 -- 激活网络接口
ifup命令来自英文词组"interface up"的缩写,功能是用于启用网卡。
bash
ifup 网卡名称
4. ifdown命令 -- 禁用网络接口
ifdown命令来自英文词组"interface down"的缩写,功能是用于禁用网络接口。
bash
ifdown 网卡名称
5. route命令 -- 显示与设置路由信息
route命令的功能是显示与设置路由信息,是Linux系统中常用的静态路由配置工具。
bash
route [选项] [动作]
常见的选项:
选项 | 功能 |
---|---|
-n | 以数字形式显示IP地址 |
6. netstat命令 -- 显示网络状态
netstat命令来自英文词组network statistics的缩写,功能是显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。
bash
netstat [选项]
常见的选项:
选项 | 功能 |
---|---|
-a | 显示所有活动的网络连接信息 |
-n | 以数字形式显示IP、端口等 |
-p | 显示活动接口的PID和程序名称(进程信息) |
-r | 显示路由表信息 |
-t | 显示TCP协议连接的信息 |
-u | 显示UDP协议连接的信息 |
netstat查看的网络状态的连接信息主要内容:
bash
netstat -antp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 843/cupsd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 511/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 831/sshd: /usr/sbin
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1791/sshd: root@pts
tcp 0 0 192.168.1.128:22 192.168.1.1:3880 ESTABLISHED 1793/sshd: root@not
tcp 0 0 192.168.1.100:22 192.168.1.1:5078 ESTABLISHED 2716/sshd: root@pts
tcp 0 48 192.168.1.128:22 192.168.1.1:3878 ESTABLISHED 1791/sshd: root@pts
- Proto:协议类型。
- Recv-Q:接收队列的大小,表示等待被应用程序读取的数据量。0表示没有数据在队列中。
- Send-Q:发送队列的大小,表示等待被发送的数据量。0表示没有数据在队列中。
- Local Address:本地地址和端口,格式为IP地址:端口号。
- Foreign Address:远程地址和端口,格式为IP地址:端口号。0.0.0.0:*或:::*表示接受任意IP地址的连接。
- State:连接的状态,如LISTEN表示监听状态,等待连接;ESTABLISHED表示连接已建立,0.0.0.0:*表示任意IP地址都可以连接。
- PID/Program name:与本地地址关联的进程ID和程序名称。
7. ss命令 -- 显示活动套接字信息
ss命令来自英文词组"Socket Statistics"的缩写,和netstat命令类似,功能是用于显示活动套接字信息。
bash
ss [选项]
常见的选项:
选项 | 功能 |
---|---|
-a | 显示所有套接字信息 |
-n | 以数字形式显示IP、端口等 |
-p | 显示套接字的进程信息 |
-t | 显示TCP协议的套接字信息 |
-u | 显示UDP协议的套接字信息 |
ss查看的套接字信息主要内容:
bash
ss -antp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=843,fd=7))
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=511,fd=14))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=831,fd=3))
- State:连接的状态。
- Recv-Q:接收队列的大小,表示等待被应用程序读取的数据量。0表示没有数据在队列中。
- Send-Q:发送队列的大小,表示等待被发送的数据量。这里128和4096表示有数据在队列中等待发送。
- Local Address:Port:本地地址和端口,格式为IP地址:端口号。%lo表示这是一个回环接口(loopback interface),仅在本地机器上可访问。
- Peer Address:Port:远程地址和端口,格式为IP地址:端口号。0.0.0.0:*表示接受任意IP地址的连接。
- Process:与本地地址关联的进程信息,包括进程名称、进程ID(pid)和文件描述符(fd)。
8. lsof命令 -- 查看文件的进程信息
lsof命令来自英文词组list opened files的缩写,功能是查看文件的进程信息。
bash
lsof [选项]
常见的选项:
选项 | 功能 |
---|---|
-i | 显示符合条件的进程信息 |
-p | 显示指定UID的进程信息 |
二、测试网络连接性
1. ping命令 -- 测试主机间网络连通性
ping命令的功能是测试主机间网络的连通性,它发送出基于ICMP传输协议的数据包,要求对方主机予以回复。
bash
ping [选项] IP地址或域名
常见的选项:
选项 | 功能 |
---|---|
-c | 设置发送数据包的次数 |
-i | 设置发送数据包的时间间隔 |
-w | 设置程序结束前的等待时间 |
-W | 设置响应的等待时间 |
2. traceroute命令 -- 追踪网络数据包传输路径
traceroute命令来自英文词组"Trace router"的拼写,其功能是用于追踪网络数据包传输路径。
bash
traceroute [选项] IP地址或域名
三、查看网络域名信息
1. nslookup命令 -- 查询域名服务器信息
nslookup命令来自英文词组"Nameserver lookup"的缩写,功能是用于查询域名服务器信息。
bash
nslookup [选项] IP地址或域名
- 可以在/etc/hosts文件里配置本地的域名与IP映射。
- 本地的DNS域名解析配置文件是/etc/resolv.conf。
四、配置网络信息
1. 配置静态网络
1.1 CentOS系统
-
编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33。
-
将BOOTPROTO属性的属性值修改为static,ONBOOT属性的属性值修改成yes。
-
在文件中新增以下内容,设置虚拟机的静态IP、子网掩码、网关、DNS。
shellIPADDR=192.168.1.2 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 DNS1=114.114.114.114 DNS2=8.8.8.8
-
保存文件后,重启网络服务。
bashsystemctl restart network
1.2 Ubuntu系统
-
编辑网卡配置文件/etc/netplan/01-network-manager-all.yaml。
-
在文件中写入以下内容,设置虚拟机的静态IP、子网掩码、网关、DNS。
yamlnetwork: ethernets: ens33: dhcp4: no addresses: [192.168.1.128/24] gateway4: 192.168.1.254 nameservers: addresses: [218.2.135.1]
-
保存文件后,重启网络服务。
bashnetplan apply
2. 配置多网卡
2.1 CentOS系统
-
添加新网卡。在VMware中给虚拟机新增一个网络适配器。
-
使用ip或ifconfig命令查看新网卡的名称。
-
复制原有网卡的配置文件,并改为新网卡名。
bashcp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
-
编辑ens36的配置文件,修改文件里的网卡名、IP地址,注释UUID。
shellNAME=ens36 #UUID=1b92a67a-e9b6-48cc-8283-f8158b738064 DEVICE=ens36 IPADDR=192.168.1.3
-
或是使用uuidgen随机生成一个UUID,再将文件里的原UUID修改为新生成的UUID。
-
也可以直接覆盖原配置内容。
shellTYPE=Ethernet BOOTPROTO=static NAME=ens36 DEVICE=ens36 ONBOOT=yes IPADDR=192.168.1.3 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 DNS1=114.114.114.114 DNS2=8.8.8.8
-
-
保存文件后,重启网络服务。
bashsystemctl restart network
2.2 Ubuntu系统
-
添加新网卡。在VMware中给虚拟机新增一个网络适配器。
-
使用ip或ifconfig命令查看新网卡的名称。
-
编辑网卡配置文件,在文件中按照原有网卡配置的格式来新增新网卡的配置,具体内容如下所示。
yamlnetwork: ethernets: ens33: dhcp4: no addresses: [192.168.1.128/24] gateway4: 192.168.1.254 nameservers: addresses: [218.2.135.1] # 新增网卡 ens37: dhcp4: no addresses: [192.168.1.130/24] gateway4: 192.168.1.254 nameservers: addresses: [218.2.135.1]
-
保存文件后,重启网络服务。
bashnetplan apply
3. 配置Bond网卡
3.1 Bond网卡概述
Bond网卡,也称为网卡绑定或网卡捆绑,是一种将两个或更多的物理网卡绑定成一个虚拟网卡的技术。这样做的目的是为了实现本地网卡的冗余、带宽扩容和负载均衡,如果其中一个网卡故障,不会影响系统的网卡正常工作。
Bond网卡支持七种不同的工作模式,下面是七种工作模式的介绍。
- Mode 0 :轮询模式。两个网卡都会使用,数据包按照轮询的方式依次发送到每个网卡,实现负载均衡。这种模式不提供冗余性。
- Mode 1:主备模式。具有冗余功能,只有一个工作,另一个备用。
- Mode 2 :均衡模式。使用源和目的MAC地址以及传输层协议和端口号来选择要发送的网卡。提供负载均衡和冗余。
- Mode 3:广播模式。将所有数据包发送到所有网卡。实现广播传输,但不提供负载均衡或冗余性。
- Mode 4 (802.3ad):LACP模式(动态链接聚合)。使用LACP协议动态协商绑定接口的工作方式,提供负载均衡和冗余性。
- Mode 5 (balance-tlb):负载均衡模式,以太网设备能够获取每个网卡的速率。
- Mode 6 (balance-alb):自适应负载均衡模式,针对数据流量实现负载均衡,不需要特殊的交换机支持。
3.2 Bond 0模式配置
-
配置逻辑网卡bond0。
bashvi /etc/sysconfig/network-scripts/ifcfg-bond0 TYPE=Ethernet BOOTPROTO=static NAME=bond0 DEVICE=bond0 ONBOOT=yes IPADDR=192.168.1.2 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 DNS1=114.114.114.114 DNS2=8.8.8.8 BONDING_OPTS="miimon=100 mode=0 fail_over_mac=1"
-
配置物理网卡ens33和ens36。
bashvi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=none NAME=ens33 DEVICE=ens33 ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
bashvi /etc/sysconfig/network-scripts/ifcfg-ens36 TYPE=Ethernet BOOTPROTO=none NAME=ens36 DEVICE=ens36 ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
-
加载bonding模块。
bashmodprobe bonding
-
重启网络服务。
bashsystemctl restart network