MENU

CentOS 7修改SSH端口

March 26, 2017 • 网络技术

之前Linode降价(提升同价位配置)的时候,买了个Tokyo2,因为看评论说很一般,我也一直没有去装系统什么的,就一直放着,前几天想起这个小鸡,想着吃灰也是吃灰,不如装出来看看呗。然后抱着不折腾就会死的心态,试了试CentOS 7,发现连SSH登陆端口都不会修改了,赶紧学习了一下新姿势。

其实,修改CentOS 7的端口一共涉及3个方面:

1.修改/etc/ssh/sshd_config(这个和之前的是一样的)

2.修改SELinux的配置

3.修改防火墙的设置

第一个和CentOS 6是一样的:

vi /etc/ssh/sshd_config

找到#Port 22,去掉前面的#并修改后面的数字为想设置的端口即可。

第二个是修改SELinux的配置,具体命令是:

semanage port -l | grep ssh

但是我打这个命令遇到了报错

提示:-bash:semanage:command not found,意思是没有semanage命令,怎么解决呢?很简单:

yum provides /usr/sbin/semanage    //查找semanage命令的包

yum -y install policycoreutils-python    //安装policycoreutils-python

然后再回到前面的:

semanage port -l | grep ssh

你会发现,此时就正常了,会反馈当前SELinux允许的SSH端口:

然后我们添加:

semanage port -a -t ssh_port_t -p tcp XXXX    //XXXX为你需要添加的端口

然后又用前面的命令查看,主要是确认是否添加成功了:

semanage port -l | grep ssh

不出意外应该是好了,那么SELinux的修改也就完成了,下面是防火墙。

首先添加端口到防火墙:

firewall-cmd --zone=public --add-port=XXXX/tcp --permanent    //XXXX为你需要添加的端口

此时遇到报错:FirewallD is not running,防火墙没运行,需要手动来:

systemctl start firewalld.service

然后重新输入上面的那个命令,应该就不会报错而输出success,添加完接下来重启防火墙:

firewall-cmd --reload

最后是确认添加是否成功:

firewall-cmd --zone=public --query-port=XXXX/tcp    //XXXX为你前面添加的端口

添加成功会返回yes,否则返回no,不出意外到这里也没什么问题了。

至此,需要修改的三个部分应该是都改完了,最后重启一下SSH,然后开个新的窗口连接过去试一下吧。

重启SSH:

systemctl restart sshd.service

Last Modified: July 11, 2022
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

已有 1 条评论
  1. 阿童木 阿童木

    这个实在是太有用了!爱折腾的Jevin,谢谢你,从你这里有了解决问题的启发!