我有一个充当“奇怪的” TLS 代理的特定设备,我想使用 IPerf3 测量它的吞吐量。
被测设备是“Peter”。它有一个 API 可以触发与两个 TLS 服务器的连接。它会将负载从一个通道代理到另一个通道。
我可以在“Alice”上运行 IPerf,并在它之前将 socat 作为 TLS 代理。在“Bob”上运行 TLS 服务器到 TCP 服务器(最奇怪的部分),但它失败并显示“iperf3:错误 - 无法连接流:连接被拒绝”。如果我在两端使用 netcat 而不是 iperf,一切都会按预期工作。
我尝试测试没有“Peter”的设置,以便直接从 Alice 连接到 Bob,但也没有成功。有什么想法吗?
这里没有彼得:
iperf3 -s -p 15001 --verbose -d
socat -v -v -d -d -b 131072 -g openssl-listen:8443,reuseaddr,fork,cert=server.crt,key=server.key,verify=0,ignoreeof tcp-listen:16000,reuseaddr,ignoreeof
socat -v -v -d -d -b 131072 -g tcp4:127.0.0.1:15001,ignoreeof openssl-connect:127.0.0.1:8443,cert=server.crt,key=server.key,verify=0,cafile=server.crt,ignoreeof
iperf3 -c 127.0.0.1 -4 -p 16000 --verbose -t 5 --forceflush -d -Z
设置:
Alice Peter Bob
IPerf ┌──────────┐ TLS TLS ┌────────────┐ TLS TLS ┌───────────┐ IPerf
Server │ │ Server 2 Client │ │ Client 3 Server│ │ Client
│ ├────────────────────────┤ ├──────────────────────┤ │
│ │ │ │ │ │
└──────────┘ └────────────┘ └───────────┘
socat ▲ socat
tcp <> tls-server │ tls-server tcp-server
│
│
│
1 │
│
│
│
│
Command to connect
Alice and Bob via 2 TLS channels
没有彼得:
Alice Bob
IPerf ┌──────────┐ TLS TLS ┌───────────┐ IPerf
Server │ │ Client Server│ │ Client
│ ├────────────────────────┤ │
│ │ │ │
└──────────┘ └───────────┘
socat socat
tcp <> tls-client tls-server tcp-server
答案1
我认为你不能这样做。iPerf 在服务器模式下运行,而在客户端模式下运行。因为它使用自己的守护进程和进程,所以它不能绑定到另一个守护进程或进程。
您只能测量整个服务器的网络吞吐量