如何在“过滤”端口上“打开”

如何在“过滤”端口上“打开”

我在跑步:

$ ssh user@ip_address

并且等待很长时间没有回应。我尝试验证我的端口的状态:

$ a=`nmap ip_address -PN -p ssh | grep filtered`
$ echo $a      
22/tcp filtered ssh

那么要确认有过滤器吗?我怎样才能摆脱这个过滤器?

我当时查了一下:

$ netstat -tln 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address                   State      
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN   

和:

$ ps -ef | grep 'ssh[d]'
root      1017     1  0 10:58 ?        00:00:00 /usr/sbin/sshd -D

Ubuntu 安装是“原始”的,所以我怀疑我的系统上是否存在与防火墙相关的问题。如果我错了,请纠正我。

关于如何安全地打开端口有什么想法吗?我真的需要启用这台计算机从外部进行 ssh 连接。

答案1

打开防火墙中的端口(暂时假设这是过滤的地方)。在服务器(您想要的计算机ssh)上,尝试以下操作:

sudo ufw allow 22/tcp

在 shell 中,然后在此处发布任何错误消息。

另外,请发布输出

sudo netstat -tlpn

特别是如果防火墙命令不起作用,这样我们就可以看到sshd.

如果netstat找不到上面的命令(新的 iproute2 工具),请尝试替代

sudo ss -tlpn

输出的可读性较差,netstat但仍应显示sshd进程在端口 22 上执行“LISTEN”。

答案2

您和 ip_address 之间的某些因素阻止了与 ip_address:22 的连接,导致无法收到响应。这可能是 ip_address 服务器本身,也可能是您和它之间的任何盒子。

您需要追踪发生阻止的位置并打开端口。

相关内容