先修改
[root@localhost ~]# netstat -tulnp|grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3039/sshd
tcp6 0 0 :::22 :::* LISTEN 3039/sshd
[root@localhost ~]# vim /etc/ssh/sshd_config
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 2222
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
[root@localhost ~]# systemctl restart sshd.service
[root@localhost ~]# netstat -tulnp|grep sshd
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 3051/sshd
tcp6 0 0 :::2222 :::* LISTEN 3051/sshd
如果netstat命令没有,可以安装
参考这里http://www.111cn.net/sys/CentOS/65746.htm
[root@localhost ~]# netstat -tulnp|grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3039/sshd
tcp6 0 0 :::22 :::* LISTEN 3039/sshd
[root@localhost ~]# vim /etc/ssh/sshd_config
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 2222
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
[root@localhost ~]# systemctl restart sshd.service
[root@localhost ~]# netstat -tulnp|grep sshd
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 3051/sshd
tcp6 0 0 :::2222 :::* LISTEN 3051/sshd
如果netstat命令没有,可以安装
参考这里http://www.111cn.net/sys/CentOS/65746.htm
或用这种方法
注意!这里的Centos版本是7
step1 修改/etc/ssh/sshd_config
vi
/etc/ssh/sshd_config
#Port 22
//这行去掉#号
Port 20000
//下面添加这一行
step2 修改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
step3 重启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=1000-2000/tcp
执行可以成功
用该命令查询firewall-cmd
--permanent
--query-port=1000/tcp
端口1000没开放
但是如果用firewall-cmd
--permanent
--query-port=1000-2000/tcp查询
又是开发的
实际情况1000端口是没开放
其实跟iptable一样
这里有个问题
语法命令如下:
启用区域端口和协议组合
此举将启用端口和协议的组合。端口可以是一个单独的端口
实际命令如下:
firewall-cmd
执行可以成功
用该命令查询firewall-cmd
端口1000没开放
但是如果用firewall-cmd
又是开发的
实际情况1000端口是没开放