Ubuntu日志中的连接失败如何解决
导读:Ubuntu日志中的连接失败排查与修复指南 一、快速定位思路 明确连接类型:是 SSH、数据库、应用对外服务,还是 系统网络 的连接失败。 先查服务端日志,再复现实测,最后改配置并验证。 常用日志路径与命令: 系统日志:/var/log...
Ubuntu日志中的连接失败排查与修复指南
一、快速定位思路
- 明确连接类型:是 SSH、数据库、应用对外服务,还是 系统网络 的连接失败。
- 先查服务端日志,再复现实测,最后改配置并验证。
- 常用日志路径与命令:
- 系统日志:/var/log/syslog、/var/log/kern.log、dmesg
- SSH 认证日志:/var/log/auth.log
- 实时查看:例如 sudo tail -f /var/log/syslog
- 监听端口与连通性:ss -tulpen | grep :端口、netstat -tulpen | grep :端口、nc -zv 主机 端口、telnet 主机 端口
- 网络与路由:ip a、ip route、ping、traceroute/mtr、nslookup/dig
- 防火墙:sudo ufw status、sudo iptables -L -n
- 云环境:检查云厂商的 安全组/防火墙 入站规则是否放行对应端口(如 22/3306/80/443)。
二、SSH 连接失败
- 现象与日志要点
- 提示 Connection refused:常见于 sshd 未运行 或端口不对。
- 提示 Connection timed out:常见于 防火墙/安全组 丢弃包或 监听地址错误。
- 提示 Permission denied (publickey/password):常见于 密钥/密码错误、sshd_config 限制或 权限不当。
- 服务器日志:查看 /var/log/auth.log 中对应时间点的失败原因。
- 排查与修复
- 服务状态:sudo systemctl status ssh(或 sshd),未运行则 sudo systemctl start ssh & & sudo systemctl enable ssh。
- 端口监听:ss -tulpen | grep :22,确认监听在 0.0.0.0:22 而非仅 127.0.0.1。
- 配置核查:/etc/ssh/sshd_config
- Port 22(若改端口需同步防火墙/安全组)
- ListenAddress 0.0.0.0
- PermitRootLogin(按需设为 yes/without-password)
- PasswordAuthentication(使用密码时设为 yes)
- PubkeyAuthentication yes
- 修改后重启:sudo systemctl restart ssh
- 防火墙与安全组:
- UFW:sudo ufw allow 22/tcp 或 sudo ufw allow ssh
- 云实例:在控制台放行对应 TCP 端口 的入站规则
- 客户端侧:
- 详细输出:ssh -vvv user@host -p port
- 指定密钥:ssh -i ~/.ssh/your_key user@host
- 修复权限:chmod 600 ~/.ssh/id_rsa,chmod 700 ~/.ssh,chmod 600 ~/.ssh/authorized_keys
- 指纹变更:ssh-keygen -R hostname
- 其他常见原因:磁盘满(登录/写日志失败)、系统休眠导致断网(见下一节)。
三、数据库与应用连接失败
- 数据库(以 MySQL 为例)
- 服务状态:sudo systemctl status mysql,未运行则启动。
- 配置核对:应用侧 host/port/user/password/db 是否正确,端口是否为 3306。
- 防火墙:如用 UFW,sudo ufw allow 3306/tcp;云上需放行安全组。
- 权限与来源主机:在数据库内执行
- 查看用户:SELECT User, Host FROM mysql.user;
- 授权示例:GRANT ALL PRIVILEGES ON your_db. TO ‘user’@‘client_ip’ IDENTIFIED BY ‘pwd’; FLUSH PRIVILEGES; *
- 连通性测试:从应用所在主机 ping 数据库主机、必要时 telnet db_host 3306。
- 日志与重启:查看数据库错误日志,变更后重启数据库与应用服务。
- Node.js 等应用
- 先看应用日志(如 error.log),再用系统日志定位网络层问题:tail -f /var/log/syslog、/var/log/kern.log。
- 网络诊断:ping/nslookup/dig、traceroute/mtr、ss/netstat、必要时 tcpdump 抓包。
- 防火墙与云安全组:确认出站/入站策略允许应用与依赖服务通信(如 80/443/3306 等)。
四、系统网络与日志常见根因
- 磁盘空间耗尽
- 现象:/var/log 或根分区 100%,导致 syslog 无法写入、会话建立或日志打印失败。
- 排查:df -h、du -sh /var/log
- 处理:清理旧日志(如 /var/log/syslog、/var/log/kern.log)、压缩归档、配置 logrotate;必要时迁移日志目录或扩容磁盘。
- 系统休眠/挂起导致断网
- 现象:一段时间无操作后 NetworkManager 将设备置为 unmanaged/sleep,远程连接断开。
- 日志特征:/var/log/syslog 出现 “NetworkManager … sleep requested … state is now ASLEEP … device … disconnected (reason ‘sleeping’)”。
- 处理:关闭自动休眠/挂起或配置为不管理相关接口;服务器场景建议禁用自动休眠,确保网络持续在线。
- 网络服务异常或设备未管理
- 现象:ip a 看不到有效 IP,或 nmcli d 显示 unmanaged。
- 处理:重启 NetworkManager:sudo systemctl restart NetworkManager;必要时检查 /etc/NetworkManager/NetworkManager.conf 的 managed 配置;使用 sudo dhclient 获取地址;查看 /var/log/syslog 与 dmesg 获取驱动/链路错误线索。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu日志中的连接失败如何解决
本文地址: https://pptw.com/jishu/758840.html
