现代网络广泛使用防火墙,导致传统路由跟踪工具发出的(ICMP应答(ICMP echo)或UDP)数据包都被过滤掉了,所以无法进行完整的路由跟踪。尽管如此,许多情况下,防火墙会准许反向(inbound)TCP数据包通过防火墙到达指定端口,这些端口是主机内防火墙背后的一些程序和外界连接用的。通过发送TCP SYN数据包来代替UDP或者ICMP应答数据包,tcptraceroute可以穿透大多数防火墙。
下载链接:http://down.51cto.com/data/161567
一、LIBPCAP:
下载:libpcap
http://down.51cto.com/data/161564 下载 libpcap-0.8.3.tar.gz
安装:
tar zxvf ~lonen/Testing-pt/libpcap-0.8.3.tar.gz
./configure --without-flex --without-bison --prefix=/usr/local/libpcap
- 1.
- 2.
- 3.
二、LIBNET:
下载:libnet
http://down.51cto.com/data/161565 下载libnet-1.0.2a.tar.gz
安装:
tar zxvf ~lonen/Testing-pt/libnet-1.0.2a.tar.gz
ln -s Libnet-1.0.2a/ libnet
cd libnet/
./configure --prefix=/usr/local/libnet
make
more README
make install; make supp;make util
make install
make supp
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
三、TCPTRACEROUTE:
下载:tcptraceroute
http://down.51cto.com/data/161567 下载1.5.tar.gz
阅读安装帮助,牢记,养成阅读英文的习惯,工作效率也能够提高很多。真正的心得。
[root@soft tcptraceroute-1.5beta7]# ./configure --prefix=/usr/local/tcptraceroute \
> --with-libpcap=/usr/local/libpcap \
> --with-libnet=/usr/local/libnet \
> --enable-static
make;make install
[root@soft bin]# cp tcptraceroute /bin/
[root@soft bin]# tcptraceroute --help
tcptraceroute 1.5beta7
Copyright (c) 2001-2006 Michael C. Toren <mct@toren.net>
Updates are available from http://michael.toren.net/code/tcptraceroute/
Usage: tcptraceroute [-nNFSAE] [-i <interface>] [-f <first ttl>]
[-l <packet length>] [-q <number of queries>] [-t <tos>]
[-m <max ttl>] [-pP] <source port>] [-s <source address>]
[-w <wait time>] <host> [destination port] [packet length]
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
-n
Display numeric output, rather than doing a reverse DNS lookup for each hop. By default, reverse lookups are never attempted on RFC1918
address space, regardless of the -n flag.
-N
Perform a reverse DNS lookup for each hop, including RFC1918 addresses.
-f
Set the initial TTL used in the first outgoing packet. The default is 1.
-m
Set the maximum TTL used in outgoing packets. The default is 30.
-p
Use the specified local TCP port in outgoing packets. The default is to obtain a free port from the kernel using bind(2). Unlike with traditional
traceroute(8), this number will not increase with each hop.
-s
Set the source address for outgoing packets. See also the -i flag.
-i
Use the specified interface for outgoing packets.
-q
Set the number of probes to be sent to each hop. The default is 3.
-w
Set the timeout, in seconds, to wait for a response for each probe. The default is 3.
-S
Set the TCP SYN flag in outgoing packets. This is the default, if neither -S or -A is specified.
-A
Set the TCP ACK flag in outgoing packets. By doing so, it is possible to trace through stateless firewalls which permit outgoing TCP connections.
-E
Send ECN SYN packets, as described in RFC2481.
-t
Set the IP TOS (type of service) to be used in outgoing packets. The default is not to set any TOS.
-F
Set the IP "don't fragment" bit in outgoing packets.
-l
Set the total packet length to be used in outgoing packets. If the length is greater than the minimum size required to assemble the necessary probe
packet headers, this value is automatically increased.
-d
Enable debugging, which may or may not be useful.
-i 指定接口,网络接口
-f 起初第几条开始,比如5,开始显示第5跳的结果
-l traceroute包的长度
-q 查询的数字号
-t tos
-m ***的TTL
-s 源地址,如果服务器有两块网卡,就可以采用指定-s的源地址路由,在所有的tracert/traceroute都 有这样的基本功能
-w等待的时间
host 指定要TRACEROUTE的一个IP或者是域名 www.bloghacker.cn
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
#p#
四、真是有效的测试记录对比:
[root@soft ~]# traceroute -w 2 -q 1 -f 5 www.singtel.com.sg
traceroute to www.singtel.com.sg (203.208.248.10), 30 hops max, 38 byte packets
5 219.158.4.66 (219.158.4.66) 27.322 ms
6 219.158.3.198 (219.158.3.198) 27.664 ms
7 203.208.151.17 (203.208.151.17) 92.729 ms
8 GigabitEthernet6-0.sngtp-ar2.ix.singtel.com (203.208.183.19) 108.016 ms
9 202.160.250.226 (202.160.250.226) 83.829 ms
10 203.208.232.50 (203.208.232.50) 91.525 ms
11 203.208.232.57 (203.208.232.57) 83.972 ms
12 *
13 *
14 *
15 *
16 *
17 *
18 *
19 *
20 *
21 *
22 *
23 *
24 *
25 *
26 *
27 *
28 *
29 *
30 *
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
现在看看tcptraceroute:
[root@soft ~]# tcptraceroute -f 1 www.singtel.com.sg
Selected device eth0, address 61.51.18.130, port 34733 for outgoing packets
Tracing the path to www.singtel.com.sg (203.208.248.10) on TCP port 80 (http), 30 hops max
1 61.51.18.1 2.512 ms 1.543 ms 1.783 ms
2 202.96.13.169 1.548 ms 11.025 ms 6.981 ms
3 202.106.192.157 7.470 ms 8.355 ms 4.358 ms
4 219.158.4.65 4.590 ms 5.006 ms 2.284 ms
5 219.158.4.66 26.886 ms 30.142 ms 25.995 ms
6 219.158.3.198 28.820 ms 26.171 ms 28.981 ms
7 203.208.151.17 92.619 ms 92.521 ms 96.665 ms
8 GigabitEthernet6-0.sngtp-ar2.ix.singtel.com (203.208.183.19) 98.351 ms 97.487 ms 97.133 ms
9 202.160.250.226 83.047 ms 83.592 ms 83.252 ms
10 203.208.232.50 91.092 ms 90.978 ms 91.000 ms
11 203.208.232.57 83.049 ms 82.607 ms 82.000 ms
12 203.208.248.10 [open] 83.971 ms 82.609 ms 84.863 ms
_____________________________________完成TRACEROUTE
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
五、补充:route的配置静态路由表Linux
route命令主要用于手动配置静态路由表
#route add net remote_net_ip gateway_ip 1
- 1.
例:增加一条通过网关到达令一子网的路由
其中add代表要增加路由,net表示路由到达的是一个网络而不是一台主机,1代表远端网络需通过网关才能到达
(直接通过网络接口相连时,该参数用0)
命令格式:
#route add -net remote_net_ip gateway_ip -netmask netmask
#route add -host host_ip local_interface_ip -interface
- 1.
- 2.
六、HPING
1、下载hping 源代码包
wget http://www.hping.org/hping3-20051105.tar.gz
2、安装帮助文档,仔细看看,在LINUX./BSD的环境下完成;
Linux
-----
please, follows this steps:
$ ./configure (first try ./configure --help)
$ vi Makefile (optional)
$ make
$ su
# make install
FreeBSD, OpenBSD, NetBSD
------------------------
You will need the libpcap and the gmake utility installed on your system.
$ ./configure
$ gmake
$ su (or calife)
# gmake install
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTE: You should take care about your net/bpf.h file installing on
BSD systems (specially with OpenBSD). If your original bpf.h was
overwritten with the libpcap one probably hping will not work
with over some interface.
For example if you use the libpcap bpf.h on OpenBSD hping will
not work over PPP interfaces.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
3、正式完成,加载LIBPCAP
[root@soft hping3-20051105]# ./configure --prefix=/usr/local/hping --with-libpcap=/usr/local/libpcap
make;make install
- 1.
- 2.
- 3.
七、其他