我有一个通过NAT访问Internet的Linux计算机局域网。 网关运行限制性防火墙。 我有ICMP回应请求和答复允许通过网关上的防火墙,所以我可以从LAN计算机ping任何外部主机,但mtr和traceroute到外部主机挂起在网关跳。
我应该有哪些额外的防火墙规则,这些工具可以正常工作?
Linux traceroute默认使用UDP,在一个随机的高端口上,而Windows tracert使用ICMP。 对于您的Linux机器,您需要将防火墙configuration为在高端口上允许UDP,或者使用-I命令行开关指定使用ICMP ECHO而不是UDP数据报。
编辑添加:默认情况下,它会在未分配端口范围内选取一个随机端口,通常称为“高端口”。 通常这意味着在49152-65535范围内的端口(请参阅此端口列表 )。 手册页将此称为服务在不经意间运行的“不可能的值”,因为我们实际上并不希望主机将UDP数据报作为信息处理。 如果需要,可以使用-p指定端口,但是请注意,使用UDP时,每个探针都会将目标端口递增1。 如果要使用常数端口,请指定-U开关(默认端口为53)。 或者,如果您不想使用UDP或ICMP,则可以使用-T开关指定TCP SYN模式,该模式将使用您可以使用-p设置的常量端口。 然后你可以在防火墙上打开这个端口。
非特权用户只能使用UDP。