以前服务器上用的是ubuntu系统,修改ssh端口的时候很简单,直接在配置文件修改就好了,但是在centos7上修改的时候发现修改端口之后sshd服务不能启动了,如果设置两个端口22和1122的话只能监听到22端口,最后到处查找,最后找到了解决办法:
流程如下:
1、修改sshd配置文件
2、设置防火墙firewall,允许新添加的端口被监听
3、设置selinux,在selinux添加要添加的端口
4、重启sshd服务
详细步骤
系统环境:centos7
step1——修改配置文件
在centos7中,sshd的配置文件路径:/etc/ssh/sshd_config
打开文件:sudo vim /etc/ssh/sshd_config
,修改配置文件需要使用root权限
假设我们要设置1122为sshd端口
在文件中添加如下内容:
Port 1122
然后保存文件,如果现在重启sshd服务,就会发现启动失败,原因就是firewall和semanage都没有配置
step2——设置firewall
设置防火墙的命令如下:
添加想要修改的端口:
firewall-cmd --zone=public --add-port=1122/tcp --permanent
后面的permanent参数是保存配置,如果没有这个参数,重启之后配置就无效了
重启防火墙
firewall-cmd --reload
查看添加端口是否成功,如果添加成功就显示yes,否则就显示no
firewall-cmd --zone=public --query-port=1122/tcp
这样防火墙就设置好了,进行下一步
step3——设置selinux
selinux是一种安全保护机制,很多帖子在这一步的时候建议关闭selinux,如果是在测试服务器上,这样的话比较方便,但是如果在生产服务器上,这样的做法是不可取的
查看selinux允许的ssh端口
semanage port -l | grep ssh
添加1122端口到selinux
semanage port -a -t ssh_port_t -p tcp 1122
查看是否添加成功
semanage port -l | grep ssh
到这一步,所有需要设置的东西都完成了,重启服务就好了
setp4——重启服务
现在就可以重启服务了,
命令:systemctl restart sshd.service
done,现在就完成了配置