SFTP端口设置通用步骤(适用于CentOS、Ubuntu等Linux发行版)
SFTP默认使用22号端口(与SSH服务共享)。为提升安全性,建议选择1024-65535之间的未被占用端口(避免使用知名服务端口,如80、443等)。
修改前备份原始配置文件,防止配置错误导致服务无法启动:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
使用文本编辑器(如nano或vim)打开/etc/ssh/sshd_config文件:
sudo nano /etc/ssh/sshd_config
#Port 22开头的行(默认被注释),删除行首的#,将22替换为新端口(如Port 2222);Subsystem sftp internal-sftp
Match Group sftpgroup # 仅允许sftpgroup组的用户使用SFTP
ChrootDirectory /home/%u # 将用户限制在其家目录(chroot环境)
ForceCommand internal-sftp # 强制使用SFTP,禁止SSH shell访问
AllowTcpForwarding no # 禁止TCP转发
X11Forwarding no # 禁止X11转发
注:若未创建
sftpgroup组,需先执行sudo groupadd sftpgroup创建。
修改配置文件后,重启SSH服务使更改生效:
sudo systemctl restart sshd
sudo systemctl restart ssh
使用以下命令检查SSH服务是否在新端口监听:
sudo ss -tuln | grep <新端口> # 如sudo ss -tuln | grep 2222
若输出显示LISTEN状态(如tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN),则说明端口修改成功。
根据服务器防火墙类型,执行对应命令放行新端口:
sudo firewall-cmd --permanent --add-port=<新端口>/tcp # 永久添加端口规则
sudo firewall-cmd --reload # 重新加载防火墙配置
sudo ufw allow <新端口>/tcp # 允许新端口通过防火墙
sudo ufw reload # 重新加载UFW配置
若系统启用了SELinux,需调整SELinux规则允许新端口:
sudo semanage port -a -t ssh_port_t -p tcp <新端口> # 添加端口到ssh_port_t类型
使用SFTP客户端(如命令行或FileZilla)连接服务器,指定新端口:
sftp -P <新端口> <用户名>@<服务器IP> # 如sftp -P 2222 root@192.168.1.100
输入密码后,若能成功进入SFTP命令行界面(显示sftp>),则说明端口设置完成。
sudo netstat -tuln查看);服务器IP:新端口(如192.168.1.100:2222);