阅读量:79
SFTP端口设置通用步骤(适用于CentOS、Ubuntu等Linux发行版)
1. 选择新端口
SFTP默认使用22号端口(与SSH服务共享)。为提升安全性,建议选择1024-65535之间的未被占用端口(避免使用知名服务端口,如80、443等)。
2. 备份SSH配置文件
修改前备份原始配置文件,防止配置错误导致服务无法启动:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
3. 编辑SSH配置文件
使用文本编辑器(如nano或vim)打开/etc/ssh/sshd_config文件:
sudo nano /etc/ssh/sshd_config
- 修改端口:找到以
#Port 22开头的行(默认被注释),删除行首的#,将22替换为新端口(如Port 2222); - (可选)优化SFTP子系统配置:确保文件中包含以下内容(用于限制用户到指定目录,增强安全性):
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创建。
4. 重启SSH服务
修改配置文件后,重启SSH服务使更改生效:
- CentOS/RHEL:
sudo systemctl restart sshd - Ubuntu/Debian:
sudo systemctl restart ssh
5. 验证端口修改
使用以下命令检查SSH服务是否在新端口监听:
sudo ss -tuln | grep <新端口> # 如sudo ss -tuln | grep 2222
若输出显示LISTEN状态(如tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN),则说明端口修改成功。
6. 配置防火墙放行新端口
根据服务器防火墙类型,执行对应命令放行新端口:
CentOS(firewalld)
sudo firewall-cmd --permanent --add-port=<新端口>/tcp # 永久添加端口规则
sudo firewall-cmd --reload # 重新加载防火墙配置
Ubuntu(UFW)
sudo ufw allow <新端口>/tcp # 允许新端口通过防火墙
sudo ufw reload # 重新加载UFW配置
SELinux(CentOS)
若系统启用了SELinux,需调整SELinux规则允许新端口:
sudo semanage port -a -t ssh_port_t -p tcp <新端口> # 添加端口到ssh_port_t类型
7. 测试SFTP连接
使用SFTP客户端(如命令行或FileZilla)连接服务器,指定新端口:
sftp -P <新端口> <用户名>@<服务器IP> # 如sftp -P 2222 root@192.168.1.100
输入密码后,若能成功进入SFTP命令行界面(显示sftp>),则说明端口设置完成。
注意事项
- 修改端口前需确认新端口未被其他服务占用(可通过
sudo netstat -tuln查看); - 若使用图形化SFTP客户端(如FileZilla),需在“主机”栏输入
服务器IP:新端口(如192.168.1.100:2222); - 生产环境中,建议同时配置SSH密钥认证(替代密码认证),进一步提升安全性。