如何在多个端口上运行 SSH 服务器
sudo semanage port -a -t ssh_port_t -p tcp 2022
如果您的SSH服务器连接到多个网络,需要您的SSH服务器侦听其他网络的不同端口,那么在多个端口上 运行SSH服务器可能会有所帮助。
SSH默认配置为侦听端口22并且仅侦听端口22。您可以将SSH服务器配置为在其他端口上运行,扩展相同的方法允许您将SSH服务器配置为在多个端口上运行。
在多个端口上运行 SSH 服务器的步骤:
启动您首选的终端应用程序。
检查您计划分配给SSH服务的端口是否尚未使用。
$ ss -tlnp | grep -E “22|2022”
SSH服务当前在端口22上运行,这是预期的。
使用您喜欢的文本编辑器打开sshd配置文件。
$ sudo vi /etc/ssh/sshd_config
搜索端口选项并将值设置为您想要的端口。
Port 22
Port 2022
请注意Port指令的 multiple 声明,其中SSH将侦听所有列出的端口。
确保该行不以#开头,因为这意味着该行已被注释并将被忽略。
配置防火墙以允许访问配置的端口(可选,如果启用了防火墙)。
sudo ufw allow 2022/tcp # Ubuntu/Debian
#Redhat
sudo firewall-cmd --add-port=2022/tcp --permanent
sudo firewall-cmd --reload
假设默认端口22已经配置了正确的防火墙配置。必要时添加。
配置selinux以允许SSH在配置的端口上运行(可选,如果使用selinux)。
$ sudo semanage port -a -t ssh_port_t -p tcp 2022 #这个非常重要必须要执行,否则无法生效.
semanage可以使用以下命令安装在CentOS或Red Hat系统上:
sudo yum install --assumeyes policycoreutils-python
假设默认端口22已经配置了正确的selinux策略。必要时添加。
重启sshd服务。
$ sudo systemctl restart sshd
相关:如何启动、重启和停止 SSH 服务器服务
检查sshd现在是否在所有配置的端口上运行。
$ ss -tlnp | grep 22