现象:为保证服务器远程连接的安全性,修改ssh远程端口从默认22端口至其他端口
 
修改/etc/ssh/sshd_config
 
vi /etc/ssh/sshd_config
 
#Port 22 //这行去掉#号
 
Port 20000 //下面添加这一行
 
重启ssh服务systemctl restart sshd.service
 
使用ssh工具连接服务器失败
 
原因:
 
服务器操作系统版本为Centos 7
 
[root@vsbmanager ~]# getenforce
 
Enforcing
 
解决方法:
 
①关闭selinux,修改配置文件vi /etc/selinux/config
 
SELINUX=disabled
 
关闭SELinux,重启服务器,远程连接正常。
 
②使用以下命令查看当前SElinux允许的ssh端口:
 
semanage port -l | grep ssh
 
添加20000端口到SELinux
 
semanage port -a -t ssh_port_t -p tcp 20000
 
然后确认一下是否添加进去
 
semanage port -l | grep ssh
 
如果成功会输出
 
ssh_port_t tcp 20000, 22
 
重启ssh
 
systemctl restart sshd.service
 
不过上述方法仅仅是在ssh中设置端口,还要在防火墙firewalld中放行才是
 
CentOS 7防火墙换用Friewalld了
 
其实跟iptable一样就命令不一样
 
这里有个问题如果要添加范围例外端口如1000-2000
 
语法命令如下:
 
启用区域端口和协议组合
 
firewall-cmd [--zone=] --add-port=[-]/ [--timeout=]
 
此举将启用端口和协议的组合。端口可以是一个单独的端口 或者是一个端口范围-。协议可以是tcp或udp。
 
实际命令如下:
 
firewall-cmd --permanent --add-port=20000/tcp
 
执行可以成功。