1.
确认资源与合规性
步骤1:登录提供商后台,查看出口带宽(上行/下行)与流量上限。
步骤2:阅读服务条款,确认是否允许P2P、流媒体等高带宽行为。
步骤3:记录实例公网网卡名称(如eth0或ens3),后续配置将用到。
2.
初步性能与带宽测试
步骤1:用 speedtest-cli 或 iperf3 测试带宽:apt install -y speedtest-cli 或 iperf3;运行 speedtest-cli。
步骤2:用 curl 下载大文件或 wget 多线程测试实际吞吐,记录稳定值作为上限依据。
步骤3:注意峰值与平均值差异,用 vnstat 持续记录:apt install -y vnstat && vnstat -u -i eth0。
3.
安装基本监控工具
步骤1:安装 iftop、nload、bmon 实时查看流量:apt install -y iftop nload bmon。
步骤2:安装 vnstat 并启用 systemd:systemctl enable --now vnstat。
步骤3:若需可视化,安装 node_exporter + Prometheus 或简单的 monit 邮件告警。
4.
使用 tc 做整体带宽限速(示例)
步骤1:限制整个出口到 10mbit:tc qdisc add dev eth0 root handle 1: htb default 30
步骤2:创建根类与子类:tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit
步骤3:持久化:把上述命令写入 /etc/rc.local 或 systemd 服务脚本,确保重启生效。
5.
按服务/端口限速(iptables + tc)
步骤1:用 iptables 标记流量再用 tc 过滤:iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 10
步骤2:在 tc 中按 mark 限速:tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10
步骤3:为不同服务设定不同 class,确保关键业务保留带宽。
6.
按来源 IP 限制并防刷(iptables hashlimit/connlimit)
步骤1:限制每 IP 每分钟请求数:iptables -I INPUT -p tcp --dport 80 -m hashlimit --hashlimit 200/min --hashlimit-mode srcip --hashlimit-name http_rate -j ACCEPT;后续加 DROP 规则。
步骤2:限制并发连接:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j REJECT。
步骤3:配合 fail2ban 对可疑多连接 IP 自动封禁。
7.
Web 服务器层限速(NGINX 示例)
步骤1:在 nginx.conf 中定义:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
步骤2:在 location 中启用:limit_req zone=one burst=20 nodelay;
步骤3:还可用 limit_conn_zone $binary_remote_addr zone=addr:10m 与 limit_conn addr 5 控制并发。
8.
应用层优化与 CDN
步骤1:启用 gzip/ brotli 压缩、静态资源缓存头,减少带宽占用。
步骤2:将大文件交由 CDN 或对象存储(如 S3 兼容服务)承载,VPS 只做计算层。
步骤3:使用图片懒加载、WebP、合并小文件等前端优化降低请求量。
9.
自动化监控与告警
步骤1:用 vnstat + cron 每小时写入并超阈值触发邮件。示例脚本:vnstat --onelin && if [ $(vnstat --oneline | cut -d\; -f10 | tr -d ' ') -gt 8000 ]; then mail -s "流量告警" admin@you.com; fi。
步骤2:推荐使用 Prometheus + Alertmanager 做细粒度阈值告警并接 Slack/邮件。
步骤3:设置每日报告与每月流量预算提醒。
10.
防止滥用与长期策略
步骤1:禁止常见 P2P 端口或深度包检测(视供应商允许情况)。
步骤2:为重要服务设置优先级(tc 的优先队列)。
步骤3:定期审计日志,调整阈值,若流量长期高于配额考虑升级或转 CDN。
11.
运维自动化脚本示例
步骤1:把常用 tc/iptables 命令写入 /usr/local/bin/vps-bandwidth-setup.sh 并 chmod +x。
步骤2:创建 systemd 服务让脚本在网络就绪后运行(After=network-online.target)。
步骤3:每天 cron 运行检测带宽并备份 vnstat 数据及配置。
12.
常见问题与合规提醒
步骤1:尊重免费资源提供商的限额与政策,避免被封禁。
步骤2:若需短期突发大带宽,联系供应商申请临时提升。
步骤3:记录所有变更并保留回滚脚本。
13.
问:如何快速确认欧洲 VPS 的真实带宽与流量上限?
答:用 iperf3 与 speedtest-cli 多次在不同时间段测试上行/下行;同时查看供应商控制面板的配额与 vnstat 历史记录,结合下载大文件的实际吞吐作对比,若两者差异大优先以长周期平均值为准。
14.
问:简要如何在重启后保持 tc 与 iptables 限速规则持久?
答:将命令写入可执行脚本(/usr/local/bin/),并创建 systemd 服务文件(After=network-online.target)使其在网络就绪时执行;同时保存 iptables 规则(iptables-save >/etc/iptables.rules)并在服务启动中恢复。
15.
问:在免费 VPS 上遇到异常高流量时第一反应是什么?
答:立即启用紧急限速策略(tc 将总速降至安全值、iptables 阻断异常 IP),开启实时监控(iftop),备份日志并通知供应商;随后分析请求来源并用 fail2ban/hashlimit 做中长期防护。
来源:申请欧洲vps主机免费资源后的流量和带宽管控建议