CentOS SFTP如何排查网络问题
导读:CentOS SFTP网络问题排查清单 一 快速分层定位 链路层与端口可达:先确认客户端到服务器的网络是否通,再确认 SSH 端口(默认 22/TCP) 是否开放。 命令示例: ping your_server_ip telnet y...
CentOS SFTP网络问题排查清单
一 快速分层定位
- 链路层与端口可达:先确认客户端到服务器的网络是否通,再确认 SSH 端口(默认 22/TCP) 是否开放。
- 命令示例:
- ping your_server_ip
- telnet your_server_ip 22
- nc -vz your_server_ip 22
- 命令示例:
- 服务端进程与端口监听:确认 sshd 正在运行并监听正确端口。
- 命令示例:
- systemctl status sshd
- ss -tnlp | grep :22
- 命令示例:
- 防火墙与安全组:放行 22/TCP(或自定义端口),包括本机防火墙与云厂商安全组。
- 命令示例(firewalld):
- firewall-cmd --list-all
- firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
- 或按端口:firewall-cmd --permanent --add-port=22/tcp & & firewall-cmd --reload
- 命令示例(firewalld):
- 服务配置与日志:核对 SFTP 子系统配置并查看认证日志定位失败原因。
- 配置核对:grep ‘^Subsystem’ /etc/ssh/sshd_config
- 日志查看:tail -f /var/log/secure | grep sshd
二 常见症状与对应处理
-
连接超时或端口不通
- 可能原因:网络不通、服务器未监听 22/TCP、本机或云安全组/外部防火墙拦截。
- 处理:先 ping 与 telnet/nc 验证;确认 ss -tnlp | grep :22 有监听;放行防火墙与云安全组对应端口。
-
连接被拒绝(Connection refused)
- 可能原因:sshd 未运行、端口不对或被别的程序占用。
- 处理:systemctl start sshd;确认 Port 配置与监听端口一致;检查端口占用并释放或更换端口。
-
认证失败(Permission denied)
- 可能原因:用户名/密码或密钥错误、用户被限制登录、目录/权限不当、密钥未正确部署。
- 处理:核对凭据;检查 /etc/ssh/sshd_config 对该用户的限制;确保用户家目录与 .ssh 权限正确(如 700/600);公钥已加入 ~/.ssh/authorized_keys。
-
登录后很快断开或卡顿
- 可能原因:加密算法/密钥交换不匹配、服务器资源紧张、连接数限制、外部链路抖动。
- 处理:客户端用 ssh -vvv 看协商过程;必要时调整算法;检查系统资源(top);放宽 MaxStartups;排查网络质量。
三 关键配置与日志检查
-
SSH 服务与端口
- 确认运行状态与开机自启:systemctl status sshd;systemctl enable sshd
- 确认监听端口:ss -tnlp | grep :22(若修改了端口,需与客户端一致)
-
SFTP 子系统配置
- 编辑 /etc/ssh/sshd_config,确保包含:
- Subsystem sftp /usr/libexec/openssh/sftp-server
- 或使用内部 SFTP:Subsystem sftp internal-sftp
- 修改后重启:systemctl restart sshd
- 编辑 /etc/ssh/sshd_config,确保包含:
-
认证与用户环境
- 日志定位:tail -f /var/log/secure | grep sshd(关注 Accepted/Failed 与具体报错)
- 密钥登录:~/.ssh/authorized_keys 权限 600,~/.ssh 权限 700,属主正确
- 用户限制:检查 /etc/ssh/sshd_config 中 DenyUsers/AllowUsers/PasswordAuthentication 等
四 防火墙与安全组要点
-
firewalld
- 放行 SSH 服务或端口并重载:
- firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
- 或:firewall-cmd --permanent --add-port=22/tcp & & firewall-cmd --reload
- 验证:firewall-cmd --list-all
- 放行 SSH 服务或端口并重载:
-
云服务器安全组
- 在控制台放行入站 TCP 22(或自定义端口),来源按需要限制为你的办公网段或 0.0.0.0/0(测试环境)
-
备用防火墙(如仍使用 iptables)
- 查看与放行:iptables -L -n | grep 22;按需添加 ACCEPT 规则并保存
五 高级检查与优化
-
SELinux 与 AppArmor
- 查看状态:sestatus;apparmor_status
- 排障时可短暂 setenforce 0 验证是否为 SELinux 引起(确认后请按策略修正而非长期关闭)
-
连接数限制
- 查看:grep MaxStartups /etc/ssh/sshd_config
- 调整示例:MaxStartups 100:30:200(按实际并发调优),然后 systemctl restart sshd
-
资源与算法协商
- 资源:top/vmstat 检查 CPU/内存/IO 是否瓶颈
- 算法:客户端 ssh -vvv 观察协商失败点,必要时在服务器/客户端同步启用兼容算法
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SFTP如何排查网络问题
本文地址: https://pptw.com/jishu/776777.html
