Linux系统网络管理与Rocky9网络管理区别(三)
本文介绍了Linux系统中网络连接查看与管理的相关工具及技术。主要内容包括:1)使用netstat和ss命令查看网络连接状态;2)通过bond绑定实现网卡高可用,详细讲解三种绑定模式及在CentOS7、OpenEuler和Rocky9上的配置方法;3)tcpdump抓包工具的使用;4)web压力测试工具ab;5)路由追踪命令traceroute。此外还介绍了Linux内核网络参数配置和网络性能指标
一、网络连接查看
1、netstat
作用
-
查看本地服务的网络监听状态
-
查看客户端连接到本地服务的连接状态
语法
netstat 选项 (-anptu)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 797/rpcbind
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1481/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1224/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1220/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1498/master
tcp 0 0 192.168.115.112:48884 202.202.1.140:80 ESTABLISHED 2462/python
tcp 0 0 192.168.115.112:46794 210.28.130.3:80 TIME_WAIT -
tcp 0 0 192.168.115.112:34178 210.44.151.62:80 TIME_WAIT -
tcp 0 0 192.168.115.112:60438 124.70.125.153:80 TIME_WAIT -
tcp 0 0 192.168.115.112:34186 210.44.151.62:80 TIME_WAIT -
tcp 0 0 192.168.115.112:34688 59.72.66.10:80 TIME_WAIT -
tcp 0 0 192.168.115.112:51620 39.155.141.16:80 TIME_WAIT -
tcp 0 0 192.168.115.112:46796 210.28.130.3:80 TIME_WAIT -
tcp 0 0 192.168.115.112:53846 44.238.81.22:443 ESTABLISHED 2092/geoclue
tcp 1 0 192.168.115.112:49812 35.180.43.213:80 CLOSE_WAIT 2462/python
tcp 0 0 192.168.115.112:46930 211.68.71.121:80 TIME_WAIT -
tcp 0 0 192.168.115.112:34716 59.72.66.10:80 TIME_WAIT -
tcp 0 0 192.168.115.112:49614 120.201.228.227:80 TIME_WAIT -
tcp 0 0 192.168.115.112:56660 202.141.176.110:80 TIME_WAIT -
tcp 0 0 192.168.115.112:49134 117.147.202.12:80 TIME_WAIT -
tcp 0 0 192.168.115.112:56664 202.141.176.110:80 TIME_WAIT -
tcp 0 0 192.168.115.112:51628 39.155.141.16:80 TIME_WAIT -
tcp 0 0 192.168.115.112:53992 101.6.15.130:80 TIME_WAIT -
tcp 0 0 192.168.115.112:54004 101.6.15.130:80 TIME_WAIT -
tcp 0 0 192.168.115.112:49136 117.147.202.12:80 TIME_WAIT -
tcp 0 0 192.168.115.112:48886 202.202.1.140:80 TIME_WAIT -
tcp6 0 0 :::111 :::* LISTEN 797/rpcbind
tcp6 0 0 :::22 :::* LISTEN 1224/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1220/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1498/master
udp 0 0 0.0.0.0:966 0.0.0.0:* 797/rpcbind
udp 0 0 192.168.122.1:53 0.0.0.0:* 1481/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1481/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 797/rpcbind
udp 0 0 0.0.0.0:5353 0.0.0.0:* 795/avahi-daemon: r
udp 0 0 0.0.0.0:55584 0.0.0.0:* 795/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 852/chronyd
udp6 0 0 :::966 :::* 797/rpcbind
udp6 0 0 :::111 :::* 797/rpcbind
udp6 0 0 ::1:323 :::* 852/chronyd
选项
-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、绑定案例
1、基于CentOS7操作系统
服务器有两块网卡 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 【关闭后开机失效】
systemctl disable --now NetworkManager 【关闭且开机不自启】
重启网络服务
ifup ens34 && ifup ens37 && ifup bond0
systemctl restart network #重启会出现启动失败,但是bond绑定是OK的!!!
2、基于OpenEuler(国内的信创项目)
好的,以下是 nmcli 命令中 Bonding 模式的所有选项及其详细含义的完整列表。
Bonding 模式列表及含义
在 nmcli 中,使用 mode 参数来指定 Bonding 模式。以下是所有可用的模式:
| NMCLI 模式值 | 模式编号 | 中文名称 | 含义及特点 |
|---|---|---|---|
balance-rr |
mode-0 | 轮询 | 特点: 数据包按顺序依次从每个 Slave 接口发送。 优点: 提供负载均衡和容错能力。 缺点: 需要交换机支持端口聚合,否则可能导致网络混乱。 交换机要求: 必须配置为静态聚合或 LACP。 |
active-backup |
mode-1 | 主备 | 特点: 只有一个 Slave 接口处于活动状态,其他作为备份。只有在活动接口故障时,备份接口才被激活。 优点: 提供高可用性,配置简单,交换机无需特殊配置。 缺点: 不能增加带宽,资源利用率低。 交换机要求: 无特殊要求。 |
balance-xor |
mode-2 | 异或 | 特点: 基于 [(源MAC地址 ⊕ 目标MAC地址) % Slave数量] 来选择发送接口。 优点: 为同一对话提供负载均衡和容错,保证数据包顺序。 缺点: 流量分布可能不均衡。 交换机要求: 必须配置为静态聚合或 LACP。 |
broadcast |
mode-3 | 广播 | 特点: 所有数据包都从所有 Slave 接口发送。 优点: 提供极高的容错能力。 缺点: 极度浪费带宽,通常只用于非常特殊的场景。 交换机要求: 无特殊要求。 |
802.3ad |
mode-4 | 动态链路聚合 (LACP) | 特点: IEEE 802.3ad 标准模式。使用 LACP 协议与交换机动态协商和监控聚合链路。 优点: 标准的链路聚合,提供负载均衡、高可用性和良好的监控能力。 缺点: 需要交换机支持并正确配置 LACP。 交换机要求: 必须配置为 LACP 模式(主动或被动)。 |
balance-tlb |
mode-5 | 自适应传输负载均衡 | 特点: 根据每个 Slave 的当前负载进行出口流量(发送)的负载均衡。入口流量(接收)由当前 Slave 处理。 优点: 不需要交换机特殊配置。 缺点: 只有出口流量被均衡,容错能力较弱(故障切换时可能导致ARP问题)。 交换机要求: 无特殊要求。 |
balance-alb |
mode-6 | 自适应负载均衡 | 特点: 在 mode-5 (tlb) 的基础上,增加了入口流量(接收)的负载均衡,通过ARP协商实现。 优点: 提供出口和入口的负载均衡,且不需要交换机特殊支持。 缺点: 在软件层实现,会消耗更多主机CPU资源。 交换机要求: 无特殊要求。 |
在 nmcli 命令中的使用示例
创建 Bond 连接时,使用 mode 参数指定上述任一模式:
# 示例:创建 mode-4 (LACP) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \
mode 802.3ad \
ipv4.method auto
# 示例:创建 mode-1 (主备) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \
mode active-backup \
ip4 192.168.1.100/24 \
gw4 192.168.1.1 \
ipv4.method manual
# 示例:创建 mode-6 (自适应负载均衡) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \
mode balance-alb \
ipv4.method auto
查看当前系统支持的所有模式
虽然 nmcli 本身不直接列出模式,但您可以通过查看内核文档或帮助信息来确认支持的模式:
# 查看 bond 连接的帮助信息,其中会包含 mode 参数的简要说明
nmcli connection add type bond help
更详细的信息通常需要查阅官方文档或内核的 bonding 文档:
# 查看系统上的 bonding 文档(如果已安装)
modinfo bonding | grep -i description
总结与选择建议
| 场景 | 推荐模式 | 原因 |
|---|---|---|
| 标准数据中心 | 802.3ad (mode-4) |
需要交换机支持。是行业标准,提供最好的性能和可靠性。 |
| 高可用性 (HA) | active-backup (mode-1) |
配置简单,交换机无要求。主要目标是故障切换而非带宽聚合。 |
| 无交换机支持 | balance-alb (mode-6) |
不需要配置交换机,能同时实现出入向流量的负载均衡。 |
| 极简负载均衡 | balance-tlb (mode-5) |
不需要配置交换机,但只均衡出口流量。 |
| 特定网络需求 | balance-xor (mode-2) |
适用于需要保持数据包顺序的特定应用。 |
希望这个完整的列表和解释能帮助您更好地理解和使用 nmcli 进行 Bonding 配置。
bond0设置
nmcli c ad type bond con-name bond0 ifname bond0 mode balance-alb
3、基于Rocky9
好的,以下是 Rocky Linux 9 上使用 nmcli 配置 Bonding 的完整过程。我们将以最常用的 mode-4 (802.3ad/LACP) 为例,并提供其他模式的调整方法。
前置条件
-
至少有两个物理网卡(例如
ens192和ens224)可供绑定。 -
确保网络连接稳定,或直接在本地终端操作。
-
具有
root权限。
完整配置步骤
步骤 1:确认网卡状态和名称
Rocky Linux 9 通常使用类似 ensXX, enpXsX, ethX 的网卡命名方式。
nmcli device status
输出示例:
DEVICE TYPE STATE CONNECTION
ens192 ethernet disconnected --
ens224 ethernet disconnected --
lo loopback unmanaged --
记下你要绑定的网卡名称,本例中使用 ens192 和 ens224。
步骤 2:创建 Bonding 连接
使用以下命令创建 Bond 接口。请根据您的网络环境修改 IP 地址、网关等参数。
对于静态 IP 配置:
nmcli connection add type bond con-name bond0 ifname bond0 \
mode 802.3ad \
ip4 192.168.1.100/24 \
gw4 192.168.1.1 \
ipv4.dns "8.8.8.8,1.1.1.1" \
ipv4.method manual
对于 DHCP 自动获取 IP:
nmcli connection add type bond con-name bond0 ifname bond0 \
mode 802.3ad \
ipv4.method auto
步骤 3:将物理网卡添加为从属接口
# 添加第一个从属网卡
nmcli connection add type bond-slave con-name bond-slave-ens192 ifname ens192 master bond0
# 添加第二个从属网卡
nmcli connection add type bond-slave con-name bond-slave-ens224 ifname ens224 master bond0
步骤 4:激活 Bond 连接
nmcli connection up bond0
步骤 5:验证配置
检查网络设备状态:
nmcli device status
输出应该显示 bond0 和它的从属接口都已连接:
DEVICE TYPE STATE CONNECTION
bond0 bond connected bond0
ens192 ethernet connected bond-slave-ens192
ens224 ethernet connected bond-slave-ens224
查看详细的 Bonding 状态:
cat /proc/net/bonding/bond0
检查 IP 地址配置:
ip addr show bond0
测试网络连通性:
ping -c 4 8.8.8.8
配置其他 Bonding 模式
如果要使用其他模式,只需在创建 Bond 连接时修改 mode 参数:
Mode-1 (active-backup) - 主备模式
nmcli connection add type bond con-name bond0 ifname bond0 \
mode active-backup \
ip4 192.168.1.100/24 \
gw4 192.168.1.1 \
ipv4.method manual
Mode-6 (balance-alb) - 自适应负载均衡
nmcli connection add type bond con-name bond0 ifname bond0 \
mode balance-alb \
ip4 192.168.1.100/24 \
gw4 192.168.1.1 \
ipv4.method manual
Mode-0 (balance-rr) - 轮询模式
nmcli connection add type bond con-name bond0 ifname bond0 \
mode balance-rr \
ip4 192.168.1.100/24 \
gw4 192.168.1.1 \
ipv4.method manual
完整自动化脚本
您可以创建一个脚本来自动化整个过程:
#!/bin/bash
# Rocky Linux 9 Bonding 配置脚本
# 使用方法: ./configure_bond.sh
# 配置参数 - 请根据您的环境修改
BOND_CONN_NAME="bond0"
BOND_IFNAME="bond0"
BOND_MODE="802.3ad" # 可改为: active-backup, balance-alb, balance-rr
BOND_IP="192.168.1.100/24"
BOND_GW="192.168.1.1"
DNS_SERVERS="8.8.8.8,1.1.1.1"
SLAVE1_IFNAME="ens192"
SLAVE2_IFNAME="ens224"
echo "=== 开始配置 Bonding ==="
# 1. 检查网卡是否存在
echo "检查网卡设备..."
if ! nmcli device | grep -q "$SLAVE1_IFNAME"; then
echo "错误: 网卡 $SLAVE1_IFNAME 不存在!"
exit 1
fi
if ! nmcli device | grep -q "$SLAVE2_IFNAME"; then
echo "错误: 网卡 $SLAVE2_IFNAME 不存在!"
exit 1
fi
# 2. 删除可能存在的现有配置
echo "清理现有配置..."
nmcli connection delete "$BOND_CONN_NAME" 2>/dev/null
nmcli connection delete "bond-slave-$SLAVE1_IFNAME" 2>/dev/null
nmcli connection delete "bond-slave-$SLAVE2_IFNAME" 2>/dev/null
# 3. 创建 Bond 连接
echo "创建 Bond 连接..."
nmcli connection add type bond con-name "$BOND_CONN_NAME" ifname "$BOND_IFNAME" \
mode "$BOND_MODE" \
ip4 "$BOND_IP" \
gw4 "$BOND_GW" \
ipv4.dns "$DNS_SERVERS" \
ipv4.method manual
# 4. 创建从属连接
echo "添加从属网卡..."
nmcli connection add type bond-slave con-name "bond-slave-$SLAVE1_IFNAME" ifname "$SLAVE1_IFNAME" master "$BOND_CONN_NAME"
nmcli connection add type bond-slave con-name "bond-slave-$SLAVE2_IFNAME" ifname "$SLAVE2_IFNAME" master "$BOND_CONN_NAME"
# 5. 激活 Bond
echo "激活 Bond 连接..."
nmcli connection up "$BOND_CONN_NAME"
# 6. 验证配置
echo "=== 验证配置 ==="
echo "网络设备状态:"
nmcli device status
echo -e "\nBonding 状态:"
cat /proc/net/bonding/bond0 | head -20
echo -e "\nIP 地址信息:"
ip addr show bond0
echo -e "\n=== Bonding 配置完成 ==="
保存为 configure_bond.sh,赋予执行权限后运行:
chmod +x configure_bond.sh
./configure_bond.sh
管理和故障排除命令
查看所有连接配置:
nmcli connection show
查看具体连接的详细配置:
nmcli connection show bond0
重新加载连接:
nmcli connection reload
完全删除 Bond 配置:
nmcli connection delete bond0
nmcli connection delete bond-slave-ens192
nmcli connection delete bond-slave-ens224
查看系统日志:
journalctl -xe -u NetworkManager
重要注意事项
-
交换机配置:对于 mode-4 (802.3ad),必须在交换机端相应端口上启用 LACP。
-
网络中断:配置过程中会出现短暂网络中断,建议在本地控制台操作。
-
持久化:使用
nmcli配置会自动持久化,重启后配置仍然有效。 -
防火墙:如果启用了防火墙,确保相应的防火墙规则已配置。
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
以下是Wireshark抓包工具的一些主要选项列表:
| 选项类别 | 选项名称 | 说明 |
|---|---|---|
| 首选项 - 用户接口(User Interface) | 窗口位置保存 | 可选择是否保存窗口位置 |
| 窗口布局 | 可调整3个主要窗口的布局 | |
| 滚动条摆放 | 设置滚动条的位置 | |
| 列摆放 | 调整Packet List面板中列的布局 | |
| 字体、颜色 | 设置显示捕获数据的字体、前景色和背景色 | |
| 首选项 - 捕获(Capture) | 默认使用设备 | 指定默认的抓包设备 |
| 混杂模式 | 可选择是否默认使用混杂模式 | |
| 实时更新 | 决定是否实时更新Packet List面板 | |
| 首选项 - 打印(Printing) | 打印设置 | 对Wireshark打印数据的方式进行特殊设定 |
| 首选项 - 名字解析(Name Resolutions) | 地址解析 | 开启将地址(包括MAC、网络以及传输名字解析)解析成更易分辨名字的功能 |
| 并发请求数目 | 设定可以并发处理名字解析请求的最大数目 | |
| 首选项 - 统计(Statistics) | 统计功能设定 | 提供Wireshark中统计功能的设定选项 |
| 抓包界面 - 菜单栏 | 协议颜色标识 | 路径为View --> Coloring Rules,可定位协议颜色标识 |
| 显示过滤器 | 路径为Analyze --> Display Filters,用于设置过滤条件进行数据包列表过滤 | |
| 抓包界面 - 过滤栏 | 显示过滤器 | 在主界面上,用来在捕获的记录中找到所需记录 |
| 捕获过滤器 | 在Capture -> Capture Filters中设置,用于过滤捕获的封包 | |
| 抓包界面 - 数据包列表(Packet List Pane) | 数据包信息 | 显示捕获到的数据包,包含编号、时间戳、源地址、目标地址、协议、长度等信息,不同协议数据包颜色不同 |
| 抓包界面 - 数据包详细信息(Packet Details Pane) | 数据包详情 | 选择指定数据包后,显示其所有详细信息内容,可查看协议中的每个字段 |
| 抓包界面 - 其他 | 16进制数据(Dissector Pane) | 显示数据包对应的16进制数据 |
| 地址栏及杂项(Miscellanous) | 包含地址栏等杂项内容 | |
| 抓包选项设置 | 每个包的大小 | 设置位置为菜单栏:Capture->Options |
5、web压力测试工具
ab -c 100 -n 2000 http://192.168.1.254/
6、路由追踪命令
traceroute 目标地址或域名
附录:
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)
-
定义:带宽利用率是指实际使用的带宽与可用带宽的比例。
-
应用场景:用于评估网络的负载情况,帮助优化带宽分配。
这些指标共同构成了网络通信性能的全面评估体系,帮助网络工程师优化网络配置,提升用户体验。
稍后更新更精彩!敬请期待!
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)