CentOS7修改ssh端口

1、关闭SELinux

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

1 评论
最旧
最新 最多投票
用户头像
kwc
7 年 前

用你的方法终于可以改vutlr的默认端口乐,感激~