如何检测网络是否阻止了传出端口?

Mic*_*eld 13 networking firewall ssh openvpn port

如何确认我的网络是否阻止了传出端口?

我在访问在端口 80 和 443 以外的端口上运行的服务器上的服务时遇到问题。例如,我无法通过 ssh 连接到任何在端口 22、2222、32415 等上运行 ssh 的服务器。

此外,我工作所需的其他程序也失败了,例如 openvpn。

理想情况下,我想确定网络阻止的端口列表。

我在图书馆的公共接入点。

Mic*_*eld 23

tl;博士

运行此命令以测试特定端口(快速)。

time nmap -p 22 portquiz.net
Run Code Online (Sandbox Code Playgroud)

运行这个命令来测试流行的端口(慢)。

time nmap portquiz.net
Run Code Online (Sandbox Code Playgroud)

运行此命令以测试所有端口(非常慢)。

time nmap -p- portquiz.net | grep -i open
Run Code Online (Sandbox Code Playgroud)

来源:https : //tech.michaelaltfield.net/2018/07/03/detect-outgoing-port-blocking-with-nmap-and-portquiz-net/

解决方案说明

要测试给定的传出端口是否被某些恶意中间件阻止在您的网络上,您可以尝试 telnet 进入在该端口上运行服务的服务器。

在这个例子中,我们使用 portquiz.net——这是一个为此目的而设计的公共服务。它使用iptables 的 nat 表并打开所有 tcp 端口

# first we verify that we _can_ connect over port 443, which >99% of
# networks won't block; it works
user@personal:~$ time echo 'exit' | telnet portquiz.net 443
Trying 178.33.250.62...
Connected to portquiz.net.
Escape character is '^]'.
Connection closed by foreign host.

real    0m0.069s
user    0m0.002s
sys 0m0.043s
user@personal:~$ 

# next we try to connect over a port that's suspected of being blocked; it fails
user@personal:~$ time echo 'exit' | telnet portquiz.net 22
Trying 178.33.250.62...
telnet: Unable to connect to remote host: Connection timed out

real    2m10.635s
user    0m0.004s
sys 0m0.035s
user@personal:~$ 
Run Code Online (Sandbox Code Playgroud)

请注意,第一个命令立即退出并显示消息Connected to portquiz.net,这表明传出端口 443没有被网络阻止。

然而,第二个命令说Unable to connect to remote host: Connection timed out。这表明——除非 portquiz.net 出现问题——传出端口 22 可能在您的网络上被阻止。

您可以进一步使用 nmap 来获取所有未被网络阻止的端口的列表。例如:

user@personal:~$ time nmap -p- portquiz.net | grep -i open
21/tcp   open   ftp
53/tcp   open   domain
80/tcp   open   http
143/tcp  open   imap
443/tcp  open   https
465/tcp  open   smtps
587/tcp  open   submission
993/tcp  open   imaps
1935/tcp open   rtmp
4070/tcp open   unknown
 
real    3m48.324s
user    0m18.885s
sys 0m29.077s
user@personal:~$ 
Run Code Online (Sandbox Code Playgroud)

在上面的命令中,我们可以看到除了 21、53、80、143、443、465、587、993、1935 和 4070 之外的所有传出端口都被阻止。 在正常/未经审查的网络中,这个列表会很多很多更长(可能显示所有 65535 个端口