Linux网络工具
Table of Contents
wpa_supplicant
简介
wpa_supplicant是一个发送WPA请求的工具,WPA是Wi-Fi Protected Access的简称。用于在Linux、MAC、Windows上支持WPA和WPA2(IEEE 802.11i / RSN)。不论是在桌面应用还是嵌入式设备都是一个实用的工具。该工具设计为一个daemon程序,支持两个前端,wpa_cli是文本界面,wpa_gui是图形界面。
基本用法
首先需要写一个配置文件,一般就叫wpa_supplicant.conf
。如果有密码,就需要指定psk,psk的计算可以通过如下命令来生成。
wpa_passphrase YOUR-SSID YOUR-PASSWORD
执行上面的命令就会输出下面的结果。
network={ ssid="YOUR-SSID" #psk="YOUR-PASSWORD" psk=e1a0872bd7f7cfd7efa1cbc7d7aec742c58f3ae24e4757d98eae8bf7b53254de }
通常配置还包括许多其它信息,如下所示。
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel update_config=1 network={ ssid="YOUR-SSID" #psk="YOUR-PASSWORD" psk=e1a0872bd7f7cfd7efa1cbc7d7aec742c58f3ae24e4757d98eae8bf7b53254de }
- ctrl_interface
- 要使用wpa_cli就必须设置
ctrl_interface
, GROUP用于指定哪些组的用户可以执行wpa_cli命令。 - update_config=1
- 表示wpa_cli中做的更改可以保存下来。
写好配置文件之后,用如下命令启动。
wpa_supplicant -d -D wext -i wlan0 -c wpa_supplicant.conf &
- -B
- 后台执行
- -d
- 调试信息
- -i INTERFACE
- 指定网络接口,如wlan0、wlan1等等
- -c CONF
- 配置文件名
- -D DRIVER
- 驱动名,如
nl80211
是标准,但是支持不广,而wext
已经不建议使用,但是支持广泛。
wpa_cli
在wpa_cli交户界面下可以执行的命令如下所示。
简写 | 全写 | 含义 |
---|---|---|
stat | status | 连接状态 |
disc | disconnect | |
q | quit | |
term | terminate | kill wpa_supplicant |
recon | reconfigure | 重新载入配置文件 |
scan | scan | 扫描网络 |
scan_r | scan_result | 扫描结果 |
list_n | list_networks | |
select_n | select_network | |
enable_n | enable_network | |
disable_n | disable_network | |
remove_n | remove_network | |
add_n | add_network | 添加新网络,自动返回编号 |
set_n | set_network | |
get_n | get_network | |
save_c | save_config |
1. 连接无加密AP
>add_network # It will display a network id for you, assume it returns 0 >set_network 0 ssid "666" >set_network 0 key_mgmt NONE >enable_network 0 >quit
2. 连接WEP加密AP
>add_network # assume return 1 >set_network 1 ssid "666" >set_network 1 key_mgmt NONE >set_network 1 wep_key0 "your ap password" >enable_network 1
3. 连接WPA-PSK/WPA2-PSK加密的AP
>add_network # assume return 2 >set_network 2 ssid "666" >set_network 2 psk "your pre-shared key" >enable_network 2
iperf
iperf是一个网络吞吐量测试工具,可以对TCP或UDP测试,要进行测试,需要配置服务端和客户端。
基本参数
GENERAL OPTIONS
-f, --format [kmKM] format to report: Kbits, Mbits... -i, --interval n pause n seconds between reports -l, --len n[KM] set buffer length to n (default 8 KB) -m, --print_mss print TCP maximum segment size -p, --port n set server port to n (default 5001) -u, --udp use UDP rather than TCP -w, --window n[KM] TCP window size (socket buffer size) -B, --bind <host> bind to <host> -M, --mss n set TCP maximum segment size -N, --nodelay set TCP no delay -v, --version print version information and quit -V, --IPv6Version Set the domain to IPv6
SERVER SPECIFIC OPTIONS
-s, --server run in server mode -U, --single_udp run in single threaded UDP mode -D, --daemon run the server as a daemon
CLIENT SPECIFIC OPTIONS
-b, --bandwidth n[KM] set target bandwidth to n bits/sec This setting requires UDP (-u). -c, --client <host> connecting to <host> -d, --dualtest Do a bidirectional test simultaneously -n, --num n[KM] number of bytes to transmit -r, --tradeoff Do a bidirectional test individually -t, --time n time in seconds to transmit -F, --fileinput <name> input the data to be transmitted -I, --stdin input the data to be transmitted -L, --listenport n port to receive bidirectional tests -P, --parallel n number of parallel client threads -T, --ttl n time-to-live, for multicast
其它参数
- TCP_WINDOW_SIZE
- 环境变量,用于控制TCP缓冲区大小。
基本用法
要进行网络传输测试需要两台机器,同一台机器可能并没有通过网络传输,所以速度过快。
测试TCP
启动服务端:
iperf -s -p1234
启动客户端:
# 传输30s,每2s打印一次报告 iperf -c 192.168.0.100 -p1234 -i2 -t30
测试UDP
启动服务端:
iperf -s -p1234 -u
启动客户端:
iperf -c 192.168.0.100 -p1234 -i2 -t30 -u -b1000M