家里WiFi时快时慢,公司内网传文件卡成PPT,远程会议声音断断续续——别急着换路由器或升级宽带,先试试几个终端里就能敲的命令。它们不花一分钱,却可能让延迟降一半、丢包归零、吞吐翻倍。
查清问题在哪,比盲目优化更重要
很多人一卡就重启光猫,其实第一步该用 ping 和 mtr 看路径。比如发现视频会议总卡在某个中间节点,那问题大概率不在你家,而在运营商某段链路上。
ping -c 5 www.baidu.com看返回的 time 值是否忽高忽低、有没有 timeout。再用 mtr(Linux/macOS 默认没装,可 sudo apt install mtr 或 brew install mtr)盯住整条路:
mtr -r -c 10 www.taobao.com输出里重点关注 Loss% 和 Last 列,哪一跳开始丢包、延迟飙升,问题就在那一段。
临时提升响应速度:调整 TCP 参数
默认的 Linux TCP 缓冲区对千兆宽带其实偏小。如果下载大文件总跑不满带宽,试试临时调大接收窗口:
sudo sysctl -w net.ipv4.tcp_rmem="4096 65536 8388608"三个数字分别是最小、默认、最大接收缓冲区(单位字节)。最后那个 8MB 是给千兆网留的余量,普通百兆可设为 4194304(4MB)。改完不用重启,立刻生效。
绕过拥堵路由:用 ip route 指定出口
家里双宽带(比如电信+移动),默认只走一条。想让游戏走低延迟的线路、下载走高带宽的线路,可以用策略路由。先查清楚各网卡名:
ip link show | grep ': ' | awk -F': ' '{print $2}'假设电信是 eth0,移动是 eth1,想让微信视频固定走 eth0,可以加一条规则:
sudo ip rule add to 119.29.29.29/32 table 100
sudo ip route add default via 192.168.1.1 dev eth0 table 100(119.29.29.29 是 DNSPod 的公共 DNS,常用于测试;192.168.1.1 是你电信网关地址)
排查本地瓶颈:ss 比 netstat 更快更准
怀疑是本机程序占满连接数?netstat 已淘汰,ss 是新标准:
ss -tuln | head -15快速列出所有监听端口和连接状态。-t 是 TCP,-u 是 UDP,-l 是监听中,-n 不反向解析 IP。加个 -i 还能看到重传、RTT 等细节:
ss -ti src :80专门查本机发往 80 端口的连接,看 RTO(重传超时)是否异常升高——升高说明链路不稳定,不是程序写得烂。
无线环境差?用 iwconfig 看真实信号质量
WiFi 图标显示满格,但实际速率只有 72Mbps?可能是干扰太强。连上无线后运行:
iwconfig wlan0 | grep -E "Rate|Signal|Freq"重点看 Signal level(一般 -30dBm 是极佳,-70dBm 以下就容易卡),还有 Bit Rate 是否远低于协议理论值(比如 802.11ac 标称 867Mbps,结果只跑出 65Mbps,大概率信道被隔壁老王的路由器占满了)。