编程笔记

lifelong learning & practice makes perfect

test network iperf3 and ssh

通过iperf,iperf3测试网络

iperf用法

tldr工具获取的iperf用法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
iperf

Measure network bandwidth between computers.
More information: https://iperf.fr.
- Run on server:
iperf -s

- Run on server using UDP mode and set server port to listen on 5001:
iperf -u -s -p 5001

- Run on client:
iperf -c server_address

- Run on client every 2 seconds:
iperf -c server_address -i 2

- Run on client with 5 parallel threads:
iperf -c server_address -P 5

- Run on client using UDP mode:
iperf -u -c server_address -p 5001

分别启动server和client进行测试,如:

1
2
iperf -s -p 9988 -f M
iperf -c 111.111.111.111 -p 9988 -t 300 -d -f M -i 2

参数说明

  1. -f 格式/单位:Kbits, Mbits, KBytes, MBytes
  2. -i
  3. -p
  4. -P
  5. -u
  6. -c
  7. -s

在阿里云服务器上遇到的问题

  1. 问题
    阿里云服务器上仅开放了80和443,及ssh端口,其他端口未开放,不能使用其他端口进行测试,也无权限开放新的端口用
    于测试,服务上提供api接口的服务也都是通过nginx反向代理实现.
  2. 测试代码
1
2
3
4
5
6
7
8
9
address, err := net.ResolveTCPAddr("tcp", "http://server_address:18090")
if err != nil {
fmt.Println(err)
}
conn, err := net.DialTCP("tcp4", nil, address)
if err != nil {
fmt.Println(err)
}
conn.Write([]byte("test connect"))

无法建立tcp连接,timeout

解决

服务器上无可用端口用于测试,仅开放的80,443等端口已被网页服务服务占用,可以通过ssh端口转发到一个未暴露的端口,在该端口启动iperf的服务端进行测试.

1
2
3
4
ssh -L local_port:localhost:server_port_for_iperf -N -T user@server_address -p   server_ssh_port
如:
ssh -L 9999:localhost:8888 -N -T user_test@111.111.111.111 -p 22
将发送到本地端口9999的请求数据转发到111.111.111.111转发到8888端口

在服务器上启动iperf server

1
2
3
4
iperf -s -p port -f M

iperf -s -p 8888
使用TCP方式,在8888端口启动服务端,监听

结果

数据

1
2
3
4
5
6
7
8
9
10
11
12
[ ID] Interval       Transfer     Bandwidth
[ 13] 0.0-44.1 sec 30.5 MBytes 0.69 MBytes/sec
[ 7] 0.0-44.2 sec 30.6 MBytes 0.69 MBytes/sec
[ 9] 0.0-44.2 sec 30.6 MBytes 0.69 MBytes/sec
[ 11] 0.0-44.2 sec 30.6 MBytes 0.69 MBytes/sec
[ 15] 0.0-44.2 sec 30.6 MBytes 0.69 MBytes/sec
[ 21] 0.0-44.9 sec 31.6 MBytes 0.70 MBytes/sec
[ 17] 0.0-45.1 sec 31.9 MBytes 0.71 MBytes/sec
[ 4] 0.0-45.2 sec 32.5 MBytes 0.72 MBytes/sec
[ 18] 0.0-45.2 sec 32.1 MBytes 0.71 MBytes/sec
[ 5] 0.0-45.2 sec 32.5 MBytes 0.72 MBytes/sec
[SUM] 0.0-45.2 sec 314 MBytes 6.94 MBytes/sec

分析

参考

  1. ssh端口转发: 玩转SSH端口转发 https://zhuanlan.zhihu.com/p/26547381
  2. nginx反向代理:

3.

欢迎关注我的其它发布渠道