本文介绍如何在Linux操作系统中更改默认的SFTP端口,支持Ubuntu、CentOS等发行版,同时还将向您展示如何配置防火墙以允许在新端口上使用。先声明的一点是不要将SFTP与FTPS混淆,因为两种协议具有相同的目的,FTPS代表FTP Secure,它是对标准FTP协议的扩展,支持TLS。
简介 SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件,它还允许您对远程文件执行各种文件操作并恢复文件传输。 SFTP可以替代旧版FTP协议,它具有FTP的所有功能,但连接更加安全。
SFTP使用什么端口 SFTP是SSH的子系统,并提供与SSH相同级别的安全性。 默认的SFTP端口为22。
更改SFTP端口的方法 更改默认的SFTP/SSH端口可以降低自动攻击的风险,从而为服务器增加一层额外的安全保护,防止服务器受到攻击的最佳方法是将防火墙配置为仅允许从受信任的主机访问22端口并设置基于SSH密钥的身份验证。 以下步骤描述了如何在Linux计算机上更改SSH端口。 1.选择一个新的端口号 在Linux中,低于1024的端口号是为知名服务保留的,只能由root绑定,尽管可以将1-1024范围内的端口用于SSH服务以避免端口分配问题,但建议选择1024以上的端口。 本示例说明如何将SFTP/SSH端口更改为4422,但是您可以选择自己喜欢的任何端口。 2.调整防火墙 更改SFTP/SSH端口之前,您需要在防火墙中打开新端口。 如果您正在使用UFW(Ubuntu中的默认防火墙),请运行以下命令以打开端口: sudo ufw allow 4422/tcp 参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程。 而在CentOS中,默认的防火墙管理工具是FirewallD,要打开端口,请输入以下命令: sudo firewall-cmd --permanent --zone=public --add-port=4422/tcp sudo firewall-cmd --reload CentOS用户还需要调整SELinux规则以允许新的SSH端口: sudo semanage port -a -t ssh_port_t -p tcp 4422 参考:使用SELinux强制更改CentOS、RHEL 7/8、Fedora上的SSH端口。 如果您使用的是另一个运行iptables的Linux发行版,请打开新的端口运行: sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT 3.配置SFTP/SSH SSH服务器配置存储在/etc/ssh/sshd_config文件中,使用文本编辑器打开文件: sudo vim /etc/ssh/sshd_config 搜索以22端口开头的行,通常,该行使用井号(#)注释掉,删除哈希号,然后输入新的SSH端口号: Port 4422 注意:编辑配置文件时要非常小心,错误的配置可能会阻止SSH服务启动。 完成后,保存文件并重新启动SSH服务以使更改生效: sudo systemctl restart ssh 在CentOS中,SSH服务名为sshd: sudo systemctl restart sshd 验证SSH守护程序正在侦听新端口: ss -an | grep 4422 输出应如下所示:
使用新的SFTP端口 要指定端口号,请使用-P选项调用sftp命令,后跟新的端口号: sftp -P 4422 username@remote_host_or_ip 如果使用的是GUI SFTP客户端,只需在客户端界面中输入新端口。
结论 默认的SFTP端口为22,但是,您可以将端口更改为所需的任何数字。 如果您定期连接到多个系统,则可以通过在SSH配置文件中定义所有连接来简化工作流程。
相关主题 |