Android/Linux
以下工具列举顺序从下向上
dmesg
SYNOPSIS
dmesg [options]
OPTIONS
-F, --file <file> use the file instead of the kernel log buffer
-c, --read-clear read and clear all messages
-n, --console-level <level> set level of messages printed to console
-s, --buffer-size <size> buffer size to query the kernel ring buffer
-u, --userspace display userspace messages
-w, --follow wait for new messages
-T, --ctime show human-readable timestamp (may be inaccurate!)
# dmesg | grep DMA #查看硬盘的运行模式
# dmesg | grep eth #查看以太网的连接信息
tcpdump
tcpdump 抓取的内容来自于数据链路层,下图是通过 tcpdump 抓取到的 TCP 报文,应用层数据向下传递被每一层有加上了对应的 Header。
使用详解
tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ expression ]
-c 在收到指定的数量的分组后,tcpdump就会停止。
-i 指定监听的网络接口。
-L 列出网络接口的已知数据链路。
-t 在输出的每一行不打印时间戳。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
-y 设置tcpdump 捕获数据链路层协议类型
-Z 使tcpdump 放弃自己的超级权限(如果以root用户启动tcpdump, tcpdump将会有超级用户权限), 并把当前tcpdump的用户ID设置为user, 组ID设置为user首要所属组的ID
使用示例
序号 | 命令 | 描述 |
---|---|---|
1 | tcpdump src host 192.168.1.100 -w result.cap | 抓取源地址是192.168.1.100的包,并将结果保存到 result.cap 文件中 |
2 | tcpdump -i eth0 -vnn net 192.168.1.0/24 | 抓取包含192.168.1.0/24网段的数据包 |
3 | tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 ) | 抓取源ip是192.168.1.100且目的端口是22,或源ip是192.168.1.102且目的端口是80的数据包 |
4 | tcpdump –i eth0 -vnn -w /tmp/result -c 100 | 把抓取的数据包记录存到/tmp/result文件中,当抓取100个数据包后就退出程序 |
5 | tcpdump -i eth0 tcp -vnn -r /tmp/result | 从/tmp/result记录中读取tcp协议的数据包 |
6 | tcpdump tcp port 23 host 192.168.1.100 | 获取主机 192.168.1.100 接收或发出的 telnet 包 |
tc
Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。 接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择:
- 如果接收包的目的主机是本主机,那么将该包送给上层处理,否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。
- 转发块同时也接收本主机上层(TCP、UDP等)产生的包,通过查看路由表,决定所处理包的下一跳。
- 然后,对包进行排列以便将它们送到输出接口。
一般只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。
http://www.wy182000.com/2013/04/15/linux-tc-%E8%AF%A6%E8%A7%A3/
ip route
使用详解
Usage
ip route { list | flush } SELECTOR
ip route save SELECTOR
ip route restore
ip route showdump
ip route get [ ROUTE_GET_FLAGS ] ADDRESS# 查询指定目标地址的路由信息
[ from ADDRESS iif STRING ]
[ oif STRING ] [ tos TOS ]
[ mark NUMBER ] [ vrf NAME ]
[ uid NUMBER ]
ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
[ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
[ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
[ table TABLE_ID ] [ proto RTPROTO ]
[ scope SCOPE ] [ metric METRIC ]
[ ttl-propagate { enabled | disabled } ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]#下
[ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | ipx | dnet | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
[ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
[ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
[ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
[ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
[ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
[ pref PREF ] [ expires TIME ]
TYPE := { unicast | local | broadcast | multicast | throw |
unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]# host用于路由为本机接口,link用于目的地址为本地网络的路由项,
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]# 路由创建者,static表示系统管理员创建
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
ROUTE_GET_FLAGS := [ fibmatch ]
使用示例
序号 | 命令 | 描述 |
---|---|---|
1 | ip route add 192.168.4.0/24 via 192.168.166.1 dev wlan0 | 设置192.168.4.0/24的网关为192.168.166.1,数据走wlan0接口 |
2 | ip route add 192.168.1.9 via 192.168.166.1 table main | 在main表中增加192.168.1.9的网关为192.168.166.1 |
3 | ip route show table local | 查看本地路由表 |
4 | ip route get 169.254.0.0/16 | 获取到169.254.0.0/16的单个路由,并按照内核所看到的方式打印其内容 |
6 | ip route del default table 100 | 删除默认路由 |
7 | ip route flush 10.38.0.0/16 | 清空10.38.0.0/16路由 |
8 | ip route flush table main | 清空main表 |
- 设置192.168.4.0网段的网关为192.168.166.1,数据走wlan0接口
ip route add 192.168.4.0/24 via 192.168.166.1 dev wlan0
- 在main表中增加192.168.0.0网段的网关为192.168.166.1
ip route add 192.168.1.9 via 192.168.166.1 table main
- 查看本地路由表
ip route show table local
- 获取到目标的单个路由,并按照内核所看到的方式打印其内容
ip route get 169.254.0.0/16
- 删除192.168.4.0网段的网关
ip route del 192.168.4.0/24
- 删除默认网关
ip route del default
- 删除特定路由
ip route flush 10.38.0.0/16
- 清空路由表
ip route flush table main
iptables
使用详解
SYNOPSIS
iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)
OPTIONS
Either long or short options are allowed.
--append -A chain Append to chain
--check -C chain Check for the existence of a rule
--delete -D chain Delete matching rule from chain
--delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
--insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
--replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
--list -L [chain [rulenum]]
List the rules in a chain or all chains
--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
--flush -F [chain] Delete all rules in chain or all chains
--zero -Z [chain [rulenum]]
Zero counters in chain or all chains
--new -N chain Create a new user-defined chain
--delete-chain
-X [chain] Delete a user-defined chain
--policy -P chain target
Change policy on chain to target
--rename-chain
-E old-chain new-chain
Change chain name, (moving any references)
Options:
--ipv4 -4 Nothing (line is ignored by ip6tables-restore)
--ipv6 -6 Error (line is ignored by iptables-restore)
[!] --protocol -p proto protocol: by number or name, eg. tcp
[!] --source -s address[/mask][...]
source specification
[!] --destination -d address[/mask][...]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
--jump -j target
target for rule (may load target extension)
--goto -g chain
jump to chain with no return
--match -m match
extended match (may load extension)
--numeric -n numeric output of addresses and ports
[!] --out-interface -o output name[+]
network interface name ([+] for wildcard)
--table -t table table to manipulate (default: filter)
--verbose -v verbose mode
--wait -w [seconds] maximum wait to acquire xtables lock before give up
--wait-interval -W [usecs] wait time to try to acquire xtables lock
default is 1 second
--line-numbers print line numbers when listing
--exact -x expand numbers (display exact values)
[!] --fragment -f match second or further fragments only
--modprobe=<command> try to insert modules using this command
--set-counters PKTS BYTES set the counter during insert/append
[!] --version -V print package version.
MARK target options:
--set-xmark value[/mask] Clear bits in mask and XOR value into nfmark
--set-mark value[/mask] Clear bits in mask and OR value into nfmark
--and-mark bits Binary AND the nfmark with bits
--or-mark bits Binary OR the nfmark with bits
--xor-mark bits Binary XOR the nfmark with bits
使用示例
序号 | 命令 | 描述 |
---|---|---|
1 | iptables -A INPUT -p tcp --dport 22 -j ACCEPT | 允许 SSH 连接 |
2 | iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j DROP | 拒绝特定子网的流量 |
3 | iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT | 允许从 eth1 到 eth0 的转发流量 |
4 | iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP | 阻止出站 ICMP 回显请求(ping) |
5 | iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT | 限制 HTTP 连接速率 |
6 | iptables -A INPUT -s 192.168.0.1 -j REJECT | 拒绝来自特定 IP 的流量 |
7 | iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT | 允许已建立的连接转发 |
8 | iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT | 允许 SSH 响应出站 |
9 | iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 -j DROP | 拒绝过多连接尝试 |
10 | iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT | 允许 HTTP 转发 |
11 | iptables -A OUTPUT -o eth0 -d 8.8.8.8 -p udp --dport 53 -j ACCEPT | 允许 DNS 查询出站 |
12 | iptables -A INPUT -p udp --sport 53 -m limit --limit 3/second -j ACCEPT | 限制 DNS 响应速率 |
13 | iptables -A INPUT -i lo -j ACCEPT | 允许本地回环接口流量 |
14 | iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT | 允许 HTTPS 出站 |
15 | iptables -A FORWARD -s 192.168.1.0/24 -j LOG --log-prefix “FORWARD DROP” | 记录转发拒绝流量 |
16 | iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW -j ACCEPT | 仅允许新 SMTP 连接 |
17 | iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT | 允许 HTTP 响应出站 |
18 | iptables -A FORWARD -p icmp --icmp-type echo-reply -j ACCEPT | 允许 ICMP 回显回复 |
19 | iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT | 允许 HTTPS 连接 |
20 | iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j DROP | 阻止 ICMP 请求出站 |
21 | iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT | 允许 DNS 查询转发 |
22 | iptables -A INPUT -m recent --name portscan --rcheck --seconds 60 -j DROP | 阻止端口扫描 |
23 | iptables -A OUTPUT -p tcp --dport 22 -j DROP | 阻止 SSH 出站 |
24 | iptables -A FORWARD -p tcp --dport 80 -m string --string “example.com” --algo kmp -j DROP | 阻止特定字符串的流量 |
25 | iptables -A INPUT -s 192.168.2.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT | 允许特定子网的 ping |
26 | iptables -A FORWARD -p udp --dport 123 -j ACCEPT | 允许 NTP 转发 |
27 | iptables -A INPUT -p tcp --syn --dport 22 -m conntrack --ctstate NEW -m recent --set | 为新 SSH 连接设置状态 |
ss
使用详解
SYNOPSIS
ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
OPTIONS
-n, --numeric don't resolve service names
-r, --resolve resolve host names
-a, --all display all sockets
-l, --listening display listening sockets
-p, --processes show process using socket
-4, --ipv4 display only IP version 4 sockets
-6, --ipv6 display only IP version 6 sockets
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
-x, --unix display only Unix domain sockets
-f, --family=FAMILY display sockets of type FAMILY
FAMILY := {inet|inet6|link|unix|netlink|vsock|help}
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink|vsock_stream|vsock_dgram}[,QUERY]
-F, --filter=FILE read filter information from FILE
STATE-FILTER
All standard TCP states: established, syn-sent, syn-recv, fin-wait-1, fin-wait-2,
time-wait, closed, close-wait, last-ack, listening and closing
all - for all the states
connected - all the states except for listening and closed
synchronized - all the connected states except for syn-sent
dst**/**src dport/sport 语法
可以通过 dst/src/dport/sprot 语法来过滤连接的来源和目标,来源端口和目标端口。
匹配远程地址和端口号
$ ss dst 192.168.1.5
$ ss dst 192.168.119.113:http
$ ss dst 192.168.119.113:443
匹配本地地址和端口号
$ ss src 192.168.119.103
$ ss src 192.168.119.103:http
$ ss src 192.168.119.103:80
将本地或者远程端口和一个数比较
可以使用下面的语法做端口号的过滤:
$ ss dport OP PORT
$ ss sport OP PORT
<= | le | 小于或等于某个端口号 |
---|---|---|
>= | ge | 大于或等于某个端口号 |
== | eq | 等于某个端口号 |
!= | ne | 不等于某个端口号 |
> | gt | 大于某个端口号 |
< | lt | 小于某个端口号 |
使用示例
- -tln : 查看主机监听的端口,不解析服务的名称
nio@4CE314C43P:~$ ss -tln
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25001 0.0.0.0:*
LISTEN 0 100 127.0.0.1:13002 0.0.0.0:*
LISTEN 0 4 127.0.0.1:5037 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:7890 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:7891 0.0.0.0:*
- 通过 -r 选项解析 IP 和端口号
nio@4CE314C43P:~$ ss -trl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 localhost%lo:domain 0.0.0.0:*
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 5 localhost:ipp 0.0.0.0:*
LISTEN 0 128 localhost:afs3-callback 0.0.0.0:*
LISTEN 0 128 [::]:ssh [::]:*
LISTEN 0 5 ip6-localhost:ipp [::]:*
LISTEN 0 128 ip6-localhost:afs3-callback [::]:*
- 查看监听端口的程序名称
nio@4CE314C43P:~$ ss -tlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25001 0.0.0.0:* users:(("nxrunner.bin",pid=3179,fd=6))
LISTEN 0 100 127.0.0.1:13002 0.0.0.0:* users:(("nxplayer.bin",pid=11739,fd=35))
LISTEN 0 128 127.0.0.1:5939 0.0.0.0:*
LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:*
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 5 127.0.0.1:ipp 0.0.0.0:*
LISTEN 0 128 127.0.0.1:afs3-callback 0.0.0.0:* users:(("nxnode.bin",pid=3161,fd=17))
- 查看监听端口以及已建立的 TCP 连接
nio@4CE314C43P:~$ ss -tan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25001 0.0.0.0:*
LISTEN 0 100 127.0.0.1:13002 0.0.0.0:*
ESTAB 0 0 10.110.18.56:43418 115.227.12.15:443
CLOSE-WAIT 32 0 10.110.18.56:42854 122.225.209.218:443
ESTAB 0 0 10.110.18.56:37656 180.163.210.49:443
ESTAB 0 0 10.110.18.56:38790 155.248.223.211:8443
iperf3
使用详解
https://www.cnblogs.com/jpzhu/p/11892312.html
SYNOPSIS
iperf3 [-s|-c host] [options]
iperf3 [-h|--help] [-v|--version]
OPTIONS
Server or Client:
-p, --port # server port to listen on/connect to
-f, --format [kmgtKMGT] format to report: Kbits, Mbits, Gbits, Tbits
-i, --interval # seconds between periodic throughput reports
Server specific:
-s, --server run in server mode
-D, --daemon run the server as a daemon
-1, --one-off handle one client connection then exit
Client specific:
-c, --client <host> run in client mode, connecting to <host>
-u, --udp use UDP rather than TCP
--connect-timeout # timeout for control connection setup (ms)
-t, --time # time in seconds to transmit for (default 10 secs)
-n, --bytes #[KMG] number of bytes to transmit (instead of -t)
-l, --length #[KMG] length of buffer to read or write
(default 128 KB for TCP, dynamic or 1460 for UDP)
-P, --parallel # number of parallel client streams to run
-R, --reverse run in reverse mode (server sends, client receives)
-w, --window #[KMG] set window size / socket buffer size
-4, --version4 only use IPv4
-6, --version6 only use IPv6
使用示例
环境假设:
假设两台云服务器A(内)和B(外)
A(内)IP地址:10.10.0.1
B(外)IP地址:10.10.0.2
目的一:测试TCP吞吐量
1、先让B(外)做server端,开启iperf服务器模式,指定TCP端口1314:
iperf3 -s -i 1 -p 1314
2、然后打开A(内)做client端,连接服务器端1314端口:
iperf3 -c 10.10.0.2 -i 1 -t 60 -p 1314
① Interval表示时间间隔。
② Transfer表示时间间隔里面转输的数据量。
③ Bandwidth是时间间隔里的传输速率。
目的二:测试UDP吞吐量
1、B(外)server端开启iperf的服务器模式:
iperf3 -s -i 1 -p 1314
2、A(内)client端启动iperf的客户端模式,连接服务器端:
iperf3 -u -c 10.10.0.2 -b 100m -t 60 -p 1314
目的三:进行上下行带宽测试(TCP双向传输)
iperf3 -c 192.168.0.120 -d -t 60
目的四:测试多线程TCP吞吐量
如果没有指定发送方式,iPerf客户端只会使用单线程。
iperf3 -c 192.168.0.120 -P 30 -t 60
目的五:测试多线程UDP吞吐量
如果没有指定发送方式,iPerf客户端只会使用单线程。
iperf3 -u -c 192.168.1.1 -b 5M -P 30 -t 60
目的六:测试上下行带宽(UDP双向传输)
iperf3 -u -c 192.168.1.1 -b 100M -d -t 60
traceroute
SYNOPSIS
traceroute [ -46dFITnreAUDV ] [ -f first_ttl ] [ -g gate,... ]
[ -i device ] [ -m max_ttl ] [ -N squeries ] [ -p port ]
[ -t tos ] [ -l flow_label ] [ -w MAX,HERE,NEAR ] [ -q nqueries ]
[ -s src_addr ] [ -z sendwait ] [ --fwmark=num ] host [ packetlen ]
OPTIONS
-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。
ethtools
SYNOPSIS
ethtool [ -a | -c | -g | -i | -d | -k | -r | -S |] ethX
ethtool [-A] ethX [autoneg on|off] [rx on|off] [tx on|off]
ethtool [-C] ethX [adaptive-rx on|off] [adaptive-tx on|off] [rx-usecs N] [rx-frames N] [rx-usecs-irq N] [rx-frames-irq N] [tx-usecs N] [tx-frames N] [tx-usecs-irq N] [tx-frames-irq N] [stats-block-usecs N][pkt-rate-low N][rx-usecs-low N] [rx-frames-low N] [tx-usecs-low N] [tx-frames-lowN] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N]
ethtool [-G] ethX [rx N] [rx-mini N] [rx-jumbo N] [tx N]
ethtool [-e] ethX [raw on|off] [offset N] [length N]
ethtool [-E] ethX [magic N] [offset N] [value N]
ethtool [-K] ethX [rx on|off] [tx on|off] [sg on|off] [tso on|off]
ethtool [-p] ethX [N]
ethtool [-t] ethX [offline|online]
ethtool [-s] ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off]
[port tp|aui|bnc|mii] [phyad N] [xcvr internal|external]
[wol p|u|m|b|a|g|s|d...] [sopass xx:yy:zz:aa:bb:cc] [msglvl N]
OPTIONS
-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-c display the Coalesce information of the specified ethernet card。
-C Change the Coalesce setting of the specified ethernet card。
-g Display the rx/tx ring parameter information of the specified ethernet card。
-G change the rx/tx ring setting of the specified ethernet card。
-i 显示网卡驱动的信息,如驱动的名称、版本等。
-d 显示register dump信息, 部分网卡驱动不支持该选项。
-e 显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E 修改网卡EEPROM byte。
-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K 修改网卡Offload参数的状态。
-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。
-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t 让网卡执行自我检测,有两种模式:offline or online。
-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。
QNX
https://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.user_guide/topic/tcpip_Troubleshooting.html