1、关闭SELinux
首先需要确认你的系统中的SELinux是否开启了,如果开启了需要关闭才能够修改端口否则无效。因为笔者之前用的vultr家的VPS默认并没有带SELinux所以就没有注意到这个问题,之后迁移到linode之后才意识到。
检测的方法是使用命令sestatus,如果你出现了与下图一样SELInux status: enable的话就需要先去关闭SELinux才可以进行之后的步骤。

如果你出现的是下图,SELInux status: disabled的话可以省略该步骤。

这里我们直接将SELinux彻底关闭,禁止其开启机动。我们直接编辑/etc/selinux/config文件
vim /etc/selinux/config
将该文件里面的SELINUX=enforcing改成SELINUX=disabled

之后我们reboot重启系统即可。
2、添加自定义ssh端口
我们打开配置文件
vim /etc/ssh/sshd_config
之后找到#Port 22这行,将#注释取消掉,然后再在下面添加一个新的端口,随便起,但是不超过65535,推荐高于10000,因为一万以下的很多都是系统或者其它插件使用的端口,以免造成冲突。笔者以端口23333为例。

之后按ESC,:wq保存。
请注意第一次的时候请务必将Port 22取消注释,如果你没有这么做,结果新的端口还没有成功连上你就要悲剧了=、=其实也不算很悲剧,你可以去VPS运营商提供的控制台那里改回来就好了。╮(╯_╰)╭
还有就是Port需要注意大小写,Linux系统严格区分大小写。
保存后重启SSH即可:
systemctl restart sshd.service
3、添加防火墙规则
这里笔者将CentOS7中的firewalld防火墙替换成了iptables,所以这里以iptables为例。
编辑配置文件:
vim /etc/sysconfig/iptables
添加下面这条到22端口那条的下面,注意修改端口为你设定的端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 23333 -j ACCEPT
之后重启防火墙
systemctl restart iptables.service
4、测试连接
上述全都做完之后,使用新的SSH端口号进行连接,若连接成功,则再次编辑/etc/ssh/sshd_config文件将里面的Port 22加上#注释掉,然后使用systemctl restart sshd.service重启SSH服务即可。
参考资料:
- https://jingyan.baidu.com/article/ac6a9a5e3c6b6b2b653eacce.html
用你的方法终于可以改vutlr的默认端口乐,感激~