我正在尝试测试哪些传出端口可以通过防火墙。目前,我可以通过portquiz.net
从内部进行端口扫描(即所有 TCP 端口都打开的服务器)来对 TCP 进行此操作,但这对 UDP 不起作用。
我的设置如下:
Me (my device on local network) <-> NAT/Firewall <-> IPv4 Internet
所以我的问题是,如何测试我和互联网之间的防火墙,以查看我能够连接并成功使用哪些传出的 UDP 端口?
为了澄清起见,我想要测试每个端口(而不是任何特定端口)并返回可以成功通过的端口列表。
答案1
此工具可以完成此操作。您可以输入整个 1-65,535 UDP 端口范围。
答案2
如果您有一台可以作为扫描目标的服务器,则可以使用 tcpdump 或类似程序。其工作原理是让防火墙内的机器尝试在每个端口上向防火墙外的服务器发送 udp 数据包。然后接收服务器记录它看到的数据包。
首先确保所有传入的 UDP 端口都转发到路由器上的服务器(如果它不是直接在互联网上)。
然后运行 tcpdump
tcpdump -i eth0 host <ip address of remote server> proto udp
远程服务器的 IP 地址就是您的 IP 在通过防火墙进行 NAT 后显示的任何地址。网上有服务可以计算出您的公共 IP 地址。
然后从防火墙内的设备使用 nmap:
nmap -sU <your server IP> -p 1-65536
不会nmap
告诉您任何内容,但是tcpdump
远程站点的会记录通过防火墙的每个 UDP 数据包。