服务器流量转发实现方案

三月 07, 2026 / Kaelen / 32阅读 / 0评论

本方案记录了如何通过中继机 (1.1.1.1) 将流量转发至目标机 (2.2.2.2),并解决高延迟、高丢包导致的速度瓶颈。

1. 基础环境

  • 中继机 (Relay): 1.1.1.1 (Ubuntu 22.04)
  • 目标机 (Target): 2.2.2.2 (443 端口)
  • 转发端口: 443

2. 第一步:内核级加速 (BBR)

在高延迟环境下,必须开启 BBR 算法,否则 TCP 会因为感应到延迟而自动限速。

# 修改内核参数
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

# 针对 153ms 延迟的 TCP 窗口优化
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.ip_forward = 1
EOF

# 立即生效
sysctl -p

3. 第二步:部署 Realm (Rust 转发)

Realm 比 Gost 更轻量,处理 TCP/UDP 效率更高。

配置文件 /etc/realm/config.toml

[[endpoints]]
listen = "0.0.0.0:443"
remote = "2.2.2.2:443"

服务持久化 /etc/systemd/system/realm.service

[Unit]
Description=Realm Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/realm -c /etc/realm/config.toml
Restart=always
RestartSec=5
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

启动命令: systemctl enable --now realm


4. 第三步:MSS 钳制与伪装 (iptables)

这是解决“能连上但没速度”的关键。将 MSS 限制在 1300,防止大包被运营商丢弃。

# 1. 设置 MSS 钳制
iptables -t mangle -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1300

# 2. 设置通用地址伪装 (MASQUERADE)
iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp -j MASQUERADE

# 3. 永久保存规则
apt install iptables-persistent -y
netfilter-persistent save

5. 验证与监控

  • 连通性测试: nc -zv 1.1.1.1 443
  • 实时流量监控: apt install nload -y && nload eth0

6. 经验总结

  1. 端口选择: 优先使用 443,不要使用 30000 以上的高位端口,容易被运营商 QOS。
  2. MTU 问题: 如果速度依然不稳定,尝试将客户端 (Clash/v2rayN) 的 MTU 设置为 1200。
  3. 协议配合: VLESS+Reality 在 443 端口下的伪装度最高,配合中继转发几乎无解。

文章作者:Kaelen

文章链接:https://kaelen.top/archives/wei-ming-ming-wen-zhang-hAppWcZM

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论