1.
评估现状:先测量再优化
步骤小分段:
(1) 使用 iperf3 测试带宽:在
香港服务器执行 iperf3 -s,在测试端执行 iperf3 -c your.hk.server -P 4 -t 30,记录上行/下行峰值。
(2) 实时监控流量:安装vnStat/iftop/nload:sudo apt install vnstat iftop nload;vnstat -l 实时查看,iftop -i eth0 查看连接。
(3) 统计流量账单来源:查看运营商流向(目的地国家/端口)与高峰时段,为后续分流与限速提供依据。
2.
设置服务器全局带宽上限(出口控制)
步骤小分段:
(1) 用 tc 对出口限速(示例限速为20Mbps):sudo tc qdisc add dev eth0 root handle 1: htb default 11;sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 20mbit;sudo tc class add dev eth0 parent 1:1 classid 1:11 htb rate 20mbit;
(2) 若按IP/端口分级:用 iptables 标记流量 sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 10,然后用 tc filter 匹配 tc filter add dev eth0 parent 1: protocol ip handle 10 fw flowid 1:11。
(3) 验证:tc -s qdisc show / tc -s class show,并用 iperf3 或 curl 测试速率。
3.
按任务类型与客户分配带宽(策略流量整形)
步骤小分段:
(1) 定义策略:如 API/网页优先,备份/镜像次之,批量传输最低优先。
(2) 使用 tc+iptables 实现:为优先端口(80/443)设置较高rate,为 rsync/scp 端口设置低带宽。
(3) 示例:给80/443标记20,给rsync(默认22)标记30,然后分别用 tc class 设置不同速率。
4.
传输层优化:压缩与并发控制
步骤小分段:
(1) 启用 HTTP 压缩:在 nginx 中开启 gzip/brotli,示例 nginx.conf:gzip on; gzip_types text/plain text/css application/json application/javascript; 或安装 brotli_module。
(2) 控制并发与连接:对大文件传输使用 rsync 限速和并发控制:rsync -avz --bwlimit=2048 source user@hk:/path;或 rclone copy --transfers 4 --bwlimit 2M。
(3) 使用断点续传工具(aria2、rclone)避免重复传输,减少无谓出口流量。
5.
应用层缓存与 CDN 助力跨境
步骤小分段:
(1) 本地缓存:配置 nginx proxy_cache 或 fastcgi_cache,设置合理的 cache-control、expires 头,减轻跨境请求。
(2) 使用 CDN:将静态资源(图片、视频、js/css)放到 CDN(Cloudflare、Akamai 或本地中国大陆节点的CDN),减少香港服务器直接出站流量。
(3) 智能分流:对动态API保留直连,对静态资源使用CDN,并设置合适的缓存失效策略。
6.
路由优化与对等互联(Peering)
步骤小分段:
(1) 选择有良好国际互联的香港机房/带宽商:检查到主要访问国(如大陆、东南亚)的路由延迟与丢包率,询问是否直接对等或本地POP。
(2) 多线或多出口策略:配置多ISP并用 BGP 或基于成本的路由策略(如备份线用于非关键同步),必要时与ISP谈判流量套餐与折扣。
(3) 使用智能路由服务(如Cloudflare Argo或WARP、商用SD-WAN)进一步降低跨境成本与提升稳定性。
7.
节省国际出口费用的方法(计费角度)
步骤小分段:
(1) 压缩/减少回源:把可缓存内容交给CDN,减少香港服务器直接出口流量,直接降低按流量计费成本。
(2) 批量/错峰传输:将大文件备份/同步安排在低峰时段或使用运营商低价时段,或通过按月包流量套餐替代按量计费。
(3) 合理分流:对低优先级数据使用廉价或备份链路,对重要交付使用高质量链路。
8.
具体工具与命令清单(快速复制执行)
步骤小分段:
(1) 测试:iperf3 -c HK -P 4 -t 30;iperf3 -s(在服务器端)。
(2) 限速:sudo tc qdisc add dev eth0 root handle 1: htb default 11;sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 20mbit;sudo tc class add dev eth0 parent 1:1 classid 1:11 htb rate 5mbit;
(3) rsync 限速:rsync -avz --bwlimit=1024 /local/ user@hk:/remote/;rclone copy /local remote:bucket --transfers 4 --bwlimit 1M。
9.
监控与告警:确保策略有效
步骤小分段:
(1) 部署监控:Prometheus + Grafana 采集网卡流量、tc统计、vnstat 数据;设置阈值告警。
(2) 日志分析:分析 nginx access.log 找出高流量URL、爬虫或异常请求并限制或封禁。
(3) 周期复盘:每周对账单与流量曲线比对,调整限速与缓存策略。
10.
运维注意事项与风险控制
步骤小分段:
(1) 先在测试环境验证 tc/iptables 规则,避免误伤业务;使用 screen 或 tmux 执行远程命令以防中断。
(2) 变更记录:每次限速或路由变更写入变更单并设置回滚方案。
(3) 合规与安全:跨境传输注意数据合规性与加密,敏感数据应加密传输与存储。
11.
问:使用 tc 限速会影响到所有用户吗?如何做到精细化控制?
答:不会必须影响所有用户。通过 iptables 标记(mangle 表)结合 tc filter,可按源IP/目的IP、端口、协议或 DSCP 实现流量分类,给不同类流量分配不同 class,从而实现按客户或业务精细化限速。
12.
问:我如何在不增加CDN费用的情况下减少国际出口量?
答:优先优化压缩(gzip/brotli)、合理设置缓存头(Cache-Control、ETag)、启用本地 nginx 缓存与静态资源合并/裁剪、采用增量/差分同步工具(rsync、rclone),并使用断点续传以避免重复上传,从而在不依赖CDN的前提下减少出口数据量。
13.
问:在香港机房选择带宽与计费方式时有什么建议?
答:优先选择提供本地对等/国际骨干互联好的带宽商,尽量采用包月包流量或预付大流量套餐替代按量计费;如有稳定大流量场景可谈定制出口折扣,同时保留备份线用于低优先级传输以优化成本。
来源:香港服务器流量设置方法 跨境传输流量优化与节省国际出口费用的技巧