Xshell连接Ubuntu失败排查指南:从SSH服务到防火墙设置

发布时间:2026/5/19 14:11:46

Xshell连接Ubuntu失败排查指南:从SSH服务到防火墙设置 1. 为什么Xshell连不上Ubuntu先别急着重装系统每次看到Connection failed的红色报错提示我都想起自己刚入门时对着屏幕干着急的样子。其实Xshell连接Ubuntu失败就像手机连不上WiFi90%的情况都不是硬件问题。最常见的原因集中在四个层面SSH服务没启动就像没开WiFi开关、防火墙阻拦类似家长控制、配置错误输错密码、网络不通网线没插好。我处理过上百次这类问题发现新手最容易犯的错误是直接跳到第三步检查配置却忘了最基础的SSH服务状态检查。正确的排查顺序应该是服务状态→防火墙→配置→网络。接下来我会用做菜的过程来比喻带你一步步定位问题所在。2. SSH服务你的数字大门锁好了吗2.1 检查SSH服务是否安装就像做菜前要确认有锅具一样首先确认Ubuntu是否安装了openssh-server。在终端输入systemctl status ssh如果看到Unit ssh.service could not be found说明连锅都没有。这时需要sudo apt update sudo apt install openssh-server安装过程就像网购厨具大约需要1-3分钟。完成后服务会自动启动默认监听22端口——这相当于给服务器装了门锁。2.2 服务运行状态诊断安装后再次检查状态正常应该看到绿色active (running)字样。如果显示inactive手动启动它sudo systemctl start ssh我遇到过服务反复停止的情况通常是端口冲突。可以用ss -tulnp | grep 22查看22端口占用情况。如果发现其他程序占用可以修改SSH端口就像给大门换把锁。3. 防火墙你家的防盗门开缝了吗3.1 UFW防火墙检查Ubuntu默认的防火墙工具是UFW输入sudo ufw status如果看到Status: active说明防火墙已启用。这时需要放行SSHsudo ufw allow ssh # 或者指定端口 sudo ufw allow 22/tcp有个实用技巧sudo ufw app list可以查看所有预设规则就像查看门禁系统的白名单。3.2 临时禁用测试如果怀疑防火墙问题可以临时关闭测试sudo ufw disable测试完记得重新启用sudo ufw enable注意生产环境不要长期关闭防火墙我见过有人关了防火墙后服务器被挖矿程序入侵就像出门不锁门结果家里被搬空。4. SSH配置钥匙和锁匹配吗4.1 关键配置文件检查用nano或vim编辑配置文件sudo nano /etc/ssh/sshd_config重点关注三个参数Port 22确认与Xshell设置的端口一致PermitRootLogin yes允许root登录测试用生产环境建议禁用PasswordAuthentication yes允许密码登录修改后要重启服务sudo systemctl restart ssh4.2 配置陷阱排查曾经有客户把Port 22写成port 22导致连接失败——Linux配置对大小写敏感。另外注意配置行不能有前导空格就像YAML文件格式要求。建议修改前备份原文件sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak5. 网络连接路通了吗5.1 基础网络测试在Windows端cmd执行ping 192.168.x.x如果超时检查双方是否在同一局域网网线/WiFi连接状态虚拟机网络模式NAT/桥接有个快速判断技巧如果能ping通但连不上SSH问题在服务端配置如果ping都不通就是网络层问题。5.2 高级网络诊断使用telnet测试端口连通性telnet 192.168.x.x 22看到Connected说明端口开放Connection refused可能是服务没启动Timed out可能是防火墙阻拦。如果没telnet客户端可以用PowerShell的Test-NetConnectionTest-NetConnection 192.168.x.x -Port 226. 那些年我踩过的坑有一次客户坚持说配置没问题后来发现是Xshell会话配置里误勾选了代理。还有次Ubuntu服务器在AWS上默认安全组没放行22端口。最离奇的是碰到过系统时间不同步导致SSH拒绝连接用date命令检查才发现时间差了三年。建议每次修改配置后用sudo tail -f /var/log/auth.log实时查看认证日志就像看门禁系统的监控录像。看到Accepted password就说明成功了看到Failed password就要检查密码或密钥。

相关新闻