温馨提示×

怎么测试CentOS SFTP连通

小樊
46
2026-07-08 18:22:26
栏目: 智能运维

CentOS 上测试 SFTP 连通性,可以从本机、同网段、跨网络多个层面来排查。下面给你一套常用且实用的测试方法,从简单到深入。


一、确认 SFTP 服务是否运行(CentOS 本机)

1️⃣ 检查 SSH / SFTP 服务状态

SFTP 依赖 sshd,先确认服务是否启动:

systemctl status sshd

正常应看到:

Active: active (running)

如未启动:

systemctl start sshd
systemctl enable sshd

2️⃣ 确认监听端口(默认 22)

ss -lntp | grep ssh

或:

netstat -lntp | grep ssh

应看到类似:

LISTEN 0 128 0.0.0.0:22

二、本机测试 SFTP 连通(最基础)

1️⃣ 使用 sftp 命令测试

sftp localhost

或指定用户:

sftp user@localhost

✅ 成功示例:

sftp>

❌ 失败常见提示:

  • Connection refused → 服务未启动
  • Permission denied → 用户名/密码错误
  • Connection timed out → 防火墙或网络问题

三、从客户端机器测试 SFTP(最常用)

1️⃣ 使用 sftp 命令

sftp user@centos_ip

示例:

sftp root@192.168.1.10

2️⃣ 使用 ssh 先测试(SFTP 基于 SSH)

ssh user@centos_ip

✅ 能 SSH 登录 → SFTP 基本没问题
❌ SSH 不通 → SFTP 一定不通


四、端口连通性测试(排查网络 / 防火墙)

1️⃣ 测试端口是否通(推荐)

telnet centos_ip 22

或:

nc -vz centos_ip 22

✅ 成功:

Connected to centos_ip.

❌ 失败:

Connection refused / timed out

2️⃣ 检查 CentOS 防火墙

firewall-cmd --list-all

确认是否放行 22 端口:

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

或直接放行端口:

firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload

五、检查 SELinux(常见问题)

查看状态:

getenforce

如果是 Enforcing,可能影响 SFTP 访问:

setenforce 0   # 临时关闭(测试用)

⚠️ 生产环境不建议直接关闭,可配置 SELinux 规则。


六、查看 SFTP 日志(详细排错)

journalctl -u sshd -f

或:

tail -f /var/log/secure

常见错误:

  • Failed password
  • Connection closed
  • Bad ownership or modes for chroot path

七、测试 SFTP(非交互 / 脚本方式)

1️⃣ 使用 curl

curl -u user:password sftp://centos_ip/

八、常见错误速查表

现象 原因
Connection refused sshd 未启动
Connection timed out 防火墙 / 网络
Permission denied 用户名/密码错误
能 SSH 不能 SFTP 配置限制(ForceCommand)
chroot 后无法登录 目录权限问题

九、快速自检清单 ✅

systemctl status sshd
ss -lntp | grep 22
firewall-cmd --list-all
sftp user@ip

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ SFTP 是否使用 chroot / 非 root 用户
  • ✅ 报错信息原文

我可以帮你精准定位问题

0