ssh failed sometimes after connection established: server unexpectedly closed network connection

本文记录了一种解决SSH登录Linux时遇到的'server unexpectedly closed network connection'问题的方法。通过修改sshd_config文件中的UseDNS参数,并重启SSH服务,可以有效解决此连接异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用 ssh 登入 Linux 時,卻發生了 server unexpectedly closed network connection 的狀況。
查詢得到了解決方法,還沒驗證,先記錄備忘一下。
1. 修改 /etc/ssh/sshd_config
將 UseDNS yes 改成 UseDNS no
2. 重啟 ssh 服務
# /etc/init.d/sshd restart

转载于:https://www.cnblogs.com/ericsun/archive/2012/10/12/2721152.html

### 可能的原因分析 当 Navicat 连接数据库时报告 `server unexpectedly closed network connection` 错误,这通常意味着客户端尝试建立连接后被服务器端异常终止。可能原因包括但不限于: - 数据库服务未启动或崩溃 - 防火墙阻止了通信 - SSH隧道配置不正确 (如果适用) - PostgreSQL 或 MySQL 的最大连接数已满 - 存在网络不稳定因素影响数据传输稳定性 [^3] ### 解决方案建议 #### 1. 检查数据库服务状态 确认目标数据库实例正在运行,并监听预期的端口。可以通过命令行工具如 `psql` 对于PostgreSQL或者 `mysql` 客户端对于MySQL来验证这一点。 ```bash # For PostgreSQL sudo systemctl status postgresql.service # For MySQL/MariaDB sudo systemctl status mysql.service ``` #### 2. 排除防火墙干扰 确保没有任何防火墙规则阻挡来自Navicat所在机器的数据包到达数据库服务器上的相应端口。可以临时禁用防火墙来进行测试(注意安全风险),之后再调整具体规则允许必要的流量通过。 ```bash # Temporarily disable firewall on Linux systems sudo ufw disable # Or for firewalld-based distributions like CentOS/RHEL sudo systemctl stop firewalld ``` #### 3. 调整SSH设置(如果有) 如果是经过SSH转发的方式访问,则需检查SSH配置文件 `/etc/ssh/sshd_config` 中的相关参数是否合理,比如增加TCPKeepAlive选项以保持长时间无活动连接存活: ```plaintext ClientAliveInterval 60 ClientAliveCountMax 99999 TCPKeepAlive yes ``` 重启SSH服务使更改生效: ```bash sudo systemctl restart sshd ``` #### 4. 提高数据库的最大连接数量限额 查看并适当提高数据库系统的最大并发连接数目限制,防止因资源耗尽而导致新请求被拒绝接入的情况发生。 对于PostgreSQL而言,编辑其配置文件中的max_connections项;而对于MySQL来说则是修改innodb_thread_concurrency等有关联度较高的变量值。 ```ini # In pgsql.conf for PostgreSQL max_connections = 200 # In my.cnf or equivalent config file for MySQL innodb_thread_concurrency=0 # Disable concurrency throttling ``` 完成上述改动后记得重新加载或重启相应的数据库引擎让新的设定起效。 #### 5. 测试其他客户端工具 利用不同的应用程序去尝试同样的操作可以帮助判断问题是特定于某个程序还是更广泛存在的基础设施层面的问题。例如使用DBeaver或其他图形界面化的管理平台代替Navicat做对比实验。 #### 6. 日志审查 最后但同样重要的是查阅相关日志记录寻找线索。大多数情况下,详细的诊断信息会被记录下来供管理员排查故障之用。关注/var/log下的postgresql.log或是mysqld.err等相关路径下的文档内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值