1. 节点分布调研与选点原则
在菲律宾部署原生IP节点前,先做调研:列出目标城市(常见:Manila、Cebu、Davao、Clark、Iloilo)和主要ISP(PLDT、Globe、Converge、DITO)。原则:选择人口密集且国际出口带宽充足的城市;优先考虑多ISP互联点、有海缆登岛或附近CDN PoP的机房;衡量成本与上行吞吐。把候选节点写成表格记录:机房名、ISP、公网带宽、公网出口IP段、邻近海缆/PoP、价格。
2. 基础连通性与延迟初测
上机后先做基础测试:使用 ping、traceroute、mtr。示例命令:ping -c 20 8.8.8.8;traceroute -w 2 -q 1 target_ip;mtr --report --report-cycles 50 target_ip。记录平均RTT、丢包率和跳数异常点。对比多个节点,看到与目标用户(比如中国或东南亚)之间的平均延迟与不稳定跳点,优先保留RTT低且丢包少的节点。
3. 带宽与吞吐测试(iperf3 实战)
用 iperf3 做TCP和UDP吞吐测试,检验真实带宽。服务器端:iperf3 -s;客户端:iperf3 -c server_ip -P 8 -t 60(并发流8,持续60秒)。记录TCP吞吐峰值、重传、丢包。UDP:iperf3 -c server_ip -u -b 100M -t 30,观察丢包率。若吞吐低,检查MTU、链路质量或ISP限速。
4. MTU/MSS 调整与分片优化
MTU不匹配会导致延迟增加与重传。测试方法:ping -M do -s 1472 target(1472+28=1500 MTU)。逐步降低测试最大不分片的尺寸,确定路径MTU。对VPN(OpenVPN、WireGuard)设置合适的MTU,例如WireGuard常设1420或根据上一步结果设置,若有MSS问题,在网关用iptables做MSS clamping:iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu。
5. 协议与隧道方案选择(WireGuard vs OpenVPN)
优先使用WireGuard(UDP、低延迟、单包高效)作为主隧道;在需要穿透或兼容时备用OpenVPN。WireGuard示例部署:安装后建立peer、配置AllowedIPs和PersistentKeepalive。调优:在服务器端启用多核处理、调整sysctl tcp_congestion_control(可尝试bbr)与net.core.rmem_max、wmem_max等缓冲区。
6. TCP 拥塞控制与内核参数调优
在Linux服务器上启用BBR或调整内核参数:sysctl -w net.ipv4.tcp_congestion_control=bbr(确认lsmod | grep bbr)。调整缓冲区:net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem="4096 87380 16777216" net.ipv4.tcp_wmem="4096 65536 16777216"。这些能在高带宽-高延迟链路上提升吞吐并稳定延迟。
7. 策略路由、分流与负载均衡实操
使用策略路由(ip rule/ip route)或OpenWrt的mwan3做按源/目的IP分流,针对不同地区或服务走不同节点。示例:ip route add default via GW1 table 100;ip rule add from 10.0.0.0/24 table 100。用keepalive脚本+ip route替换实现故障切换,或用HAProxy/LVS做多个出口的会话保持与负载均衡。
8. 自动化监测与故障切换脚本
建立自动化监控:用Prometheus+node_exporter或简单的shell脚本定期ping/mtr关键IP并写入监控。故障切换脚本(伪代码):若主节点连续3次ping超时或mtr丢包>5%,触发wg set peer endpoint替换或修改ip route切换到备用节点,并在切换后通知(邮件/Webhook)。定期轮询并回退至低延迟节点。
9. DNS、CDN 与加速策略
将DNS解析靠近用户,使用DoH/DoT或本地解析节点降低首包延迟。对静态资源走CDN(Anycast)以减少跨海延迟;对延迟敏感的实时流量优先走直连或最短RTT的隧道。可在客户端实现分应用分流(split-tunnel),避免不必要的全流量经远端跳转。
10. 实例:从建点到上线的操作步骤(逐条)
步骤示例:1)选机房并购买公网/带宽;2)上机安装Debian/Ubuntu + WireGuard;3)运行基本连通性测试(ping/mtr/iperf3);4)调MTU/MSS并测试;5)设置sysctl内核参数并启用BBR;6)配置策略路由与分流规则;7)部署监控与自动切换脚本;8)上线监测1周并逐步扩容。每步都存日志与测试结果以便回溯。
11. 常见问题与排查顺序
若出现高延迟或丢包,排查顺序:1)本地MTU/网络接口错误;2)ISP侧丢包或限速(通过跨ISP对比确认);3)机房出口拥塞或海缆问题(traceroute观察);4)隧道协议导致的头部/分片问题;5)服务器CPU或IO瓶颈。每一步均用mtr/iperf/top/iostat定位。
12. Q1:如何判断菲律宾哪个城市节点对国内用户延迟最低?
答:用mtr或连续ping目标国内出口IP,从多个菲律宾候选节点分别测试到目标用户IP或出口,比较平均RTT、丢包与抖动。通常Manila(靠近海缆与国际出口)对东亚延迟优于南部城市,但实际以测试数据为准。
13. Q2:WireGuard部署后仍有高延迟怎么办?
答:先确认MTU/MSS与分片问题(ping -M do),检查服务器CPU占用与网络队列(tc qdisc),启用BBR并调高TCP缓冲区,若链路本身不佳考虑更换ISP或增加中转点,必要时采用多节点负载分流。
14. Q3:如何实现平滑故障切换且不丢会话?
答:实现无缝切换需在应用层或使用有状态代理:1)对短会话可用快速路由切换并接受短断;2)对长会话推荐使用反向代理(如HAProxy)+会话复制,或在客户端使用每秒心跳检测并在多节点间做连接迁移逻辑;另可用Anycast/Any-IP结合GR (BGP) 在骨干层面做无缝切换(需更高运维能力)。
来源:菲律宾原生ip机场节点分布与延迟优化实战经验总结