myfreax

如何更改SFTP端口

SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。本文介绍了如何在Linux中更改默认的SFTP端口。 我们还将向您展示如何配置防火墙以允许在新端口上使用

4 min read
By myfreax
如何更改SFTP端口

SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。 它还允许您对远程文件执行各种文件操作并恢复文件传输。

SFTP可以替代旧版FTP协议。 它具有FTP的所有功能,但连接更加安全。

本文介绍了如何在Linux中更改默认的SFTP端口。 我们还将向您展示如何配置防火墙以允许在新端口上使用。

不要将SFTP与FTPS混淆。 两种协议具有相同的目的。 但是,FTPS代表FTP secure,它是对标准FTP协议的扩展,支持TLS。

SFTP使用哪个端口

SFTP是SSH的子系统,并提供与SSH相同级别的安全性。

默认的 SFTP端口为22

更改SFTP端口

更改默认的SFTP/SSH端口会降低自动攻击的风险,从而为您的服务器增加一层额外的安全保护。

保护服务器免受攻击的最佳方法是将防火墙配置为仅允许从受信任的主机访问端口22并设置基于 SSH密钥的身份验证

以下步骤介绍了如何在Linux计算机上更改SSH端口。

选择一个新的端口号

在Linux中,低于1024的端口号是为众所周知的服务保留的,只能由root绑定。 尽管可以将1-1024范围内的端口用于SSH服务以避免端口分配问题,但建议选择1024以上的端口。

此示例显示了如何将SFTP/SSH端口更改为4422,但是您可以选择自己喜欢的任何端口。

调整防火墙

更改SFTP/SSH端口之前,您需要在防火墙中打开新端口。

如果您使用的是UFW(Ubuntu中默认的防火墙),请运行以下命令以打开端口:

sudo ufw allow 4422/tcp

在CentOS中,默认的防火墙管理工具是FirewallD。 要打开端口,请输入以下命令:

sudo firewall-cmd --permanent --zone=public --add-port=4422/tcp

CentOS用户还需要调整SELinux规则以允许新的SSH端口:

sudo semanage port -a -t ssh_port_t -p tcp 4422

如果您使用的是另一个运行iptables的Linux发行版,请打开新的端口:

sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

配置SFTP/SSH

SSH服务器配置存储在/etc/ssh/sshd_config文件中。 使用文本编辑器打开文件:

sudo vim /etc/ssh/sshd_config

搜索Port 22开头的行。 通常,使用井号(#)注释掉该行。然后输入新的SSH端口号:  /etc/ssh/sshd_config

Port 4422

在编辑配置文件时要非常小心。 错误的配置可能会阻止SSH服务启动。

完成后,保存文件并重新启动SSH服务以使更改生效:

sudo systemctl restart ssh

在CentOS中,SSH服务被命名为sshd

sudo systemctl restart sshd

验证SSH守护进程是否在新端口上监听

ss -an | grep 4422

输出应如下所示:

tcp   LISTEN      0        128            0.0.0.0:4422           0.0.0.0:*
tcp   ESTAB       0        0      192.168.121.108:4422     192.168.121.1:57638
tcp   LISTEN      0        128               [::]:4422              [::]:*

使用新的SFTP端口

要指定端口号,请使用-P选项调用 sftp 命令,后跟新的端口号:

sftp -P 4422 username@remote_host_or_ip

如果您使用的是GUI SFTP客户端,只需在客户端界面中输入新端口即可。

结论

默认的SFTP端口是22。但是,您可以将端口更改为所需的任何数字。

如果您定期连接到多个系统,则可以通过在 SSH配置文件中定义所有连接来简化工作流程。

如有任何疑问,请随时发表评论。