iPerf 连不上服务器:客户端报 Connection refused
先区分两种错误
iPerf 客户端报错基本分两类:
- Connection refused:TCP 连接建立了但服务器进程没在监听这个端口——目标主机可达,但服务没开。
- Connection timed out:TCP 连接尝试超时——根本到不了目标主机。
两类错误的排查方向完全不同。
场景一:Connection refused
含义 1:服务器上根本没跑 iPerf Server
最常见的新手错误。iPerf 是客户端-服务器模型,两端都要有进程。你用 PingTools 客户端去连,但目标机器没开 iPerf Server——TCP 三次握手成功后服务器内核回复 RST(端口没开),客户端就收到 Connection refused。
解决:在目标机器上启动 iPerf3 Server:
iperf3 -s
或者目标也是 PingTools 的话,切到 Server 标签页点 START。
含义 2:服务器开了 iPerf 但用的不是 5201 端口
iPerf3 默认端口 5201。如果服务器改成了别的端口,客户端没同步改——就会 Connection refused。
解决:PingTools 客户端的 Port 字段填服务器实际监听的端口。
含义 3:多实例冲突
同一台服务器上开了两个 iPerf3 Server——前一个占了 5201,第二个启动失败。客户端连的时候碰巧连到第一个已经关闭的端口。
解决:服务器上只开一个 iPerf3 Server 实例。
场景二:Connection timed out
原因 1:防火墙 / 安全组拦了 5201 端口
服务器的防火墙(iptables / ufw / 云安全组)没放行 5201 端口的入站 TCP。
验证:在客户端用 PingTools 的 TCP Ping 对目标的 5201 端口试一下——如果也超时,确认是网络层问题。
解决:在服务器 / 云安全组 / 路由器上放通 TCP 5201 入站。
原因 2:服务器在内网
iPerf Server 跑在家里 NAS 上,没有公网 IP 也没有端口转发。公网客户端(手机在外面用蜂窝网)当然连不上。
解决:
- 同一局域网内测:手机连同一个 Wi-Fi,客户端用内网 IP。
- 公网测:路由器做端口转发(5201 外部 → 5201 内部)+ iPerf Server 监听 0.0.0.0。
原因 3:iPerf Server 只监听了 IPv6 或回环地址
某些版本的 iPerf3 默认只监听 IPv6(::5201)或只监听回环(127.0.0.1)——外部 IPv4 连不上。
解决:服务器启动时指定监听所有 IPv4 地址:
iperf3 -s -D # 默认监听 0.0.0.0:5201
如果之前指定 -B 127.0.0.1,改成 -B 0.0.0.0。
和 Ping / Traceroute 结合
如果 iPerf 超时但 Ping 通(ICMP 可达):
- 可能是防火墙只放了 ICMP 没放 TCP 5201。
- 也可能是服务器只监听了 IPv6 / 回环。
如果 iPerf 超时且 Ping 也不通:
- 肯定是网络层问题——目标主机不可达、运营商封锁、NAT 没转发。