我在 Windows7 环回适配器上运行 rawcap。我已经运行
telnet localhost 2181
生成了 15 个数据包。为了查看输出,我运行了
wireshark\tshark -r \shared\pcap.pcap
下面是输出
florence 0.000000 10.0.0.22 -> 255.255.255.255 UDP 138 Source port: 56748 Destination port: florence 56748
florence 0.103006 10.0.0.22 -> 255.255.255.255 UDP 138 Source port: 56748 Destination port: florence 56748
eforward 9.458541 127.0.0.1 -> 127.0.0.1 TCP 52 49435 > eforward [SYN] Seq=0 Win=8192 Len=0 MSS=65495 WS=256 SACK_PE
49435 9.466541 127.0.0.1 -> 127.0.0.1 TCP 52 eforward > 49435 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=65495 WS=256
eforward 9.474542 127.0.0.1 -> 127.0.0.1 TCP 40 49435 > eforward [ACK] Seq=1 Ack=1 Win=8192 Len=0 49435
florence 12.022688 10.0.0.22 -> 255.255.255.255 UDP 138 Source port: 60846 Destination port: florence 60846
florence 12.083691 10.0.0.22 -> 255.255.255.255 UDP 138 Source port: 60846 Destination port: florence 60846
eforward 13.144752 127.0.0.1 -> 127.0.0.1 TCP 42 49435 > eforward [PSH, ACK] Seq=1 Ack=1 Win=8192 Len=2 49435
49435 13.146752 127.0.0.1 -> 127.0.0.1 TCP 40 eforward > 49435 [ACK] Seq=1 Ack=3 Win=7936 Len=0 eforward
eforward 14.877851 127.0.0.1 -> 127.0.0.1 TCP 42 49435 > eforward [PSH, ACK] Seq=3 Ack=1 Win=8192 Len=2 49435
49435 14.878851 127.0.0.1 -> 127.0.0.1 TCP 40 eforward > 49435 [ACK] Seq=1 Ack=5 Win=7936 Len=0 eforward
49435 14.880851 127.0.0.1 -> 127.0.0.1 TCP 40 eforward > 49435 [FIN, ACK] Seq=1 Ack=5 Win=7936 Len=0 eforward
eforward 14.881851 127.0.0.1 -> 127.0.0.1 TCP 40 49435 > eforward [ACK] Seq=5 Ack=2 Win=8192 Len=0 49435
eforward 14.881851 127.0.0.1 -> 127.0.0.1 TCP 40 49435 > eforward [FIN, ACK] Seq=5 Ack=2 Win=8192 Len=0 49435
49435 14.882851 127.0.0.1 -> 127.0.0.1 TCP 40 eforward > 49435 [ACK] Seq=2 Ack=6 Win=7936 Len=0 eforward
所以我不明白这一点。我正在寻找端口 2181 的信息。但我看到的却是 ..佛罗伦萨.. 这是什么意思?我如何才能看到正确的目标端口号?
更新 Guy Harris 的回答非常准确(将被接受)。我在这里想请求您做一点进一步的澄清:更正后的输出(在添加-n到 tshark 命令行)是:
2181 117.286708 127.0.0.1 -> 127.0.0.1 TCP 40 60723 > 2181 [ACK] Seq=5 Ack=2 Win=8192 Len=0 60723
2181 117.287708 127.0.0.1 -> 127.0.0.1 TCP 40 60723 > 2181 [FIN, ACK] Seq=5 Ack=2 Win=8192 Len=0 60723
60723 117.287708 127.0.0.1 -> 127.0.0.1 TCP 40 2181 > 60723 [ACK] Seq=2 Ack=6 Win=7936 Len=0 2181
因此现在目标端口 (2181) 已正确显示。但请解释一下:40在这个部分:
TCP 40 2181 > 60723
答案1
“florence”和“eforward”对应于Wireshark的“service”文件中的条目;“service”文件最初是一个UN*X文件,为端口号命名 - 它也存在于Windows上,Wireshark现在包含自己的“service”文件,它使用该文件将端口号映射到名称。
TShark 手册页文档在其命令行标志列表中说明:
−n Disable network object name resolution (such as hostname, TCP and
UDP port names); the −N flag might override this one.
−N <name resolving flags>
Turn on name resolving only for particular types of addresses and
port numbers, with name resolving for other types of addresses and
port numbers turned off. This flag overrides −n if both −N and −n
are present. If both −N and −n flags are not present, all name
resolutions are turned on.
The argument is a string that may contain the letters:
C to enable concurrent (asynchronous) DNS lookups
m to enable MAC address resolution
n to enable network address resolution
N to enable using external resolvers (e.g., DNS) for network
address resolution
t to enable transport‐layer port number resolution
因此,如果您使用“-n”标志运行它,它将关闭传输层端口号解析,这样它就不会将端口号映射到名称。它也不会将 IP 地址映射到主机名;如果您想要这样做,请使用“-n”和“-N n”运行 TShark。
答案2
“本节中的 40 是什么?”是一个单独的问题,因此我将给出单独的答案。
TShark 向您显示 Wireshark 配置文件中指定的列;您可能有标准列,以及字段的“自定义”列tcp.dstport
,显示目标 TCP 端口号。标准列之一是链路层数据包长度;这可能就是它所显示的。