温馨提示×

centos 怎么改 sftp 端口

小樊
62
2026-09-02 22:46:19
栏目: 智能运维

在 CentOS 上修改 SFTP 端口,本质上是修改 SSH(sshd) 的监听端口,因为 SFTP 是通过 SSH 提供的。

下面以 CentOS 7 / 8 / Stream 为例说明。


一、修改 SSH 端口

1. 编辑 sshd 配置文件

sudo vi /etc/ssh/sshd_config

找到这一行(可能被注释):

#Port 22

改成你想要的端口,例如:

Port 2222

✅ 建议先保留 Port 22,新增一行 Port 2222,测试成功后再删掉 22。


二、SELinux 配置(很重要)

CentOS 默认启用 SELinux,不改会导致新端口无法监听。

1. 安装 semanage(如果没有)

sudo yum install -y policycoreutils-python-utils

2. 添加 SFTP 新端口到 SELinux

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

3. 查看是否添加成功

sudo semanage port -l | grep ssh

三、防火墙放行端口

如果是 firewalld(CentOS 7+ 默认)

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

如果是 iptables

sudo iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save

四、重启 SSH 服务

sudo systemctl restart sshd

五、测试 SFTP 连接

sftp -P 2222 user@server_ip

或用 FileZilla:

  • 协议:SFTP
  • 端口:2222

六、确认无误后再关闭 22 端口(可选)

确定新端口可用后,再编辑:

#Port 22
Port 2222

然后重启 sshd 并移除防火墙 22 端口。


常见问题

❌ 连不上

  • SELinux 没配置
  • 防火墙没放行
  • 云服务器安全组没开端口

✅ 查看 sshd 是否在监听

ss -tlnp | grep sshd

如果你用的是 CentOS 6Docker、或者 只限制 SFTP 用户不能 SSH,可以告诉我,我给你更精确的方案。

0