实用命令小记

实用命令小记
持续整理中...
tcpdump
实用命令小记

类型关键字

主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

传输方向关键字

主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

协议关键字

主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

其他重要关键字

gateway, broadcast,less,greater

逻辑运算

取非运算是 'not ' '! ', 与运算是'and','&&或运算 是'or' ,'||';这些关键字可以组合起来构成强大的组合条件来满足人们的需要


过滤MAC地址
-xx   以16 进制数形式显示每一个报文(包含链路层报头)
-X     以16 进制数形式显示每一个报文(不包含链路层报头),同时显示ASCII码。
-XX   以16 进制数形式显示每一个报文(包含链路层报头),同时显示ASCII码。
-s     重定义截取报文大小,默认为96(或68),如果定义为0,则表示获取完整报文。该参数应尽量小,尤其在繁忙网络环境中。
-w    将截取的报文输出到文件中。
-r     从文件中读取报文。
示例:#tcpdump -en -s 0 -XX -i eth0 host www.sina.com.cn -w telnet.out2 将截取到的报文输出到文件telnet.out2中。
示例:#tcpdump -en -s 0 -XX -i eth0 host www.sina.com.cn -r telnet.out2 从telnet.out2中读取报文

18:29:46.118463 00:0c:29:cc:09:38 > 00:50:56:e1:1f:7f, ethertype IPv4 (0x0800), length 54: 192.168.130.254.44990 > 61.172.201.194.http: Flags [F.], seq 217, ack 75209, win 47124, length 0

0x0000:  0050 56e1 1f7f 000c 29cc 0938 0800 4500  .PV.....)..8..E.

0x0010:  0028 3219 4000 4006 bda1 c0a8 82fe 3dac  .(2.@.@.......=.

0x0020:  c9c2 afbe 0050 cc78 1a65 f92b 09d1 5011  .....P.x.e.+..P.

0x0030:  b814 4b30 0000                           ..K0..

18:29:46.118571 00:50:56:e1:1f:7f > 00:0c:29:cc:09:38, ethertype IPv4 (0x0800), length 60: 61.172.201.194.http > 192.168.130.254.44989: Flags [.], ack 158, win 64239, length 0

0x0000:  000c 29cc 0938 0050 56e1 1f7f 0800 4500  ..)..8.PV.....E.

0x0010:  0028 0895 0000 8006 e725 3dac c9c2 c0a8  .(.......%=.....

0x0020:  82fe 0050 afbd a224 e245 252b 7445 5010  ...P...$.E%+tEP.

0x0030:  faef 9be6 0000 0000 0000 0000            ............



-n #不反解主机名
-nn #不反解主机名和端口

root@jlive:~#tcpdump ip src 192.168.130.1 and dst port ftp -i br0 -nn

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes

18:50:44.700318 IP 192.168.130.1.55740 > 192.168.130.254.21: Flags [S], seq 517418878, win 65535, options [mss 1460,nop,wscale 3,nop,nop,TS val 838026521 ecr 0,sackOK,eol], length 0

18:50:44.700485 IP 192.168.130.1.55740 > 192.168.130.254.21: Flags [.], ack 2016969765, win 16471, options [nop,nop,TS val 838026521 ecr 12735436], length 0

18:50:44.703333 IP 192.168.130.1.55740 > 192.168.130.254.21: Flags [.], ack 21, win 16468, options [nop,nop,TS val 838026524 ecr 12735439], length 0


root@jlive:~#tcpdump tcp port 21 and host 192.168.130.254

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes

19:17:53.555422 IP 192.168.130.1.56097 > jlive.example.com.ftp: Flags [S], seq 2505904008, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 839600626 ecr 0,sackOK,eol], length 0


其它示例

获取所有192.168.192.1主机收发的所有数据包

#tcpdump host 192.168.192.1

获取主机192.168.192.1接收或发出的telnet包

#tcpdump tcp port 23 host 192.168.192.1

获取本机udp 123端口的数据包

#tcpdump udp port 123

获取主机hostname发送的所有数据

#tcpdump -i eth0 src host hostname

获取发送到主机hostname的数据包

#tcpdump -i eth0 dst host hostname

获取通过指定网关的数据包

#tcpdump -i eth0 gateway Gatewayname

获取到指定端口的TCP或UDP数据包

#tcpdump -i eth0 host hostname and port 80

获取主机192.168.192.1和主机192.168.192.2或192.168.192.3的通信

#tcpdump host 192.168.192.1 and \(192.168.192.2 or 192.168.192.3\)

获取主机192.168.192.1和除了主机192.168.192.2之外所有主机通信的ip包

