为什么我可以ping服务器但不能通过SSH连接?

时间:2012-10-03 19:12:08

标签: ssh ping

当我ping我的服务器时,它会响应:

user@localhost:~$ ping my.server
PING my.server (111.111.111.11) 56(84) bytes of data.
64 bytes from my.server (111.111.111.11): icmp_req=1 ttl=42 time=38.4 ms
64 bytes from my.server (111.111.111.11): icmp_req=2 ttl=42 time=50.0 ms
64 bytes from my.server (111.111.111.11): icmp_req=3 ttl=42 time=58.6 ms
^C
--- my.server ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 38.419/49.037/58.637/8.287 ms

但是当我尝试ssh(我经常做的事情,以及过去几个小时在同一个连接上做的事情)时,它会挂起:

user@localhost:~$ ssh my.server

http://speedtest.net表示我的连接下载速度为1.5 Mbps,上传速度为0.4 Mbps。

是否有ssh挂起的原因?


答案中提供的建议的结果

来自@ nsfyn55

user@localhost:~$ telnetmy.server 22 
Trying 111.111.111.11...
Connected to my.server
Escape character is '^]'.
SSH-2.0-OpenSSH_4.3
Connection closed by foreign host.
来自@vahid:

user@localhost:~$ nc -v -w 1 111.111.111.111 -z 22
nc: timeout cannot be negative

3 个答案:

答案 0 :(得分:20)

ping(ICMP协议)和ssh是两种不同的协议。

  1. 可能是ssh服务未运行或未安装

  2. 防火墙限制(本地服务器如iptables甚至sshd配置锁定)或(外部防火墙保护流量到网络托管111.111.111.111)

  3. 首先检查ssh端口是否已启动

    nc -v -w 1 111.111.111.111 -z 22
    

    如果成功,那么ssh应该通信,否则它将永远不会工作,直到解除限制或启动ssh

答案 1 :(得分:6)

找出两条信息

  • 什么是目标ssh服务器的主机名或IP
  • ssh守护程序侦听的端口(默认为端口22)

$> telnet <hostname or ip> <port>

假设守护程序已启动并正在运行并正在侦听该端口,则应该建立一个telnet会话。可能的原因:

  • ssh守护程序未运行
  • 主机使用其软件防火墙阻止目标端口
  • 某些中间网络设备阻止或过滤目标端口
  • ssh守护程序正在侦听非标准端口
  • 已配置TCP包装并过滤掉源主机

答案 2 :(得分:-3)

在服务器上,尝试:

netstat -an 

并查看是否已打开tcp port 22(在Windows中使用findstr或在Unix中使用grep