前几天,我像往常一样尝试通过 SSH 连接到我的远程服务器。但现在当我尝试连接时,它在大约 60 秒后就超时了。我运行
service ssh start
它告诉我 Job 已在运行:ssh。然后我运行
$netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1972/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1972/dovecot
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2030/mysqld
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1972/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1972/dovecot
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 2157/perl
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3028/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2273/master
tcp6 0 0 :::80 :::* LISTEN 2618/apache2
tcp6 0 0 :::21 :::* LISTEN 2291/proftpd: (acce
tcp6 0 0 :::22 :::* LISTEN 3028/sshd
我可以访问我网站上的子域名和 FTP,但无法远程 SSH 甚至 ping。有什么想法吗?
答案1
一些想法:
- 要排除您这边(而不是服务器上)的问题,请使用参数运行 ssh
-v
来查看发生了什么。 telnet <server-ip> 22
会告诉您连接是否已到达服务器。它应该会做出类似如下的响应SSH-2.0-OpenSSH...
。- 检查服务器的日志文件(例如
/var/log/auth.log
,/var/log/secure
)中是否有与 sshd 相关的消息。如果连接到达服务器,您应该会看到来自远程 IP 地址的连接尝试。 - 如果您的连接无法到达服务器的 ssh 端口,则可能有不同的原因:
- 路由问题(在这种情况下,与其他端口的连接也无法通过。)
- 外部防火墙阻止了连接。
- 本地防火墙 (iptables) 阻止了连接。请检查
iptables -L
您是否安装了任何规则。 - 如果您有
denyhosts
或fail2ban
安装了,那么您的 IP 可能被列入黑名单。请检查您的/etc/hosts.deny
和相关日志文件。