温馨提示×

linux sftp端口如何改

小樊
45
2026-09-20 07:06:06
栏目: 智能运维

在 Linux 中,SFTP 本身没有独立端口,它依赖 SSH 服务(sshd),所以“改 SFTP 端口”本质是修改 SSH 端口


一、修改 SFTP(SSH)端口步骤

1️⃣ 修改 SSH 配置文件

sudo vi /etc/ssh/sshd_config

找到或添加这一行(如不存在):

Port 2222

示例:将端口改为 2222

✅ 建议:

  • 不要使用 22 与其他服务冲突
  • 可同时保留多个端口:
Port 22
Port 2222

2️⃣ 如果是 SELinux 系统(如 CentOS / RHEL)

允许新端口:

sudo semanage port -a -t ssh_port_t -p tcp 2222

3️⃣ 防火墙放行端口

firewalld(CentOS 7+)

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

ufw(Ubuntu)

sudo ufw allow 2222/tcp

4️⃣ 重启 SSH 服务

sudo systemctl restart sshd

二、客户端使用新端口连接 SFTP

sftp -P 2222 user@ip

或在 ~/.ssh/config

Host myserver
    HostName ip
    Port 2222
    User user

三、仅限制 SFTP 用户(可选)

如果只想 限制某些用户用 SFTP 且用不同端口(高级用法):

  • 需要 多实例 sshd
  • 新建 /etc/ssh/sshd_sftp.conf
  • 单独监听端口
  • 使用 Subsystem sftp internal-sftp

⚠️ 一般场景不需要这么做


四、常见坑

❌ 改完端口连不上
✅ 检查:

  • 防火墙
  • SELinux
  • 云服务器安全组
  • SSH 是否真的监听新端口:
ss -tlnp | grep ssh

如果你告诉我:

  • 系统(Ubuntu / CentOS / Rocky / Debian)
  • 是否云服务器
  • 是否只给 SFTP 用

我可以给你更精确的配置方案

0