指定目标TCP端口的traceroute命令tcptraceroute mailserver 25等价traceroute -T mailserver -p 25

指定目标TCP端口的traceroute命令tcptraceroute mailserver 25等价traceroute -T mailserver -p 25tcptraceroute(1)-LinuxmanpageNametcptraceroute-AtracerouteimplementationusingTCPpacketsSynopsistcptraceroute[-nNFSAE][-iinterface][-ffirstttl][-llength][-qnumberofqueries][-ttos][-mmaxttl][-psourceport]…

大家好,又见面了,我是你们的朋友全栈君。

tcptraceroute(1) – Linux man page

Name

tcptraceroute – A traceroute implementation using TCP packets

Synopsis

 

tcptraceroute [-nNFSAE] [ -i interface ] [ -f first ttl ]
[ -l length ] [ -q number of queries ] [ -t tos ]
[ -m max ttl ] [ -p source port ] [ -s source address ]
[ -w wait time ] host [ destination port ] [ length ]

Description

tcptraceroute is a traceroute implementation using TCP packets.

The more traditional traceroute(8) sends out either UDP or ICMP ECHO packets with a TTL of one, and increments the TTL until the destination has been reached. By printing the gateways that generate ICMP time exceeded messages along the way, it is able to determine the path packets are taking to reach the destination.

The problem is that with the widespread use of firewalls on the modern Internet, many of the packets that traceroute(8) sends out end up being filtered, making it impossible to completely trace the path to the destination. However, in many cases, these firewalls will permit inbound TCP packets to specific ports that hosts sitting behind the firewall are listening for connections on. By sending out TCP SYN packets instead of UDP or ICMP ECHO packets, tcptraceroute is able to bypass the most common firewall filters.

It is worth noting that tcptraceroute never completely establishes a TCP connection with the destination host. If the host is not listening for incoming connections, it will respond with an RST indicating that the port is closed. If the host instead responds with a SYN|ACK, the port is known to be open, and an RST is sent by the kernel tcptraceroute is running on to tear down the connection without completing three-way handshake. This is the same half-open scanning technique that nmap(1) uses when passed the -sS flag.

Options

-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.

–dnat

Enable DNAT detection, and display messages when DNAT transitions are observed. DNAT detection is based on the fact that some NAT devices, such as some Linux 2.4 kernels, do not correctly rewrite the IP address of the IP packets quoted in ICMP time-exceeded messages tcptraceroute solicits, revealing the destination IP address an outbound probe packet was NATed to. NAT devices which correctly rewrite the IP address quoted by ICMP messages, such as some Linux 2.6 kernels, will not be detected. For some target hosts, it may be necessary to use –dnat in conjunction with –track-port. See the examples.txt file for examples.

–no-dnat

Enable DNAT detection for the purposes of correctly identifying ICMP time-exceeded messages that match up with outbound probe packets, but do not display messages when a DNAT transition is observed. This is the default behavior.

–no-dnat-strict

Do not perform any DNAT detection whatsoever. No attempt will be made match up ICMP time-exceeded messages with outbound probe packets, and when tracerouting through a NAT device which does not rewrite the IP addresses of the IP packets quoted in ICMP time-exceeded messages, some hops along the path may appear to be unresponsive. This option should not be needed in the vast majority of cases, but may be utilized if it is suspected that the DNAT detection code is misidentifying ICMP time-exceeded messages.

Examples

Please see the examples.txt file included in the tcptraceroute distribution for a few real world examples.

To trace the path to a web server listening for connections on port 80:

tcptraceroute webserver

To trace the path to a mail server listening for connections on port 25:

tcptraceroute mailserver 25

Bugs

No error checking is performed on the source address specified by the -s flag, and it is therefore possible for tcptraceroute to send out TCP SYN packets for which it has no chance of seeing a response to.

Author

Michael C. Toren <mct@toren.net>

Availability

For updates, please see:

http://michael.toren.net/code/tcptraceroute/

See Also

traceroute(8)ping(8)nmap(1)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151488.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 史上最全的Android面试题集锦

    史上最全的Android面试题集锦Android基本知识点1、常规知识点1、Android类加载器在Android开发中,不管是插件化还是组件化,都是基于Android系统的类加载器ClassLoader来设计的。只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码文件会生成一个.class文件,而Android是把所有Class文件进行合并、优化,然后…

    2022年5月11日
    41
  • FileInputStream读取文件数据的两种方式

    FileInputStream读取文件数据的两种方式FileInputStream(文件字节读取流):read():一个一个字节的读read(byte[]buf):先把字节存入到缓冲区字节数组中,一下读一个数组(常用)importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava….

    2022年5月5日
    332
  • tomcat部署war包访问显示404

    tomcat部署war包访问显示404在eclipse导出的maven项目war包,放到tomcat下启动,顺利启动且无报错,但是浏览器访问该项目时显示404原因:未在server.xml中配置这几个项目,导致服务器查找不到解决方法:&lt;HostappBase="webapps"autoDeploy="true"name="localhost"unpackWARs="true"&gt;…

    2022年6月10日
    217
  • hadloop大数据平台论文_基于Hadoop的大数据解决方案的设计及应用

    hadloop大数据平台论文_基于Hadoop的大数据解决方案的设计及应用第37卷第2期2017年4月河池学院学报JOURNALOFHECHIUNIVERSITYVol.37No.2Apr.2017基于Hadoop的大数据解决方案的设计及应用苏树鹏(广西机电职业技术学院,广西南宁530007)[摘要]随着信息化技术和终端智能的迅猛发展,系统需要处理的数据呈现海量化,使得海量数据的存储、挖掘成为当前亟待解决的问题。使用云计算技术构建集群系统,可有效地解决海量数据的存储、共…

    2022年5月22日
    34
  • pycharm中更新pip版本的问题「建议收藏」

    pycharm中更新pip版本的问题「建议收藏」经常使用Python的都知道pip,但有时候,下载某个模块不成功,提示信息如下pytharm查看自带的pip版本解决方式一:pytharm的terminal里卸载pip再安装pip如果还不行,解决方式二去你当前的项目路径下找到lib文件夹下的site-packages,删除相关的pip版本再去file——>settings查看自带pip版本的地方,…

    2022年8月29日
    7
  • pycharm的字体设置_pycharm怎么设置字体

    pycharm的字体设置_pycharm怎么设置字体设置的路径是File->settings->Editor->FileandCodeTemplates->PythonScript再来看下效果:设置OK

    2022年8月29日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号