ssh: connect to host mas port 22: Connection refused
时间: 2025-04-23 18:00:23 浏览: 98
### 解决 SSH 连接被拒绝的问题
当遇到 SSH 连接请求被主机 `mas` 拒绝的情况时,通常会显示错误消息:“Connection refused”。这可能是由于多种原因引起的。
#### 可能的原因分析
端口 22 被防火墙阻止是一个常见因素。如果服务器上的防火墙配置不允许外部访问该端口,则客户端尝试建立连接时会被立即拒绝[^1]。此外,SSH服务未启动或监听其他端口也会造成此类现象。还有可能是因为 IP 地址被列入黑名单或是存在网络路由问题等状况所致。
#### 排查方法
为了确认具体原因并采取相应措施:
- **验证 SSH 服务状态**
使用命令行工具检查远程机器上 SSH 守护进程的状态,确保其正在运行并且确实是在等待来自指定接口和端口号 (通常是 TCP/22) 的新连接。
```bash
sudo systemctl status sshd.service
```
- **测试本地回环连接**
尝试在同一台计算机内部通过 localhost 或者 127.0.0.1 来发起 SSH 请求,以此判断问题是发生在本机还是远端。
```bash
ssh -p 22 root@localhost
```
- **查看日志文件**
查看 `/var/log/auth.log` (对于基于 Debian 的系统)或其他位置的日志记录来获取更多关于失败登录尝试的信息。
```bash
tail -f /var/log/auth.log
```
- **调整防火墙设置**
如果发现是防火墙阻挡了流量,可以考虑临时关闭它来进行进一步诊断;当然,在生产环境中更推荐的方式是对规则做适当修改而不是完全禁用防护机制。
对于 iptables 用户来说,可以通过下面这条指令允许所有到目标端口的数据包传入:
```bash
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
```
#### 配置建议
一旦找到了根本原因之后就可以着手解决问题了。如果是简单的配置失误,比如误设成了不同的默认端口或者是不小心把某些必要的选项给忽略了的话,那么只需要编辑相应的配置文件即可恢复正常工作流程。例如更改 `/etc/ssh/sshd_config` 文件中的 Port 行指向正确的数值,并重启服务使改动生效[^2]。
```bash
sudo nano /etc/ssh/sshd_config
# 修改Port为22后保存退出
sudo systemctl restart sshd.service
```
阅读全文
相关推荐


