有没有办法强制 iperf 客户端使用特定端口号作为其传出端口,而不是让 iperf 选择要使用的随机端口?
6 回答
iperf 3 用户文档https://iperf.fr/iperf-doc.php--cport <port>
显示您可以使用and-B --bind
选项分配特定的客户端端口。查看 iperf3 用户文档以获取更多详细信息。这是使用客户端端口号 5500 的示例。
服务器在 10.0.0.2 上运行:
> iperf3 -s
客户端在 10.0.0.1 上运行:
> iperf3 -c 10.0.0.2 -B 10.0.0.1 --cport 5500
实际上,这些答案都不正确:它们指定了目标端口,而不是客户端端口。似乎客户端端口是随机的(但在一次运行中是一致的),没有办法指定它
2019 年更新:最新版本 --cport 选项指定客户端端口
-p, --port # $IPERF_PORT The server port for the server to listen on and the client to connect to. This should be the same in both client and server. Default is 5001, the same as ttcp.
-p 选项表示要在客户端或服务器中使用的端口号。然后您需要为服务器端和客户端站点设置相同的端口。
例如服务器
iperf -s -p 10000
客户
iperf -c SERVER_IP -p 10000 -t60
iperf -c <remoteip> --port <remoteport> -B <localbindip>:<localbindport>
我已经能够使用上述方法做到这一点。
这就是我在特定主机(224.25.7.0)和端口(25700)上为我解决它的方法:
sudo apt install perf
在每台机器上
在听方面(10.14.17.14):
iperf -s -u -B 224.25.7.0%eno1 -i 1 -p 25700
eno1 是接口名(可以用机器的ip地址代替)
在发送方 (10.14.17.13):
iperf -c 224.25.7.0 -u --ttl 5 -t 5 -B 10.14.17.13 -p 25700
码头工人
要在 docker 容器或 k8s pod 中进行测试,可以使用 bagoulla/iperf 映像:
sudo docker run --net=host --rm bagoulla/iperf:2.0 -s -u -B 224.25.7.0%eno1 -i 1 -p 25700
您可以将 args 替换为您需要的任何内容
尝试:服务器端-
iperf -s -i1 -fm -w512k -p1
客户端-
iperf -c <ipadr> -i1 -fm -w512k -p1
-p 选项表示端口号。