目录
方法一:通过修改 NetworkManager 的 keyfile 格式配置文件
3. 最大传输单元(MTU, Maximum Transmission Unit)
4. 最大接收长度(MRL, Maximum Receive Length)
9. 带宽利用率(Bandwidth Utilization)
一、网络参数配置
1、图形化配置
NetworkManager,Linux7系统中,一般建议停止该管理方式;Linux8以上操作系统统一将网络管理交给NetworkManager管理。
#查看当前命令状态
[root@localhost ~]# systemctl status NetworkManager
#开启
[root@localhost ~]# systemctl start NetworkManager
#关闭
[root@localhost ~]# systemctl stop NetworkManager
#关闭并开机不自启
[root@localhost ~]# systemctl disable --now NetworkManager
#开启并开机自启
[root@localhost ~]# systemctl enable --now NetworkManager
#重新启动
[root@localhost ~]# systemctl restart NetworkManager
2、命令行配置
2.1、ifconfig命令
查看及配置网卡参数(临时配置)子接口,不能查看基于配置文件的多IP地址的网络参数,默认不能查看到未启用的网卡列表
root用户可以使用该命令更改网卡参数,普通用户只能用户查看
语法:
ifconfig [接口]
ifconfig 接口 [aftype] options | address ...
选项:
选项 | 作用 |
---|---|
-a | 查看所有网卡的配置信息,包括未启用网卡 |
up | 启用网卡,ifconfig ens33 up,不会重新读取配置文件 |
down | 停用网卡,ifconfig ens33 down |
案例:
-
临时配置网卡参数(只配置IP,没有网卡和DNS)
[root@localhost ~]# ifconfig ens192 192.168.162.133/24
[root@localhost ~]# ifconfig ens192
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.162.131 netmask 255.255.255.0 broadcast 192.168.162.255
ether 00:0c:29:2a:89:02 txqueuelen 1000 (Ethernet)
RX packets 63 bytes 5549 (5.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 35 bytes 3514 (3.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注意:临时配置,重启网络服务、网卡启停、主机重启都将失效
-
启用网卡ens192,ifconfig查看配置网卡参数
[root@localhost ~]# ifconfig ens192 up
[root@localhost ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.162.130 netmask 255.255.255.0 broadcast 192.168.162.255
inet6 fe80::20c:29ff:fe2a:89f8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2a:89:f8 txqueuelen 1000 (Ethernet)
RX packets 338 bytes 37107 (36.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 284 bytes 78265 (76.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.162.131 netmask 255.255.255.0 broadcast 192.168.162.255
ether 00:0c:29:2a:89:02 txqueuelen 1000 (Ethernet)
RX packets 157 bytes 13242 (12.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 73 bytes 7682 (7.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
停用网卡ens192,ifconfig -a查看所有配置网卡参数包括未启用的网卡
[root@localhost ~]# ifconfig ens192 down
[root@localhost ~]# ifconfig -a
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.162.130 netmask 255.255.255.0 broadcast 192.168.162.255
inet6 fe80::20c:29ff:fe2a:89f8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2a:89:f8 txqueuelen 1000 (Ethernet)
RX packets 664 bytes 129036 (126.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 496 bytes 103742 (101.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens192: flags=4098<BROADCAST,MULTICAST> mtu 1500
inet 192.168.162.131 netmask 255.255.255.0 broadcast 192.168.162.255
ether 00:0c:29:2a:89:02 txqueuelen 1000 (Ethernet)
RX packets 218 bytes 19219 (18.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 79 bytes 9630 (9.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
1、临时IP连接网络,先用route-n查看网关
[root@localhost ~]# ifconfig ens160 down
[root@localhost ~]# ifconfig ens192 up
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.162.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192
2、使用resolve.conf,设置DNS
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
[root@localhost ~]#vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.162.2
3、使用命令route add -net 0/0 gw 192.168.162.2配网关
[root@localhost ~]# route add -net 0/0 gw 192.168.162.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.162.2 0.0.0.0 UG 0 0 0 ens192
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.162.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192
4、现在ping百度依然ping不通
[root@localhost ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
5、在Windows里通过nslookup 查找百度地址,重新在Linux系统里ping
C:\Users\侯帆>nslookup www.baidu.com
服务器: UnKnown
Address: 192.168.43.1
非权威应答:
名称: www.a.shifen.com
Addresses: 2409:8c00:6c21:118b:0:ff:b0e8:f003
2409:8c00:6c21:11eb:0:ff:b0bf:59ca
39.156.70.46
39.156.70.239
Aliases: www.baidu.com
[root@localhost ~]# ping 39.156.70.46
PING 39.156.70.46 (39.156.70.46) 56(84) bytes of data.
64 bytes from 39.156.70.46: icmp_seq=1 ttl=128 time=60.7 ms
64 bytes from 39.156.70.46: icmp_seq=2 ttl=128 time=30.2 ms
64 bytes from 39.156.70.46: icmp_seq=3 ttl=128 time=70.4 ms
64 bytes from 39.156.70.46: icmp_seq=4 ttl=128 time=37.2 ms
^C
--- 39.156.70.46 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 30.155/49.620/70.441/16.494 ms
2.2、ifup和ifdown
#Linux7默认安装
#rocky8安装命令:yum install -y network-scripts
ifup ens33
#启用网卡,并读取配置文件
ifdown ens33
#停用网卡
子接口配置
-
基于物理网卡的逻辑接口
-
可以使系统基于一块网卡配置多个IP地址
ifconfig 网卡名:编号(上限999999999) IP地址/子网掩码的网络位长度 【临时配置】
生成子接口配置文件【永久配置】,不能使用DHCP获得地址
cd /etc/sysconfig/network-scripts
cp ifcfg-ens37 ifcfg-ens37:0
cat ifcfg-ens37:0
TYPE=Ethernet
BOOTPROTO=static
NAME=ens37:0
DEVICE=ens37:0
ONBOOT=yes
IPADDR=192.168.115.214
PREFIX=24
ifdown ens37:0 && ifup ens37:0
TYPE=Ethernet # 类型:以太网
BOOTPROTO=static # 获取IP地址的方式:使用静态IP(自动获取IP:dhcp)
NAME=ens160 # 网络连接名称
UUID=a9e69864-5771-4fc9-8d37-ab0e2b4ed96b # 唯一标识符(无需修改)
DEVICE=ens160 # 网卡设备名称
ONBOOT=yes # 开机自动启用此网络
# IP配置
IPADDR=192.168.162.130 # 本机静态IP地址
PREFIX=24 # 子网掩码(等同于255.255.255.0)
# 🔧 必须填写项(缺失会导致外网不可用)
GATEWAY=192.168.162.1 # 网关地址(通常是路由器的IP,如192.168.162.1或192.168.162.254)
# 🌐 可选DNS配置(访问互联网需要)
DNS1=8.8.8.8 # Google公共DNS
DNS2=8.8.4.4 # Google备用DNS
重新启动
#方式1:使用NetworkManager
systemctl restart NetworkManager
# 方式2:使用传统命令
ifdown ens160 && ifup ens160
案例
生成子接口配置文件,不能使用DHCP获得地址(rocky8)
1、复制一份ens160文件并修改里面的网卡设备名和IP地址
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens160
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-ens160:0
[root@localhost network-scripts]# vim ifcfg-ens160:0
TYPE=Ethernet
BOOTPROTO=static
NAME=ens160:0
UUID=a9e69864-5771-4fc9-8d37-ab0e2b4ed96b
DEVICE=ens160:0
ONBOOT=yes
IPADDR=192.168.162.100
PREFIX=24
GATEWAY=192.168.162.2
DNS1=192.168.162.2
~
2、重新启动
重新启动
#方式1:使用NetworkManager
systemctl restart NetworkManager
# 方式2:使用传统命令
ifdown ens160 && ifup ens160
[root@localhost network-scripts]# ifdown ens160:0 && ifup ens160:0
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2a:89:f8 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.162.130/24 brd 192.168.162.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.162.100/24 brd 192.168.162.255 scope global secondary noprefixroute ens160:0
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2a:89:02 brd ff:ff:ff:ff:ff:ff
altname enp11s0
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c3:96:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
2.3、ip a[ddress]命令
查看网络参数,可以查看到未启用的网卡列表,能够查看基于配置文件实现的多IP地址配置后的网络参数
语法:
ip [ OPTIONS ] OBJECT { COMMAND | help }
选项:
选项 | 作用 |
---|---|
address | 查看设备IP地址 |
案例:
ip a
2.2、配置文件配置
-
/etc/sysconfig/network-scripts/ifcfg-网卡名
-
永久配置,需要网卡重新读取配置文件
-
网卡启停操作
#启动服务
systemctl start network
#停止服务
systemctl stop network
#重启服务
systemctl restart network
#使用命令行重新加载配置文件
ifup 网卡名
ifdown 网卡名
#使用命令行启停网卡,但是不加载配置文件
ifconfig 网卡名 up | down
2.2.1、单一IP地址配置
-
自动获得,必须在当前网络中存在DHCP服务器。
TYPE=Ethernet
#网卡参数的类型,Ethernet:以太网
BOOTPROTO=dhcp
#获得IP地址的方式,dhcp|static|none
NAME=ens33
#网卡描述名称,可有可无
DEVICE=ens33
#网卡设备名称,必须与ifconfig看到的网卡名保持一致。不能书写不存在的网卡名
ONBOOT=yes
#是否启用配置文件,yes|no
-
手动配置
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.115.150
#IP地址
PREFIX=24
#子网掩码长度
#或者使用
NETMASK=255.255.255.0
GATEWAY=192.168.115.2
#默认网关,在同一系统下,不管几块网卡,建议配置一个默认网关。
DNS1=192.168.115.2
#域名解析服务器地址,不建议在多网卡的情况下书写DNS,因为后启动的网卡会覆盖原有的DNS服务器地址。
2.2.2、多IP地址配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR1=192.168.115.150
PREFIX1=24
GATEWAY=192.168.115.2
DNS1=192.168.115.2
IPADDR2=192.168.115.151
PREFIX2=24
DNS2=192.168.115.3
DNS3=192.168.115.4
-
加载配置文件
systemctl restart network
#或者
ifdown ens33 && ifup ens33
-
验证参数
#IP地址
ifconfig | ip a
#网关地址查看
route -n
#DNS地址
cat /etc/resolv.conf
案列
1、修改网卡配置文件,演示直接复制ens160的文件,注意生成文件要和网卡名称一致;修改ens192文件,IPADDR和PREFIX后面要输入数字1和2,IP地址也要修改
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-ens192
[root@localhost network-scripts]# vim ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=static
NAME=ens192
UUID=a9e69864-5771-4fc9-8d37-ab0e2b4ed96b
DEVICE=ens192
ONBOOT=yes
IPADDR1=192.168.162.133
PREFIX1=24
IPADDR2=192.168.162.134
PREFIX2=24
GATEWAY=192.168.162.2
DNS1=192.168.162.2
2、使用命令重启启动,并ip a查看
[root@localhost network-scripts]# ifdown ens192 && ifup ens192
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2a:89:f8 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.162.130/24 brd 192.168.162.255 scope global dynamic noprefixroute ens160
valid_lft 1795sec preferred_lft 1795sec
inet6 fe80::591b:651e:c0e4:636f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2a:89:02 brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 192.168.162.133/24 brd 192.168.162.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 192.168.162.134/24 brd 192.168.162.255 scope global secondary noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe2a:8902/64 scope link
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c3:96:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
3、路由配置
route命令
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。
语法:
route [选项] [参数]
选项:
选项 | 描述 |
---|---|
-A | 设置地址类型; |
-C | 打印将Linux核心的路由缓存; |
-v | 详细信息模式; |
-n | 直接显示数字形式的IP地址; |
-e | netstat格式显示路由表; |
-net | 到一个网络的路由表; |
-host | 到一个主机的路由表。 |
参数:
参数 | 描述 |
---|---|
add | 增加指定的路由记录; |
del | 删除指定的路由记录; |
target | 目的网络或目的主机; |
gw | 设置默认网关; |
mss | 设置TCP的最大区块长度(MSS),单位MB; |
window | 指定通过路由表的TCP连接的TCP窗口大小; |
dev | 路由记录所表示的网络接口。 |
route add -net 0/0 gw 192.168.162.130 dev ens192
二、网络连接查看
1、netstat
作用
-
查看本地服务的网络监听状态
-
查看客户端连接到本地服务的连接状态
语法
netstat 选项 (-anptu)
选项
-n, --numeric
显示数字形式地址而不是去解析主机、端口或用户名。
-a, --all
显示所有的监听或连接状态
-p, --program
显示连接所属进程的PID和名称。
-t,--tcp
显示TCP连接
-u,--udp
显示UDP连接 -l 查看监听
2、ss
作用
-
查看本地服务的网络监听状态
-
查看客户端连接到本地服务的连接状态
语法
ss 选项 (-anptuli)
选项
-n, --numeric 显示数字形式地址而不是去解析主机、端口或用户名。 -a, --all 显示所有的监听或连接状态 -p, --program 显示连接所属进程的PID和名称。 -t,--tcp 显示TCP连接 -u,--udp 显示UDP连接 -i,--info 查看客户端连接到本地的状态(详细查看) -l 查看监听
开启Linux服务的路由功能
vim /etc/sysctl.conf 内核参数修改配置文件 添加 net.ipv4.ip_forward = 1 sysctl -p 加载配置
3、bond绑定
将多个物理网卡进行排列组合,形成逻辑网卡,网卡的高可用
3.1、绑定模式
-
mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地 网卡相连的交换机设备上进行端口聚合来支持绑定技术。(需要外接是设备支持)
-
mode1(自动备援模式):平时只有一块网卡工作(主网卡),在它故障后自动替换为另外的网卡(从网卡)
-
mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持,负载均衡算法
3.2、绑定案例
服务器有两块网卡 ens33和ens36
ens34操作
TYPE=ethernet BOOTPROTO=none NAME=ens34 DEVICE=ens34 ONBOOT=yes MASTER=bond0 SLAVE=yes
ens37操作
TYPE=ethernet BOOTPROTO=none NAME=ens37 DEVICE=ens37 ONBOOT=yes MASTER=bond0 SLAVE=yes
bond0操作
TYPE=ethernet BOOTPROTO=none NAME=bond0 DEVICE=bond0 ONBOOT=yes IPADDR=192.168.1.1 PREFIX=24 GATEWAY=192.168.1.254 DNS1=192.168.1.254
添加bond配置文件
vim /etc/modprobe.d/bond.conf alias bond0 bonding options bonding mode=6 miimon=200
关闭网络图形化服务
systemctl stop NetworkManager
重启网络服务
ifup ens34 && ifup ens37 && ifup bond0 systemctl restart network #重启会出现启动失败,但是bond绑定是OK的!!!
案例
1、配置网卡文件ens160和ens192,将IP获取方式设置为none,master绑定到逻辑接口bond0,slave从属接口为yes
[root@localhost network-scripts]# vim ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@localhost network-scripts]# vim ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=none
NAME=ens192
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes
2、设置bond文件
[root@localhost network-scripts]# vim ifcfg-bond0
TYPE=ethernet
BOOTPROTO=none
NAME=bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.162.130
PREFIX=24
GATEWAY=192.168.162.2
DNS1=192.168.162.2
3、模块化加载,添加bond配置文件
[root@localhost network-scripts]# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bonding mode=6 miimon=200
4、设置图形化管理关闭并开机不自启
[root@localhost network-scripts]# systemctl disable --now NetworkManager
Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
5、重启网络
[root@localhost network-scripts]# ifdown ens160 && ifup ens160 && ifdown ens192 && ifup ens192 && ifup bond0
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
/etc/sysconfig/network-scripts/ifdown-eth:行129: /sys/class/net/bond0/bonding/slaves: 没有那个文件或目录
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
6、查看配置逻辑网卡信息
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:0c:29:2a:89:f8 brd ff:ff:ff:ff:ff:ff
altname enp3s0
3: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:0c:29:2a:89:02 brd ff:ff:ff:ff:ff:ff
altname enp11s0
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c3:96:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:2a:89:f8 brd ff:ff:ff:ff:ff:ff
inet 192.168.162.130/24 brd 192.168.162.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe2a:89f8/64 scope link
valid_lft forever preferred_lft foreve
7、用主机终端ping 是否成功
C:\Users\侯帆>ping 192.168.162.130
正在 Ping 192.168.162.130 具有 32 字节的数据:
来自 192.168.162.130 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.162.130 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.162.130 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.162.130 的回复: 字节=32 时间<1ms TTL=64
192.168.162.130 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
4、Linux下的抓包工具
tcpdump
语法
tcpdump -i 网卡名
选项
-c 当 收到多少个报文后退出 -i 监听 interface. 如果 不指定 接口, tcpdump 在 系统 的 接口 清单 中,寻找 号码最小, 已经 配置好的 接口 (loopback 除外). 选中的时候会中断连接. -n 不要把地址转换成 名字 (指的是 主机地址, 端口号等) -t 禁止 显示 时戳标志. -v (稍微多一点) 繁琐的输出. 例如, 显示 IP 数据报 中的 生存周期 和服务类型. -e 显示 链路层报头
额外参数
dst port portNumber 抓取目标端口为portNumber的报文 port portNumber 抓取端口为portNumber的报文 src port portNumber 抓取源端口为portNumber的报文
案例
抓取客户端访问本机80号端口的1000个报文
tcpdump -tn dst port 80 -c 1000 -i bond0
Wireshark
5、web压力测试工具
ab -c 100 -n 2000 http://192.168.1.254/
6、路由追踪命令
traceroute 目标地址或域名
三、nmcli命令详解
1、概述
nmcli是NetworkManager的一个命令行工具,它提供了使用命令行配置由NetworkManager管理网络连接的方法(nm 代表 NetworkManager,cli 代表 Command-Line)。
注意: 用nmcli配置之前,不要对接口执行"ip addr"操作,不然会冲突,配置失败。 使用 nmcli 命令时,必须确保 NetworkManager 为运行状态。
2、基本格式:
nmcli [选项] OBJECT { COMMAND | help } # 例如 nmcli help # 获取详细介绍
-
OPTIONS:选项,用于指定命令的行为或输出格式。
-
OBJECT:操作对象,如general(一般信息)、device(网络设备)、connection(网络连接)等。
-
COMMAND:对指定的操作对象执行的操作命令,如status(显示状态)、show(显示信息)、up(启用连接)、down(禁用连接)等。
3、常用选项
-t 或 --terse:以简洁格式显示输出,不包括表头等信息。 -f 或 --fields:指定要显示的字段,以逗号分隔。 -p 或 --pretty:以更美观的格式显示输出,包括表头和分隔线。 -v 或 --verbose:显示详细输出,包括额外的信息和调试信息。 -h 或 --help:显示命令的帮助信息。
4、相关系统指令
注意:NetworkManager 中开头的 N 和中间的 M 必须大写。
# 查看状态
systemctl status NetworkManager
# 启动
systemctl start NetworkManager
# 重启
systemctl restart NetworkManager
# 关闭
systemctl stop NetworkManager
# 查看是否开机启动
systemctl is-enabled NetworkManager
# 开机启动
systemctl enable NetworkManag
#开启并开机自启
systemctl enable --now NetworkManagerer
# 禁止开机启动
systemctl disable NetworkManager
#关闭并关机不自启
systemctl disable --now NetworkManager
5、常用命令及简写命令使用举例
status 是 general 的默认项,可以省略不写。
# 显示 NetworkManager 是否接管网络设置
nmcli networking
# 显示NetworkManager状态
nmcli general status
nmcli g
# 显示所有连接
nmcli connection show
nmcli c s
# 只显示当前活动连接,如下所示添加 -a, --active
nmcli connection show --active
nmcli c s -a
# 显示由NetworkManager识别到的设备及其状态
nmcli device status
nmcli d
# 使用nmcli工具启动和停止网络接口,在root权限下执行如下命令(enp3s0为接口名称,需要根据实际情况进行更改)
sudo nmcli connection up id enp3s0
sudo nmcli device disconnect enp3s0
6、常用操作对象及命令
nmcli networking
网络连接状态(CONNECTIVITY)共有五种:full、limited(连网,但无法上网)、portal(连网,但需要登陆认证后才能上网)、none(没连网)和 unknown。
networking 可以简写为 n、ne、net、netw
# 显示 NetworkManager 是否接管网络设置
nmcli networking
# 查看网络连接状态
nmcli n connectivity
# 开启网络连接
nmcli n on
# 关闭网络连接
nmcli n off
nmcli general
-
STATE 显示网络是否连接;
-
CONNECTIVITY 与前面介绍的 nmcli n c 相同;
-
WIFI-HW 表示 WIFI 硬件开关、WIFI 表示 WIFI 软件开关;
-
WWAN-HW 表示 WWAN 硬件开关、WWAN 表示 WWAN 软件开关。
general 可以简写为 g、ge、gen、gene
# 显示系统网络状态
nmcli general status
nmcli g
# 显示主机名
nmcli g hostname
nmcli g h
# 更改主机名,NEW_HOST_NAME 是你设置的新主机名。主机名存放在 /etc/hostname 文件中。
# 修改主机名后,需要重启 NetworkManager。
nmcli g hostname newHostName
nmcli g h NEW_HOST_NAME
# 显示或修改NetworkManager的访问控制权限。
nmcli general permissions
nmcli g p
nmcli connection
connection 可以简写为 c、co、con、conn
# 显示所有网络连接的信息
nmcli connection show # 可以显示每个网络的uuid
# nmcli connection show 有一个 --active 参数,可以只显示当前启动的连接
nmcli c s --active
nmcli c s -a # 因为 show 后面有参数项,所以此时的 show 不能省
# 显示某一特定连接的详细信息(以 接口为ens33 为例)
nmcli c s ens33 # 在ubuntu 18.04上这个命令无效,需要把ens33换成ens33的uuid
# 启动指定连接,如果 ens33 本来就出于连接状态,那此命令会重启 ens33
nmcli c up ens33
# 关闭指定连接,关闭连接后,执行"nmcli c"命令,DEVICE 项将显示为 --
nmcli c down ens33
# 删除指定连接(ens33)
nmcli c delete ens33
nmcli c de ens33 # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de
modify 修改连接
例如:
nmcli c modify ens33 [ + | - ]选项 选项值
nmcli c m ens33 [ + | - ]选项 选项值
修改连接常用示例
注意:必须先修改 ipv4.address,然后才能修改 ipv4.method!
nmcli c m ens33 ipv4.address 192.168.80.10/24 # 修改 IP 地址和子网掩码
nmcli c m ens33 +ipv4.addresses 192.168.80.100/24 # 添加一个 IP 地址和子网掩码
nmcli c m ens33 ipv4.method manual # 修改为静态配置,默认是 auto
nmcli c m ens33 ipv4.gateway 192.168.80.2 # 修改默认网关
nmcli c m ens33 ipv4.dns 192.168.80.2 # 修改 DNS
nmcli c m ens33 +ipv4.dns 223.5.5.5 # 添加一个 DNS
nmcli c m ens33 ipv6.method ignored # 将 IPv6 禁用,针对CentOS8,三个可选项:disabled、auto、manual
nmcli c m ens33 connection.autoconnect yes # 开机启动
-
用空引号""代替选项的值,可将选项设回默认值(以 ipv4.method 为例)
nmcli c m ens33 ipv4.method ""
-
修改链接选项有很多,详细信息可以通过以下命令查看。可以主要看里面 connection setting 和 ipv4 setting 部分。
man 5 nm-settings-nmcli
add 新增连接
nmcli c add tyep 连接类型 选项 选项值
nmcli c a tyep 连接类型 选项 选项值
type 为必选项,我们通常用到的是 802-3-ethernet(别名 ethernet)。
选项与前面介绍的“修改连接”中的选项一样,其中重要的几个选项:
-
connection.id(别名 con-name):连接名;
-
connection.interface-name(别名 ifname):设备名;
-
connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes。
示例:
添加一个新的以太网连接配置:
nmcli c a type ethernet con-name ens36 ifname ens36 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual
注意:
如果网络接口名称或连接名称已经存在,则可能需要先删除现有的连接或更改名称以避免冲突
在修改网络配置后,你可能需要重新启动 NetworkManager 或重启系统来应用更改
-
nmcli:这是 NetworkManager 的命令行界面工具。
-
c a:这是 connection add 的缩写,表示添加一个新的连接。
-
type ethernet:指定连接的类型为以太网。
-
con-name ens36:设置连接的名称(或配置文件名)为 ens36。
-
ifname ens36:指定这个连接将使用的网络接口名称为 ens36。
-
ipv4.addresses 192.168.1.100/24:设置静态 IP 地址为 192.168.1.100,子网掩码为 255.255.255.0(等同于 /24)。
-
ipv4.gateway 192.168.1.1:设置默认网关为 192.168.1.1。
-
ipv4.dns “8.8.8.8 8.8.4.4”:设置 DNS 服务器为 8.8.8.8 和 8.8.4.4。
-
ipv4.method manual:指定 IPv4 配置方法为手动(即静态 IP)。
上方的命令可以拆分为
nmcli c a type ethernet con-name ens36 ifname ens36
# 为刚刚创建的连接配置 IPv4 地址。
nmcli c mod ens36 ipv4.addresses 192.168.1.100/24
# 设置 DNS 服务器地址。
nmcli c mod ens36 ipv4.dns "8.8.8.8 8.8.4.4"
# 指定 IPv4 配置方法为手动,这意味着不会使用 DHCP 来获取 IP 地址。
nmcli c mod ens36 ipv4.method manual
# 最后,激活连接以使配置生效。
nmcli c up ens36
重载配置文件
建议使用 nmcli 命令来设置网络参数,不要直接修改此文件。
# 重载所有连接的配置文件
nmcli c reload
nmcli c r
# 重载某一指定连接的配置文件
nmcli c load ifcfg-ens33
nmcli c l ifcfg-ens33
注意:
网络配置文件默认保存在 /etc/sysconfig/network-scripts/ 路径下,如果配置文件在其它位置,则需要填写完整路径。
网络配置文件的命名方式就是ifcfg-连接名,例如 ens33 的配置文件名为ifcfg-ens33。
rocky9的话,配置文件路径变了,在 /etc/NetworkManager/SystemConnection/
网络配置文件说明
TYPE=Ethernet # 以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none # 静态配置,等同于 ipv4.method manual
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=ens33 # 连接名
UUID=16862343-b55e-4248-b05d-a3ea662a84a4
DEVICE=ens33 # 设备名
ONBOOT=yes # 开机自启
IPADDR=192.168.80.10 # IP 地址
IPADDR1=192.168.80.100
PREFIX=24 # 子网掩码
PREFIX1=24
GATEWAY=192.168.80.2 # 网关
DNS1=192.168.80.2 # DNS1
DNS2=114.114.114.114 # DNS2
nmcli device
device 可以简写为 d、de、dev
# 显示所有网络接口设备的状态
nmcli device status
nmcli d
# 显示所有设备的详细信息
nmcli d show
nmcli d sh # show 不可简写为 s,否则与 status 冲突,但可以简写为 sh
# 显示某一特定设备的详细信息
nmcli d sh ens33
# 连接设备,如果 ens33 本来就处于连接状态,那此命令会重启 ens33,并且触发重新生成 ifcfg文件
nmcli d connect ens33
nmcli d c ens33
# 断开设备
nmcli d disconnect ens33
nmcli d d ens33
# 更新设备信息(只有在设备处于连接状态,才可以更新设备;更新设备也会重启连接)
nmcli d reapply ens33
nmcli d r ens33
# 显示附近的无线网络设备的详细信息。
nmcli device wifi list
# 连接到指定的无线网络,需要指定SSID和密码。
nmcli device wifi connect "SSID" password "password"
# 断开当前的无线网络连接。
nmcli device wifi disconnect
四、网络配置方法
方法一:通过修改 NetworkManager 的 keyfile 格式配置文件
获取网络接口信息:在配置网络之前,需要先获取系统中可用的网络接口信息,可以使用ip link、ifconfig或ls /sys/class/net命令来查看.
编辑配置文件:Rocky 9 的网络配置文件默认存储在/etc/NetworkManager/system-connections/目录下,文件格式为 keyfile 格式。使用vim等文本编辑器打开对应的网络接口配置文件,如ens33.nmconnection135.
修改配置参数:
-
设置静态 IP 地址:将(ipv4)下的method=auto改为method=manual,并添加address参数来指定 IP 地址、子网掩码和网关,例如address=192.168.1.10/24,192.168.1.2。
-
设置 DNS 服务器:添加dns参数来指定 DNS 服务器地址,如dns=8.8.8.8;114.114.114.114,可以根据需要填写多个 DNS 服务器地址,用分号分隔。
加载并激活配置:
-
加载配置文件:使用nmcli connection load /etc/NetworkManager/system-connections/ens33.nmconnection命令加载配置文件13.
-
激活网卡:使用nmcli connection up /etc/NetworkManager/system-connections/ens33.nmconnection命令激活网卡,使配置生效.
配置字段解析
[connection]部分
配置字段解析:
-
id:用于标识该网络连接的名称,可自定义,方便用户识别和管理不同的网络连接,通常与网络接口名称相关.
-
uuid:通用唯一识别码,由系统自动生成,用于在NetworkManager中唯一标识该网络连接配置,一般无需手动修改.
-
type:指定网络连接的类型,常见的值有“ethernet”表示以太网连接,“wifi”表示无线网络连接等,根据实际网络设备和连接方式进行选择.
-
autoconnect-priority:设置网络连接的自动连接优先级,数值越小优先级越高,-999表示较低的优先级。可根据需要调整该值来确定多个网络连接的顺序,以便在系统启动时优先连接重要的网络.
-
interface-name:必须与实际的网络接口设备名称一致,用于将网络连接配置与对应的物理网络接口关联起来,如“ens33”等.
配置案例:
(connection)
id=ens33
uuid=1c0d8661-d96c-3ecd-8578-eba771cadac4
type=ethernet
autoconnect-priority=-999
interface-name=ens33
[ethernet]部分
配置字段解析:通常无需手动添加额外参数,默认即可正常工作。若有特殊需求,如设置以太网的双工模式等,可以在此添加相应参数,如“duplex-full”表示全双工模式。
配置案例:
[ethernet]
duplex-full
双工模式是现行所有网络的默认模式
模式 | 定义 | 典型应用场景 |
---|---|---|
单工(Simplex) | 数据只能单向传输(A→B 或 B→A,不可逆) | 广播、电视信号传输 |
半双工(Half-Duplex) | 数据可双向传输,但同一时间只能单向(如对讲机) | 早期以太网(CSMA/CD)、无线对讲 |
全双工(Full-Duplex) | 数据可双向同时传输(A↔B) | 电话、现代以太网、USB 3.0 |
[ipv4]部分
配置字段解析:
-
method:获取IP地址的方式,常见的值有“auto”表示自动获取IP地址,通常通过DHCP等方式从网络中的DHCP服务器获取IP地址、子网掩码、网关等网络配置信息;“manual”表示手动配置静态IP地址,需要手动指定IP地址、子网掩码、网关和DNS等信息.
-
address:当method为manual时,用于指定静态IP地址和子网掩码,格式为“IP地址/子网掩码长度”,还可以在后面添加网关地址,用逗号分隔,如“192.168.1.10/24,192.168.1.1”.
-
netmask:子网掩码,也可以在address参数中统一配置,若单独配置则需按照子网掩码的格式填写,如“255.255.255.0”.
-
gateway:网关地址,用于指定网络数据包的转发地址,需与所在网络环境的网关配置一致.
-
dns:指定DNS服务器地址,多个DNS服务器之间用分号分隔,如“8.8.8.8;114.114.114.114”.
-
route:可用于添加静态路由,格式为“网段,网关”,可以添加多条route来配置多个静态路由,例如“route1=10.1.0.0/16,192.168.1.2 route2=10.2.0.0/16,192.168.1.2”.
配置案例:
(ipv4)
method=manual
address=192.168.1.3/24,192.168.1.1
netmask=255.255.255.0
gateway=192.168.1.1
dns=8.8.8.8;114.114.114.114
route1=10.1.0.0/16,192.168.1.1
route2=10.2.0.0/16,192.168.1.1
案例
1、首先添加一块网卡ens192,添加一个新以太网连接配置
[root@localhost ~]# nmcli connection add type ethernet con-name ens192 ifname ens192
连接 "ens192" (21132aab-ddae-4561-b597-00a7db771310) 已成功添加。
[root@localhost ~]# nmcli c show
NAME UUID TYPE D>
ens160 39ce050c-6407-3546-b261-9ffd8cc2af94 ethernet e>
ens192 21132aab-ddae-4561-b597-00a7db771310 ethernet e>
lo 4ef2eb3d-6cc1-43ab-9fc2-55e92f7d53ba loopback l>
2、切换目录/etc/NetworkManager/system-connections/
root@localhost ~]# cd /etc/NetworkManager/
[root@localhost NetworkManager]# cd system-connections/
[root@localhost system-connections]# ls
ens160.nmconnection ens192.nmconnection
3、修改配置文件ens192.nmconneection
[root@localhost system-connections]# vim ens192.nmconnection
[connection]
id=ens192
uuid=21132aab-ddae-4561-b597-00a7db771310
type=ethernet
interface-name=ens192
[ethernet]
[ipv4]
method=manual
address=192.168.162.120/24
geteway=192.168.162.2
des=192.168.162.2;144.144.144.144
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
4、加载配置文件
使用nmcli connection load /etc/NetworkManager/system-connections/ens192.nmconnection命令加载配置文件
[root@localhost system-connections]# nmcli connection load ens192.nmconnection
5、激活网卡
使用nmcli connection up /etc/NetworkManager/system-connections/ens33.nmconnection命令激活网卡,使配置生效
[ipv6]部分
配置字段解析:
-
method:获取IPv6地址的方式,常见的值有“auto”表示自动获取IPv6地址,通常通过路由器通告(Router Advertisement,RA)或DHCPv6等方式获取地址和其他网络配置信息;“manual”表示手动配置静态IPv6地址;“ignore”表示忽略IPv6配置,不进行任何IPv6地址的获取或配置操作,但仍可能会生成链路本地地址;“disabled”表示完全禁用IPv6,既不获取也不生成任何IPv6地址,包括链路本地地址 。
-
addr-gen-mode:生成IPv6地址的模式,常见的值为“eui64”,表示使用扩展唯一标识符64位格式来生成接口标识符,从而生成IPv6地址 。
-
address:当method为manual时,用于指定静态IPv6地址和前缀长度,格式为“IPv6地址/前缀长度”,例如“2001:0db8:85a3:0000:0000:8a2e:0370:7334/64”。
-
gateway:指定IPv6的默认网关地址,所有发往非本地网络的IPv6数据包都将通过此网关转发。
-
dns:用于指定IPv6的DNS服务器地址,多个DNS服务器之间用分号分隔,如“2001:4860:4860::8888;2001:4860:4860::8844”。
-
route:可用于添加静态IPv6路由,格式为“目标网段,网关,度量值”,度量值是一个可选参数,用于指定路由的优先级,数值越小优先级越高。可以添加多条route来配置多个静态路由,例如“route1=2001:db8::/32,2001:db8:1::1,100 route2=2002:db8::/32,2002:db8:1::1,200” 。
-
ip6-privacy:用于控制是否启用IPv6隐私扩展。当设置为“0”时,表示禁用隐私扩展,使用基于接口标识符的固定地址;当设置为“1”时,表示启用隐私扩展,会定期生成临时的隐私地址,以增强隐私保护。
-
autoconf:设置是否启用IPv6的无状态自动配置。当设置为“yes”时,允许设备通过路由器通告自动获取IPv6地址、前缀和其他网络配置信息;当设置为“no”时,则禁用无状态自动配置,通常在需要手动配置IPv6或使用其他配置方式时使用 。
-
dhcp-send-hostname:用于控制是否在DHCPv6请求中发送主机名。当设置为“true”时,会在向DHCPv6服务器发送请求时包含主机名信息;当设置为“false”时,则不发送主机名。
-
dhcp-hostname:指定在DHCPv6请求中使用的主机名。如果dhcp-send-hostname设置为“true”,则会使用此配置的主机名发送给DHCPv6服务器。
配置案例:
(ipv6)
method=manual
addr-gen-mode=eui64
address=2001:0db8:85a3:0000:0000:8a2e:0370:7334/64
gateway=2001:0db8:85a3:0001::1
dns=2001:4860:4860::8888;2001:4860:4860::8844
route1=2001:db8::/32,2001:db8:1::1,100
route2=2002:db8::/32,2002:db8:1::1,200
ip6-privacy=1
autoconf=no
dhcp-send-hostname=true
dhcp-hostname=myhost
方法二:使用nmtui命令进行配置
-
打开 nmtui:在终端中输入nmtui命令,会弹出一个基于文本的用户界面6.
-
选择编辑连接:在nmtui界面中,选择 “Edit a connection” 选项,然后选择要配置的网络接口6.
-
配置网络参数:在编辑连接界面中,可以设置 IP 地址、网关、DNS 等网络参数,设置完成后点击 “OK” 保存配置6.
-
激活连接:回到nmtui主界面,选择 “Activate a connection” 选项,激活刚才配置的网络连接。
方法三:使用命令行工具nmcli进行配置
-
查看网络设备状态:
#查看系统上网络设备的状态,获取网络接口名称等信息. nmcli dev status
-
配置静态 IP 地址:
#配置静态 IP 地址 nmcli connection modify <interface-name> ipv4.addresses <ip-address>/<subnet-mask>,<gateway> nmcli connection modify ens33 ipv4.addresses 192.168.1.10/24,192.168.1.24
-
配置 DNS 服务器:
#配置 DNS 服务器 nmcli connection modify <interface-name> ipv4.dns <dns-server-1>,<dns-server-2> 1. nmcli connection modify ens33 ipv4.dns 8.8.8.8,114.114.114.114
重新加载并激活配置:
#重新加载网络配置 nmcli connection reload #命令激活网络连接 nmcli connection up <interface-name>
方法四:使用ip命令进行临时配置
-
配置静态 IP 地址:
#配置静态 IP 地址 ip addr add <ip-address>/<subnet-mask> dev <interface-name> ip addr add 192.168.1.10/24 dev ens33
-
配置默认网关:
#配置默认网关 ip route add default via <gateway> dev <interface-name> ip route add default via 192.168.1.2 dev ens33
-
配置 DNS 服务器:可以通过修改/etc/resolv.conf文件来配置 DNS 服务器,添加nameserver <dns-server-ip>行
nameserver 8.8.8.8和nameserver 114.114.114.114
需要注意的是,方法四的配置在系统重启后会失效,如果需要永久生效,建议使用前三种方法中的一种来配置网络。
附录:
Linux kernel 3.10 常见的内核参数如下:
-
系统资源管理相关:
- fs.file-max
:表示系统级别的能够打开的文件句柄的数量,直接限制最大并发连接数,是对整个系统的限制,而不是针对单个用户。其默认值在系统启动时会根据内存计算得出,一般建议根据内存大小(KB)的 10%来设置。例如,如果内存是 1GB(1024MB,即 1024 * 1024KB),那么 fs.file-max
的值可以设置为 1024 * 1024 / 10
。
- fs.nr_open
:单进程能够打开的最大文件句柄数。默认值通常是 1048576(1024 * 1024),如果有高并发连接需求,可根据实际情况修改。
- vm.swappiness
:控制页面交换器(swapper)使用系统内存的程度,取值范围是 0 到 100。0 表示完全禁用页面交换器,只有当系统出现内存不足(OOM)时才允许使用;100 表示尽可能多地使用页面交换器。如果系统内存充足,希望减少对磁盘交换空间的使用,提高性能,可以将此值设置得较低,比如 10 或 20。
- vm.overcommit_memory
:控制内存过度分配的策略,取值范围是 0 到 2。0 表示启用内存过度分配检查;1 表示总是允许内存过度分配;2 表示允许过度分配,但在内存不足时进行检查。建议根据应用场景选择,例如对于内存需求较为明确且不希望出现内存申请失败的场景,可以设置为 1。
-
网络相关:
- net.ipv4.ip_forward
:其值为 0 时表示禁止进行 IP 转发;如果是 1,则表示 IP 转发功能已经打开。如果你的系统需要作为路由器或网关,需要开启此功能。
- net.ipv4.tcp_keepalive_time
:TCP 发送 keepalive 探测消息的间隔时间(秒),用于确认 TCP 连接是否有效,防止两边建立连接但不发送数据的攻击。默认值通常较高,可以根据实际网络情况适当调整。
- net.ipv4.tcp_keepalive_intvl
:TCP 检查间隔时间(keepalive 探测包的发送间隔)。
- net.ipv4.tcp_keepalive_probes
:TCP 检查次数(如果对方不予应答,探测包的发送次数)。
- net.ipv4.tcp_max_syn_backlog
:对于那些还未获得客户端确认的连接请求,需要保存在队列中的最大数目。对于内存较大的系统,默认值可能无法满足高并发需求,可以适当增加此值。
- net.ipv4.neigh.default.gc_stale_time
:ARP 缓存条目超时时间,即 ARP 缓存表中条目的存活时间,超过该时间未使用的条目将被删除,以节省内存和网络资源。
- net.core.netdev_max_backlog
:当每个网络接口接收数据包的速率比内核处理速率快时,允许发送到队列的数据包的最大数。每个 CPU 核都有一个 backlog 队列,当协议栈处理速度满足不了接收包速率时可能会发生丢包,可以根据网络流量和 CPU 处理能力调整此值。
-
套接字相关:
- net.core.rmem_max
:内核接收套接字缓冲区大小的最大值(以字节为单位),用于设置接收数据的缓冲区大小上限,对于需要处理大量数据接收的应用程序,适当调大此值可以提高性能。
- net.core.wmem_max
:内核发送套接字缓冲区大小的最大值(以字节为单位),设置发送数据的缓冲区大小上限,根据实际的网络应用场景调整此值可以优化数据发送性能。
- net.core.somaxconn
:调节系统同时发起的 TCP 连接数。在高并发情况下,该值过小容易出现连接超时等问题,一般建议根据实际并发量进行调整。
-
安全相关:
- kernel.panic_on_oom
:内核发生内存不足(OOM)时,控制系统的行为。0 表示系统继续运行;1 表示系统恐慌(panic)。
- net.ipv4.conf.all.rp_filter
:默认为 1,系统会严格校验数据包的反向路径,可能导致丢包。在某些特殊网络环境下,如存在网络地址转换(NAT)等情况,可能需要将其设置为 0 以避免数据包被误过滤。
-
其他:
- kernel.randomize_va_space
:启用内核空间随机化,可以增加攻击者猜测内存地址的难度,提高系统的安全性。
- kernel.sysrq
:用于控制系统的调试和故障恢复功能,通过特定的键盘组合(如 Alt + SysRq + 特定字符)可以执行一些紧急操作,如内存转储、立即重启等。默认情况下可能是开启的,但在某些生产环境中可能需要根据安全策略进行调整。
这些内核参数可以在 /proc/sys/
目录下对应的文件中进行查看和修改。需要注意的是,修改内核参数可能会对系统的稳定性和性能产生影响,因此在修改之前应该充分了解其含义和作用,并根据实际情况进行调整。
网络通信性能指标:
在网络通信中,除了常见的带宽(Bandwidth)、时延(Latency)、抖动(Jitter)和丢包率(Packet Loss Rate)之外,还有一些其他重要的性能指标,用于更全面地评估网络通信的质量和效率。以下是一些常见的网络通信性能指标:
1. 吞吐量(Throughput)
-
定义:吞吐量是指在单位时间内网络成功传输的数据量,通常以比特每秒(bps)或字节每秒(B/s)为单位。它反映了网络的实际传输效率。
-
应用场景:用于评估网络在实际负载下的传输能力,特别是在高负载或拥塞情况下。
2. 往返时间(RTT, Round-Trip Time)
-
定义:RTT 是指一个数据包从发送端到接收端并返回的时间。通常以毫秒(ms)为单位。
-
应用场景:通过
ping
命令可以测量 RTT,用于评估网络的延迟性能。
3. 最大传输单元(MTU, Maximum Transmission Unit)
-
定义:MTU 是网络层协议允许的最大数据包大小,通常以字节为单位。
-
应用场景:如果数据包大小超过 MTU,数据包会被分片,可能导致传输效率降低。
4. 最大接收长度(MRL, Maximum Receive Length)
-
定义:MRL 是网络设备或协议能够接收的最大数据包长度限制。
-
应用场景:用于防止接收端因数据包过大而出现处理错误或性能下降。
5. 路径最大传输单元(PMTU, Path MTU)
-
定义:PMTU 是从源到目的地路径上允许的最大数据包大小。
-
应用场景:通过 PMTU 发现机制,可以避免数据包在传输过程中被分片,从而提高传输效率。
6. 网络利用率(Network Utilization)
-
定义:网络利用率是指网络带宽的实际使用率,通常以百分比表示。
-
应用场景:用于评估网络资源的使用情况,帮助优化网络配置。
7. 错误率(Error Rate)
-
定义:错误率是指在传输过程中出现错误的数据包数量与总数据包数量的比率。
-
应用场景:用于评估网络的可靠性,特别是在噪声或干扰较大的环境中。
8. 重传率(Retransmission Rate)
-
定义:重传率是指因丢包或错误而重新发送的数据包数量与总发送数据包数量的比率。
-
应用场景:用于评估网络的稳定性和传输效率,特别是在高延迟或高丢包率的环境中。
9. 带宽利用率(Bandwidth Utilization)
-
定义:带宽利用率是指实际使用的带宽与可用带宽的比例。
-
应用场景:用于评估网络的负载情况,帮助优化带宽分配。
这些指标共同构成了网络通信性能的全面评估体系,帮助网络工程师优化网络配置,提升用户体验。