【发布时间】:2012-04-21 08:44:01
【问题描述】:
有没有办法强制 iperf 客户端使用特定端口号作为其传出端口,而不是让 iperf 选择要使用的随机端口?
【问题讨论】:
有没有办法强制 iperf 客户端使用特定端口号作为其传出端口,而不是让 iperf 选择要使用的随机端口?
【问题讨论】:
iperf 3 用户文档 https://iperf.fr/iperf-doc.php 显示您可以使用 --cport <port> 和 -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
【讨论】:
--cport 是 IPERF3 中指定客户端端口的选项,而 -p 或 --port 指定服务器端端口。更多信息见link。
实际上,这些答案都不正确:它们指定了目标端口,而不是客户端端口。似乎客户端端口是随机的(但在一次运行中是一致的),没有办法指定它
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
要在 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 选项表示端口号。
【讨论】: