对于Linux服务器而言,其默认的远程访问端口为22。但是,出于安全方面的考虑,一般都会修改该端口。下面我来简答介绍一下如何修改Linux服务器默认的远程访问端口。

对于默认端口而言,其相关的配置位于/etc/ssh/sshd_config配置文件中,我们可以通过如下命令来进行编辑:

vi /etc/ssh/sshd_config

接着找到Port参数,并将其值修改为自己设定的端口即可,如下所示

linux查询端口对应进程_linux查询端口_linux查询端口占用

修改完毕后进行保存,接着执行如下命令重启sshd服务即可:

linux查询端口_linux查询端口占用_linux查询端口对应进程

systemctl restart sshd
或
service sshd restart

不过,有时候会重启sshd服务失败,此时可以通过下面的两个命令来查看对应的日志信息:

systemctl status sshd
journalctl -xe

通过查看日志,发现报了如下所示的错误信息:

linux查询端口_linux查询端口占用_linux查询端口对应进程

通过查询相关资料后发现,重启sshd失败的原因在于修改之后的端口被selinux进行了限制。因为selinux会对服务的一些特殊权限进行限制,当然也包括外部对某个端口的访问。解决的办法有两个,要么直接关闭selinux,要么就在selinux中为sshd新增指定的端口。

对于直接关闭而言,该方案简单而有效。具体的做法大家可以参考我之前的一篇文章:在CentOS7上禁用或关闭selinux的方法。但是,这会使得系统的安全性有所降低linux查询端口,因此在生产环境中要避免。

对于新增sshd指定端口而言,虽然实现麻烦,但胜在保障了安全。下面我来简单介绍一下如何在selinux中新增sshd的指定端口。

linux查询端口_linux查询端口占用_linux查询端口对应进程

首先需要执行如下命令来安装一个工具:

 yum -y install policycoreutils-python

安装完毕后执行如下命令来查看selinux中对sshd设置的默认端口:

semanage port -l|grep ssh

执行结果如下所示:

linux查询端口_linux查询端口占用_linux查询端口对应进程

从结果可知,selinux确实对sshd进行了限制,也就是限制其端口只能为22。此时我们可以执行如下命令来新增一个端口linux查询端口,如:10086:

semanage port -a -t ssh_port_t -p tcp 10086

linux查询端口_linux查询端口占用_linux查询端口对应进程

执行完毕后,再次使用之前的命令查询sshd对应的端口,查询结果如下所示:

linux查询端口_linux查询端口占用_linux查询端口对应进程

最后执行如下的命令让防火墙放行该端口即可:

# 防火墙放行端口
firewall-cmd --add-port=10086/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload

当然,如果需要知晓更详细地关于防火墙的操作,可以参考我的另一篇文章:Linux系统中配置防火墙放行某个端口。

到此,Linux服务器远程访问端口就已经修改完毕。