在 CentOS 上修改 SFTP 端口,本质上是修改 SSH(sshd) 的监听端口,因为 SFTP 是通过 SSH 提供的。
下面以 CentOS 7 / 8 / Stream 为例说明。
sudo vi /etc/ssh/sshd_config
找到这一行(可能被注释):
#Port 22
改成你想要的端口,例如:
Port 2222
✅ 建议先保留
Port 22,新增一行Port 2222,测试成功后再删掉 22。
CentOS 默认启用 SELinux,不改会导致新端口无法监听。
sudo yum install -y policycoreutils-python-utils
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo semanage port -l | grep ssh
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save
sudo systemctl restart sshd
sftp -P 2222 user@server_ip
或用 FileZilla:
确定新端口可用后,再编辑:
#Port 22
Port 2222
然后重启 sshd 并移除防火墙 22 端口。
ss -tlnp | grep sshd
如果你用的是 CentOS 6、Docker、或者 只限制 SFTP 用户不能 SSH,可以告诉我,我给你更精确的方案。