#tcpdump ip host 192.168.192.1 and ! 192.168.192.2


统计tcp连接状态
netstat -n|awk 'BEGIN {OFS="="} /^tcp/ {state=$NF;++count[state]} END {for(state in count) print state,count[state]}'

[foo@app08 ~]$ netstat -n|awk '/^tcp/ {++count[$NF]} END {for(state in count) print state,count[state]}'

TIME_WAIT  61

CLOSE_WAIT  79

FIN_WAIT2  3

ESTABLISHED  133

LAST_ACK  3

root@jlive:~#ss -t -o state time-wait|wc -l

39

root@jlive:~#ss -t -o state close-wait|wc -l

1

root@jlive:~#ss -t -o state fin-wait-1|wc -l

1

root@jlive:~#ss -t -o state fin-wait-2|wc -l

1

root@jlive:~#ss -t -o state established|wc -l

2

root@jlive:~#ss -t -o state last-ack|wc -l

1

root@jlive:~#ss -t -o state established sport = :3737|wc -l

2

root@jlive:~#ss -t -o state all sport = :3737|wc -l

4701

root@jlive:~#ss -t -o state time-wait sport = :3737|wc -l

4611

root@jlive:~#ss -t -o state time-wait '( sport = :3737 and dport = :9060 )'|wc -l

1

root@jlive:~#ss -t -o state time-wait '( sport = :3737 or dport = :9060 )'|wc -l

 

4901



通过本地随机端口查找是哪个应用生成的

ps -ef|grep $(ss -pt -o sport = :36845|awk -F, '/users/{print $2}')

ps -ef|grep -w $(netstat -anp 2>/dev/null|grep :64002 |awk '{print $NF}'|awk -F'/' '{print $1}')


限制网卡带宽
yum -y install iproute
限制50kb
tc qdisc add dev eth0 root tbf rate 50kbit latency 50ms burst 1000
解除
tc qdisc del dev eth0 root tbf


强制卸载
fuser -auv
fuser -k
lsof -i:80
umount -f /mnt/foo
umount -l /mnt/foo

批量重全名

find /foo/test -type f -name '*.bash' -exec rename .bash .sh {} \;


mysql数据同步到redis
mysql -h 10.19.105.161 -P 3306 -u ggs -pHELLO -D wms --default-character-set=utf8 --skip-column-names --raw < /u02/aa.sql | redis-cli --pipe

FTP自动上传下载
ftp -n<<HERE
open 192.168.8.254 21
user vuser1 vpasswd 
binary 
prompt off 
cd /test 
mput *.zip
close 
bye 
HERE


find
时间
find foo.ear/ -type f -newermt '2016-05-31 00:00:00' -! -newermt '2016-06-01 05:30:00'|xargs ls -l
正则
find . -regextype posix-egrep ! -regex '.*[0-9]{8}\.log$' -exec grep '/event/2015/1208/shopkeeper.html' {} \;|egrep '221.192.179.15|121.28.32.158' --color=auto
find . -regextype posix-egrep -regex '.*20170220.log$' -exec grep '/checkout/share/v3/shareInfoPage.do' {} \;|egrep '221.192.179.15|121.28.32.158' --color=auto

curl

curl -u vadmin:123 ftp://192.168.8.254/elasticsearch.xz -O elasticsearch.xz

curl可以直接充当ftp客户端工具,并且常规的linux发行版精简安装都自带(wget很多精简安装不自带)

crontab清理日志
0 3 * * * /bin/rm -rf /opt/IBM/httpconf/httplogs/$(date --date="1 months ago" +\%Y_\%m_\%d)_{access,error}_log
提示:在crontab中,%是特殊字符,需要转义

截图
xrandr --output DP-2.8 -s 3440x2880 --panning 3440x2880



ip命令
http://lartc.org/
man ip
实用命令小记



/sbin/ip link set lo up

/sbin/ip link set dev eth0 up
/sbin/ip addr add 172.24.137.219/24 dev eth0
/sbin/ip route add 172.24.139.0/24 via 172.24.137.1
/sbin/ip route add 172.24.210.0/24 via 172.24.137.1
/sbin/ip route add 172.24.166.0/24 via 172.24.137.1
/sbin/ip route add 172.24.138.0/24 via 172.24.137.1
/sbin/ip route add 172.24.0.0/16 via 172.24.137.1
/sbin/ip route add 172.25.0.0/16 via 172.24.137.1

/sbin/ip link set dev eth1 up
/sbin/ip addr add 172.24.154.219/24 dev eth1

posted @ 2016-02-20 15:33  李庆喜  阅读(208)  评论(0编辑  收藏  举报