带宽跑满这事,未必是坏事,也未必是攻击。关键是你得知道怎么判断、怎么定位、怎么处理。先说说为什么会跑满。最常见的其实是“好事”——业务突然火了。日本服务器经常被用来做游戏加速、视频分发、跨境电商,赶上促销活动、版本更新、热门内容发布,流量瞬间就上去了。这种流量有个特点:请求路径集中、来源相对固定、访问行为正常,你翻翻访问日志,能看到实实在在的页面请求和下载记录。
还有一种情况是“假跑满”——网络质量问题导致的。日本服务器面向多地区服务,某条国际链路一旦波动,TCP重传会明显增加,监控上看就是带宽突然飙高,实际上很多是重复数据,不是真流量。特别是晚高峰,跨境链路拥堵,这种“虚胖”现象很常见。
当然,也不能排除真被攻击了。UDP Flood、反射放大攻击,确实能在短时间内用无效数据包把你的出口堵死。这种时候的特征也很明显:新连接大量失败、正常用户几乎连不上、系统负载跟访问量完全不成正比。
那问题来了:怎么快速判断到底是哪种情况?
第一步,先看流量来源。用iftop看一眼实时带宽占用:
iftop -i eth0
这工具能直接显示当前跟哪些IP在通信、占了多少带宽。如果来源IP很分散、遍布全球各地,而且你根本想不起来有什么业务面向这些地区,那就要警惕了。
第二步,看连接状态。用ss统计一下各种TCP状态的连接数:
ss -ant | awk '{print $1}' | sort | uniq -c
如果SYN_RECV状态的连接数异常高,可能是SYN Flood攻击;如果TIME_WAIT多得离谱,可能是连接数爆了,但未必是攻击。
第三步,抓包看内容。如果还不放心,tcpdump直接抓流量分析:
tcpdump -i eth0 -nn 'tcp[tcpflags] & (tcp-syn) != 0' -c 1000
这命令抓1000个SYN包,看看源IP是不是假的、是不是在扫端口。正常业务的请求,包的负载是有意义的;攻击流量往往是大量空包或固定模式。
确定了是正常流量还是攻击之后,就该动手处理了。
如果是正常业务流量激增,恭喜你,这是“幸福的烦恼”。但幸福归幸福,带宽确实被占满了,用户访问开始卡了怎么办?
短期方案是做限速和流量整形。用Linux的tc命令,给不同业务分配不同的带宽保障:
tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:1 htb rate 80mbit ceil 100mbit
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.0/24 flowid 1:10
这配置的意思是:给某个IP段保障80M带宽,最高能用到100M。这样就算总带宽跑满,核心业务也不会被挤死。
长期方案是优化架构。静态资源扔CDN,图片、脚本、样式全走边缘节点,源站只处理动态请求。日本节点配合Cloudflare这类服务,能把回源带宽降下来不少。要是预算允许,直接升级带宽套餐或者换成95计费模式,对电商这种“平时平稳+大促爆发”的业务反而更划算。
如果是攻击,那处理思路就不一样了。
最简单的,先把可疑IP临时封掉:
iptables -A INPUT -s 可疑IP -j DROP
如果攻击来源太分散,封不过来,可以启用SYN Cookie防护:
sysctl -w net.ipv4.tcp_syncookies=1
这能缓解SYN Flood类型的攻击。
更进一步的,用iptables的limit模块做速率限制:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
这意思是每分钟最多接受25个新连接,瞬间爆发不超过100个,超出的直接丢。虽然会误伤正常用户,但总比整个服务挂掉强。
如果攻击流量太大,自己扛不住了,就得靠上游了。大部分云服务商都提供DDoS清洗服务,紧急情况下可以联系他们开启黑洞或牵引。平时也可以搭配Cloudflare这类边缘防护,把大流量挡在源站外面。
最后说点预防的事。
与其等带宽跑满了再手忙脚乱,不如提前把监控做好。用Prometheus加node_exporter,把网卡流量实时盯起来,设置合理的告警阈值。比如连续5分钟出向带宽超过80%就告警,这样你白天就能收到通知,不用半夜被震醒。
vnStat这种轻量级工具也建议装一个,它默默在后台存历史数据,哪天需要回溯流量走势时,翻出来一看就明白:
vnstat -d # 看过去30天每日流量
有了历史基线,你才能知道“今天这流量到底是真异常,还是每个月这天都这样”。
日本轻量云服务器这块,线路质量也很关键。如果用户主要在国内,尽量选带CN2 GIA或AS9929优化线路的产品,晚高峰能稳很多。说到底,带宽跑满这事,慌没用,得会看、会拆、会挡。搞清楚是喜事还是坏事,对症下药,你的服务器就能稳稳地扛过去。
CN
EN