远程连接linux服务器失败?明明能ping通却连不上怎么回事,Linux服务器远程连接失败,ping通却无法连接的排查指南

凌晨三点?,盯着屏幕里绿油油的"Reply from 192.168.1.100: bytes=32 time=1ms TTL=64",老王 *** 砸了下键盘:"网络明明通的!咋 *** 活连不上服务器?!" 这种抓狂瞬间,八成是​​端口、服务、防火墙这三兄弟在暗中使绊子​​?。


? 端口幽灵在作祟

能ping通只证明网没断,但想进服务器得靠"门"(端口)开着。SSH默认走22号门?,可这门可能:

  • ​压根没开​​:管理员手滑改了端口(比如改成2222),你还在傻傻敲22

  • 远程连接linux服务器失败?明明能ping通却连不上怎么回事,Linux服务器远程连接失败,ping通却无法连接的排查指南  第1张

    ​被水泥封 *** ​​:防火墙把22门砌墙了,数据包撞得头破血流也进不去

快速验 *** 法:

telnet 服务器IP 22

连不上?直接报"Connection refused"?那就是门锁了?

不过话说回来,22门开着的服务器也可能拒客——​​SSH服务自己躺平 *** ​​了!用systemctl status sshd瞅瞅,要是显示"inactive (dead)",赶紧吼一嗓子systemctl start sshd把它拍醒


? 防火墙那堵墙

最憋屈的情况:服务器22门大开,SSH服务活蹦乱跳,可数据包 *** 活进不来!​​八成是防火墙在当门神​​:

  • 本地防火墙(iptables/firewalld)可能设了拦截咒

  • 云服务器更坑爹——控制台还有个​​安全组规则​​,得手动放行22端口

救急口诀:

bash复制
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # 本地防火墙开闸  service iptables restart                     # 重启生效

⚠️注意:云平台得去网页控制台操作,光敲命令不好使!


? 输密码老报错?小心钥匙对不上

用户名密码输八百遍都错?别急着怪手 *** !​​服务器可能压根没开密码登录​​——现在流行密钥认证。症状包括:

  • 反复提示"Permission denied"

  • 明明密码没错却登不上

查配置文件/etc/ssh/sshd_config

PasswordAuthentication yes这行被注释了?#号删掉!

改完记得service sshd restart重启服务

密钥登录更邪门——​​客户端私钥权限太开放也会被拒​​!必须锁成600权限:

bash复制
chmod 600 ~/.ssh/id_rsa  # 钥匙串捂严实了才给用

? 那些深坑冷知识

  1. ​IP地址玩变身​​:服务器网卡配置了多个IP?SSH可能只监听其中一个,试试ss -tnlp | grep :22找它到底蹲在哪个IP上

  2. ​SELinux搞事情​​:这尊大神偶尔抽风拦SSH,临时关掉试试:setenforce 0

  3. ​连接数爆了​​:服务器被挤爆时会拒新客,SSH配置里MaxStartups值调大点或许能救急

有个玄学现象至今没搞懂:​​为什么内网telnet通22端口,外网 *** 活连不上?​​ 不同工具检测结果还打架... 具体机制待进一步研究?


老王最后发现是云平台安全组忘开22端口。他瘫在椅子上苦笑:"能ping通顶个?用,门缝都不给留!" 服务器这玩意儿吧——​​门开着,人在;门关着,人疯​​? 哦对了,下次记得先问三句:端口开没?服务活没?防火墙跪没?