之前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
这个实在是太有用了!爱折腾的Jevin,谢谢你,从你这里有了解决问题的启发!