myfreax
ssh

如何在 Linux 修改 SSH 服务端口

SSH 是一种网络协议,用于与 Linux 系统进行远程安全通信。默认情况下,SSH 服务使用端口 22

3 min read
By myfreax
如何在 Linux 修改 SSH 服务端口
如何在 Linux 修改 SSH 服务端口

SSH 是一种网络协议,用于与 Linux 系统进行远程安全通信。默认情况下,SSH 服务使用端口 22。

您可以通过修改服务器的 SSH 端口来添加额外的安全层,并降低黑客和机器人攻击的风险。

在本教程中,您将学习如何在 Linux 服务器修改 SSH 端口,本教程几乎涵盖所有发行版修改 SSH 服务端口的设置。

选择一个新端口

Linux 系统为常用的服务保留低于 1024 的端口。 您也可以使用 1-1024 范围内的端口作为 SSH 服务的端口。

但建议选择高于 1024 的端口以避免将来出现问题。 您可以为 SSH 服务最多选择 65535 个端口号。

我们将在本教程使用 4567 端口用于 SSH 服务,您可以根据自己的喜欢进行选择,建议选择一个易于记忆的。

设置防火墙

如果您的服务器启用了防火墙,那么您需要在修改之前,也就是使用新的 SSH 端口之前对防火墙进行调整。设置防火墙允许新的 SSH 端口的流量。

FirewallD 是 CentOS 系统默认的防火墙管理工具。您可以在 CentOS 服务器运行以下命令打开新端口:

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

在基于 CentOS 或 RHEL Linux 的发行版,另一个要求是调整 SELinux 规则允许新的 SSH 端口 4567。您可以运行以下命令来完成 SELinux 设置:

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

在 Ubuntu 系统,默认的防火墙工具是 UFW。运行命令 sudo ufw allow 4567 允许新的 SSH 端口 4567 进行连接:

sudo ufw allow 4567

如果你已经在你的 Linux 服务器安装 iptables 并用作防火墙,你可以运行以下命令打开端口 4567:

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

配置 SSH

在 Linux 中,SSH 服务默认端口存储在 /etc/ssh/sshd_config 文件中。首先,您需要使用您喜欢的文本编辑器打开 SSH 配置文件进行编辑。

在本教程中我们将使用 vim 编辑器,运行命令 sudo vim /etc/ssh/sshd_config:

sudo vim /etc/ssh/sshd_config

现在在文件中搜索以port 22 开头的行。大多数情况下,此行用井号 # 注释掉。 删除 # 并输入您将使用的新 SSH 端口号,而不是标准的 SSH 端口 22。

修改后的最终结果它应该如下所示:

Port 4567

完成上述更改后,保存文件并重新启动 SSH 服务。

sudo systemctl restart ssh

在基于 CentOS 或 RHEL Linux 的发行版中,ssh 服务名称是 sshd,因此您需要运行命令 sudo systemctl restart sshd 来重启 sshd 服务:

sudo systemctl restart sshd

您可以运行命令 ss-an | grep 4567 来验证 SSH 服务是否正在监听新端口 4567:

ss-an | grep 4567

它将打印如下输出:

tcp        LISTEN   0    128       0.0.0.0:4567      0.0.0.0:*
tcp        LISTEN   0    128          [::]:4567         [::]:*

使用新端口连接 SSH 服务器

现在,您已成功修改 SSH 服务的端口。要使用新端口建立连接,您必须使用 SSH 命令的 -p 选项指定端口号。如下所示:

ssh -p 4567 username@remote_ip_address

结论

您已学习如何修改 Linux 系统的 SSH 端口。如果您有任何问题或建议,可以在下面发表评论。