Чтобы проверить, не блокируется ли какой-либо исходящий порт в вашей сети каким-либо вредоносным промежуточным портом, вы можете попробовать подключиться к серверу, на котором запущена служба.
В этом примере мы используем 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:~$
Обратите внимание, что первая команда немедленно вышла с сообщением 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:~$
В приведенной выше команде мы видим, что все исходящие порты заблокированы, кроме 21, 53, 80, 143, 443, 465, 587, 993, 1935 и 4070. В обычной / не прошедшей цензуру сети этот список будет намного, намного длиннее (вероятно, отображает все 65535 портов)