ping 如何知道我的数据包被过滤了?

Ama*_*rus 22 networking ping filtering filter

我是爱尔兰 ISP eircom 的客户,该公司已开始审查海盗湾。

当我尝试 ping 194.71.107.15thepiratebay.com 的 IP 地址时,我得到以下输出:

PING 194.71.107.15 (194.71.107.15) 56(84) bytes of data.
From 159.134.124.176 icmp_seq=1 Packet filtered
From 159.134.124.176 icmp_seq=2 Packet filtered
From 159.134.124.176 icmp_seq=3 Packet filtered
Run Code Online (Sandbox Code Playgroud)

ping 如何知道它已被过滤?我怎样才能了解更多关于它是如何过滤的。我的 ping/nmap foo 很弱。

Kar*_* T. 32

看了之后

来自 iputils-ping Debian etch 包的 ping.c,我看到:

 
 /*
 *
 * pr_icmph --
 * 打印关于 ICMP 标头的描述性字符串。
 */
void pr_icmph(__u8 类型,__u8 代码,__u32 信息,结构 icmphdr *icp)
{

...
                案例ICMP_PKT_FILTERED:
                        printf("数据包过滤\n");
                        休息;
...

看起来 iptables reject 在响应中添加了这个,见

http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/net/ipv4/netfilter/ipt_REJECT.c

并搜索“ICMP_PKT_FILTERED”,尽管这可能不是唯一一种使用此类消息进行 ping 回复的情况。

  • +1 为源潜水。 (5认同)

Mur*_*iar 16

Ping 根据它在响应回显请求时收到的ICMP 控制消息来确定其打印的消息。

我猜想,Eircom 用来阻止访问海盗湾的任何过滤设备都会生成 ICMP 类型 3、代码 9(网络管理禁止)或类型 3、代码 10(主机管理禁止)消息,以响应流量定向到海盗湾的 IP 地址。

为了确认,我建议运行数据包捕获(使用Wireshark或类似工具)并查看您从 159.134.124.176 收到的 ICMP 响应数据包。