一、前置环境与接口说明
1.1 网络接口定义
- WAN口(外网):接口名称
end0
,连接光猫或上级路由,采用DHCP自动获取IP
- LAN口(内网):接口名称
end1
,配置静态IP 10.1.1.1/24
,提供DHCP服务
- LAN网段:
10.1.1.0/24
(子网掩码255.255.255.0)
1.2 系统环境
- CPU核心数:4核
- 网络管理工具:NetworkManager
- 目标性能:突破单核瓶颈限制,提升网络转发能力
- 操作系统:armbian(系统安装方法参考官网:前往官网)
二、LAN口静态IP配置
通过nmcli工具配置end1接口为内网网关,固定IP地址10.1.1.1/24。
2.1 创建静态连接配置
# 创建名为"LAN_Static"的以太网连接,绑定end1接口
sudo nmcli connection add type ethernet ifname end1 con-name "LAN_Static" \
ipv4.method manual ipv4.addresses 10.1.1.1/24
# 激活该连接
sudo nmcli connection up LAN_Static
2.2 配置验证
执行以下命令确认IP分配结果:
ip a show end1
预期输出应包含inet 10.1.1.1/24
字样
三、DHCP/DNS服务部署(dnsmasq)
采用dnsmasq实现DHCP地址分配与DNS缓存转发功能,需先解决端口冲突问题。
3.1 系统端口冲突处理
NetworkManager环境下,systemd-resolved默认占用53端口导致服务冲突:
# 停止并禁用systemd-resolved服务
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
# 重建DNS解析配置文件
sudo rm /etc/resolv.conf
echo "nameserver 119.29.29.29" | sudo tee /etc/resolv.conf
echo "nameserver 223.5.5.5" | sudo tee -a /etc/resolv.conf
3.2 dnsmasq安装与配置
# 安装软件包
sudo apt update && sudo apt install dnsmasq -y
# 备份默认配置
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
编辑配置文件sudo nano /etc/dnsmasq.conf
,替换为以下内容:
# 仅监听内网接口
interface=end1
# DHCP地址池配置(100-200范围,租约12小时)
dhcp-range=10.1.1.100,10.1.1.200,12h
# 配置网关与DNS服务器地址
dhcp-option=3,10.1.1.1 # 网关地址
dhcp-option=6,10.1.1.1 # DNS服务器地址
# 上游DNS配置
server=119.29.29.29 # 腾讯DNS
server=223.5.5.5 # 阿里DNS
# 性能优化参数
cache-size=10000 # DNS缓存大小
all-servers # 启用多服务器并行查询
重启服务使配置生效:
sudo systemctl restart dnsmasq
四、NAT路由与IP转发配置
4.1 启用内核IP转发
# 临时生效配置
sudo sysctl -w net.ipv4.ip_forward=1
# 永久生效配置
sudo sed -i '/net.ipv4.ip_forward/s/^#//g' /etc/sysctl.conf
sudo sysctl -p
4.2 iptables规则配置
# 设置转发规则
sudo iptables -A FORWARD -i end1 -o end0 -j ACCEPT
sudo iptables -A FORWARD -i end0 -o end1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# 配置NAT伪装
sudo iptables -t nat -A POSTROUTING -o end0 -j MASQUERADE
# 安装规则持久化工具
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
五、网络性能优化方案
5.1 RPS配置解决单核瓶颈
通过接收数据包转向(RPS)技术分散CPU负载:
- 2核CPU:掩码
3
(二进制11
)
- 4核CPU:掩码
f
(二进制1111
)
- 8核CPU:掩码
ff
(二进制11111111
)
5.2 系统服务化配置
创建优化脚本/etc/network-optimizations.sh
:
#!/bin/bash
# 网络性能优化脚本(RPS/GRO配置)
CPU_MASK="f"
# 配置RPS(接收数据包负载均衡)
echo $CPU_MASK > /sys/class/net/end0/queues/rx-0/rps_cpus
echo $CPU_MASK > /sys/class/net/end1/queues/rx-0/rps_cpus
# 启用GRO(通用接收卸载)
/sbin/ethtool -K end0 gro on
/sbin/ethtool -K end1 gro on
创建systemd服务单元sudo nano /etc/systemd/system/network-optimizations.service
:
[Unit]
Description=Network Performance Optimizations (RPS/GRO)
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/etc/network-optimizations.sh
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo chmod +x /etc/network-optimizations.sh
sudo systemctl daemon-reload
sudo systemctl enable --now network-optimizations.service
六、TCP网络栈优化
启用BBR拥塞控制算法提升传输效率:
# 临时配置
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
# 永久生效
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
验证BBR是否加载:sysctl net.ipv4.tcp_congestion_control
应返回bbr
本地千兆网络测试 
代理后网速测试效果