OVERVIEW
先来一个概览:
scamper [ −?] [ −c command] [ −p pps] [ −w window] [ −M monitorname]
[ −l listname] [ −L listid] [ −C cycleid] [ −o outfile] [ −F firewall]
[ −n nameserver] [ −d debugfile] [ −e pidfile] [ −O options]
[ −i IPs | −I cmds | −f file | −P [ip:]port | −R name:port | −U unix-dom]
-?
查看scamper操作的命令
-c
command 后面跟dealias 、 host、 neighbourdisc、 ping、 trace、 tracelb、sniff、 sting、 tbit
默认是 trace模式,表示scamper当前执行的命令模式
-p
pps 发送包的速度,即 packets-per-second, 默认20
-w
window并行任务的时候最大探测量
-M
monitorname监视器,指定你要运行scamper机器的名称
-l
listname 指定从命令行运行时列表的名称
-L
listid 跟listname类似
-C
cycleid 指定循环的id
-o
outfile 结果输出到指定文件
-F
firewall 根据需要使用系统防火墙安装规则
-n
nameserver 指定camper要使用的服务器名字,默认在配置文件/etc/resolv.conf
里
-d
将调试信息写入指定文件
-D
进程守护模式运行 默认不开启
-e
pidfile pid输出到指定的文件
-O
options 定制操作,跟text
指定输出文件在text文本中,json
指定输出文件是json文件。
-i
IP 1 …N指定探测地址
-f
listfile 指定探测地址list在的文件路径
-I
cmds.
-P
[ip:]port 监听的主机ip和端口
-R
name:port 指定scamper连接到指定的主机和端口以接收命令
-U
scamper在unix域中监听指定套接字的控制。
以上是scamper服务端开启的命令
当然你可以本机操作,远程操作的时候你有可能需要传参数给工作的模式。工作模式全在上面的-c
命令后面。
具体的工作模式的操作命令
TRACE OPTIONS
先来一个概览:
trace [ −MQT] [ −c confidence] [ −d dport] [ −f firsthop] [ −g gaplimit]
[ −G gapaction] [ −l loops] [ −m maxttl] [ −o offset] [ −O option] [ −p payload]
[ −P method] [ −q attempts] [ −r rtr-addr] [ −s sport] [ −S srcaddr] [ −t tos]
[ −U userid] [ −w wait] [ −W wait-probe] [ −z gss-entry] [ −Z lss-name]
-c
confidence 调整信任级别,确保trace看到了全部的所有的应答
-d
dport 为trace指定基目的的端口
-f
firsthop 设定第一跳跃的TTL 常用
-g
gaplimit 设定跳跃点无反应的数,默认为5跳无反应。不建议设置为0。没有容错很难进行 常用
-G
gapaction 表示当gaplimit达到设定的值,要做什么,默认为1表示停止,2表示发送最后一个探测
-m
maxttl 指定探测TTL或HLIM的最大值,默认无限制。
-M
指定丢失数据包或者较大数据包的路径
-l
loops 探测停止之前,允许最大的循环数,默认1常用
-o
offset 设置探测偏移,默认不使用
-O
option 指定使用的参数,dl 、dtree noback
dl表示给数据包加时间戳,并接收小包,
dtree noback 表示指定traceroute在使用doubletree时不应进行反向探测
-p
payload 指定有效负载(十六进制)
-P
method 指定要使用的traceroute方法。scamper目前支持五种不同的探测方法:
UDP、ICMP、UDP paris、ICMP paris、TCP和TCP-ACK。默认情况下,使用UDP paris。常用
-q
attempts 每一条最大的响应次数,默认2
-Q
发送探测,不管收到多少响应
-r
rtr-addr 指定要使用的路由地址
-s
sport 指定使用的源端口,基于ICMP-based 使用
-S
srcaddr 指定使用源地址
-t
tos 设定IP ToS/DSCP + ECN的字节数
-T
-U
userid 设定收集数据userid标记
-w
wait 等待应答时间, 默认5秒
-W
wait-probe 连续探测之间的间隔,默认是尽快发送,单位(10ms)
-z
gss-entry 遇到自定的探测的IP地址停止,与double-tree algorithm一起使用
-Z
lss-name
PING OPTIONS
-A
tcp-ack 指定tcp报文头内容,返回消息内容的确认一致性
-B
payload 指定发射探测是负载,十六进制
-c
probecount 发送的探测数 默认4
-C
icmp-sum icmp 检验总数,使用时payload将会被使用
-d
dport 指定探测目标的端口
-F
sport 指定探测使用的源端口
-i
wait 探测之间等待的时间 默认1s
-m
ttl 传出数据的TTL值
-M
MTU 设置一个MTU值的限制标准,超过发送返回数据过大的信息
-o
replycount 指定探测响应的数,默认全部探测数
-O
options
-dl
指定使用数据链路套接字-nosrc
指定主机的实际地址不应嵌入,使用欺诈数据包spoof
指定假源地址(指定欺诈源地址)tbt
指定零星响应的数量
−p
pattern 指定探测器的数据模板,十六进制表示,最多16字节默认0字节
-P
method 指定要发送的ping数据包的类型,选项:icmp-echo, icmp-time, tcp-syn, tcp-ack, tcp-ack-sport, tcp-synack, tcp-rst, udp, and udp-dport
-R
开启记录路由ip
-s
size 发送探测是大小,包含ip和icmp报文头,默认ipv4 ping使用84字节,IP v6 ping默认使用56字节的探测大小
-S
srcaddr 探测的源地址,如果使用了-O 可以伪造地址
-T
timestamp 时间戳的携带,tsandaddr
tsprespec
tsonly
三种不同的时间戳标准。
-U
userid 设置正整数标识用户id
−W
timeout 指定发送最后一次ping后等待的时间,默认1s
-z
tos 指定要在IPv4 ToS/DSCP+ECN字节中使用的值。默认,此字节设置为零
当然还有dealias命令的操作,稍后更新。
下面说一下客户端
sc_attach
管理
sc_attach [ −?] [ −c command] [ −i infile] [ −o outfile] [ −O options]
[ −p [ip:]port] [ −P priority] [ −R unix-domain] [ −U unix-domain]
-?
查看帮助
-d
打印出连接到scamper的命令
-D
进程守护模式运行连接
-v
打印当前版本
-c
command 给scamper的命令参数,可以指定scamper用什么探测模式常用
-i
infile 输入文件路径(要探测的ip写入到这里面)
-o
outfile输出文件路径 格式是warts文件,需要解析
-O
options 选择进一步定制sc_attach,可选random, impatient。随机和不等待两种
-p
[ip:port] 指定连接的scamper的地址和端口,默认端口是31337
-P
priority 指定连接scamper的优先级
-R
unix-domain 远程连接scamper
-U
unix-domain 远程连接scamper
scamper服务端开启服务命令
~# sudo scamper -D -p 1000 -P 0.0.0.0:31337
sc_attach开启连接scamper
sc_attach -p 192.168.1.148:31337 -c 'trace -f 2 -l 1 -g 4 -P udp-paris' -i /root/Desktop/in/taskid/ip.txt -o output.warts
在当前路径会生成output.warts的文件
解析
sudo sc_warts2json output.warts
会输出json格式数据在控制台
在使用的时候出现这个问题
error while loading shared libraries: libscamperfile.so.0: cannot open shared object file: No such file or directory
安装无法使用部分功能的话需要执行一下
sudo ldconfig
加载配置,让linux认识以下新来的scamper