温馨提示×

SFTP端口设置步骤是什么

小樊
38
2025-11-09 07:46:01
栏目: 编程语言

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配置文件

使用文本编辑器(如nanovim)打开/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密钥认证(替代密码认证),进一步提升安全性。

0