linux默认的ssh端口为22,但有些时候有特殊需求需要更改ssh端口,但是由于linux的selinux和firewall的存在,所以在改端口时不仅要修改sshd_config这个文件,还有在selinux和firewall设置端口,如果直接关掉防火墙和selinux也可以,但是个人不推荐,以下就是Centos 7更改端口的顺序:
一、修改/etc/ssh/sshd_config文件
vim /etc/ssh/sshd_config
找到##Port 22这一行,在下面加一行Port 8888(8888是我要设置的端口号,具体根据自己需求,前提是选定端口可以用)
如果不确定所选端口是否可用可以使用命令查看一下
netstat anp | grep 8888
二、设置防火墙
firewall-cmd --permanent--add-port=8888/tcp
--peimaent:这个参数的作用是持久生效
--add-port:添加端口以及协议
这个命令执行完成后会输出success
设置完成后可以查看一下端口是否开启(在设置防火墙之前也可使用一下命令查看,如果端口开启则不用设置-!但是端口开启还有一种可能是因为其他服务设置的是这个端口,所有一定要确定所选的端口是否能使用)
firewall-cmd --list-ports | grep 8888
输出有端口信息表示设置成功
或者使用命令
firewall-cmd --query-port=8888/tcp
输出yes表示设置成功
三、selinux中添加端口
查看当前selinux开放的ssh端口
semanage port -l | grep ssh
一般会输出
ssh_port_t tcp 22
如果没有这个输出,可能是没有ssh服务
添加端口
semanage port -a -t ssh_port_t -p tcp 8888
执行完成后再查看一下selinux开放的ssh端口
四、重启ssh和firewalld和selinux服务
systemctl restart sshd
systemctl restart firewalld.service
sestatus
重启服务之后尝试连接,如果不行重启之后再试