本文是自己学习的总结,仅以作分享。若有不对的地方欢迎指正。
route:设置路由
参数
add:添加一条路由
del:删除一条路由
-net:目的地址是一个网络
-host:目的地址是一个主机
target:目的网络或主机
netmask:目的地址的网络掩码
gw:路由数据包通过的网关
dev:为路由指定的网络接口
路由类型
主机路由:路由表中指向单个IP地址或主机名的路由,Flags字段为H
网络路由:主机可以到达的网络,Flags字段为N
默认路由:Destination为0.0.0.0,Gateway指向网关,Flags字段为G
route 命令的输出项说明
Destination:目标网段或者主机
Gateway:网关地址
Genmask:网络掩码
Flags:标记
U:路由是活动的
H:目标是一个主机
G:路由指向网关
R:恢复动态路由产生的表项
D:由路由的后台程序动态地安装
M:由路由的后台程序修改
!:拒绝路由
Metric:路由距离,到达指定网络所需的中转数
Ref:路由项引用次数
Use:此路由项被路由软件查找的次数
Iface:该路由表项对应的输出接口
添加静态路由:ip route
ip route 目标网络 目标网络掩码 下一跳地址
ip route 192.168.100.0 255.255.255.0 192.168.100.1
例子
添加默认路由
route add default gw 192.168.100.1
添加主机路由
route add -host 192.168.100.100 dev eth0:0
route add -host 192.168.100.100 gw 192.168.100.1
添加网络路由
route add -net 192.168.100.0 netmask 255.255.255.0 eth0
route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1
route add -net 192.168.100.0/24 eth0
开机自启动默认路由
echo "route add default gw 192.168.100.1" >>/etc/rc.local
永久生效路由
echo "any net 192.168.100.0/24 gw 192.168.100.1" >>/etc/sysconfig/static-routes
删除路由(将添加路由中的add改为del,其它不变)
route del default gw 192.168.100.1
route del -host 192.168.100.100 dev eth0:0
route del -host 192.168.100.100 gw 192.168.100.1
route del -net 192.168.100.0 netmask 255.255.255.0 eth0
traceroute:跟踪路由(Ctrl+C可以终止)
-w:设置判定网络不可达时间
ping:测试网络可达(Ctrl+C可以终止)
-c 数字:指定ping的次数
-i 数字:指定每次ping的时间间隔,单位为s
-n:只输出数值,速度较快
-s 数字:指定数据包大小
ping www.baidu.com -c 1:只ping1次www.baidu.com
ping www.baidu.com -c 3 -i 1:只ping3次www.baidu.com,每次间隔1s
tcpdump:抓包
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。支持网络层、协议、主机、网络或端口的过滤,且提供and、or、not等逻辑语句过滤不需要的数据包
监视指定主机的数据包
打印到达或从主机A发出的数据包
tcpdump host A
打印主机A与B或C之间来往的所有数据包
tcpdump host A and \( B or C \)
打印除了A与B交互的所有数据包
tcpdump ip host A and not B
监视指定网络的数据包
打印与A网络上的主机交互的所有数据包
tcpdump net ucb-ether
打印所有通过网关A的ftp数据包,单引号可防止shell对括号中的内容进行错误解析
tcpdump 'gateway A and (port ftp or ftp-data)'
打印不是本地网络的数据包
tcpdump ip and not net localnet
监视指定协议的数据包
打印长度超过300字节, 并且网关地址是A的IP数据包
tcpdump 'gateway A and ip[2:2] > 300'
打印TCP会话中的的开始和结束数据包, 并且数据包的源或目的不是本地网络上的主机
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'
监视指定主机和端口的数据包
抓取主机A所有经过接口eth1接收的数据包,且端口号是80
tcpdump -i eth1 -lnXps0 dst A and dst port 80 -c 10
保存获取的数据包
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.100.0/24 -w./target.cap
-i eth1 : 只抓经过接口eth1的包
-t : 不显示时间戳
-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
-c 100 : 只抓取100个数据包
dst port ! 22 : 不抓取目标端口是22的数据包
src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析