前言:开启某服务或软件的端口,要从该服务或软件监听的端口(多以修改配置文件为主),SeLinux和防火墙(FireWall)的安全策略下手。如果使用阿里云,腾讯等第三方服务器还需要对管理控制台的安全组下手。

下面进入主题,如果有什么问题请查看下面的补充栏:
第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d)

 vim /etc/ssh/sshd_config

找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成:

Port 22
Port 10086

SH默认监听端口就是22,如果你不强制说明别的端口,”Port 22”注不注释都是开放22访问端口。上面我保留了22端口,防止之后因为各种权限和配置问题,导致连22端口都不能访问了,那就尴尬了。等一切都ok了,再关闭22端口。
Ok,继续,我增加了10086端口,大家修改端口时候最好挑10000~65535之间的端口号,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。

第二步:如果你关闭了SELinux,可以忽略第二步。
先查看SELinux开放给ssh使用的端口

semanage port -l|grep ssh
如果提示:-bash: semanage: command not found,表示没有安装semanage
安装yum -y install policycoreutils-python.x86_64

我的系统打印如下:

[root@izwz98nqtxax20v9gcwk1tz ~]# semanage port -l|grep ssh
ssh_port_t tcp 22

可知,SELinux没有给SSH开放10086端口,那么我们来添加端口:

semanage port -a -t ssh_port_t -p tcp 10086 

完成后,再次查看

semanage port -l|grep ssh  

[root@izwz98nqtxax20v9gcwk1tz ~]# semanage port -l|grep ssh
ssh_port_t tcp 22,10086

如果确认在配置文件中添加了和开放了端口,执行上一步未显示的话无需在意

第三步:如果你关闭了防火墙,可以忽略第三步(不开防火墙会很危险,建议开启)

先查看防火墙是否开启了10086端口:

firewall-cmd --zone=public --query-port=10086/tcp

打印结果如下:

no

表示没有开放端口,这就要添加端口

firewall-cmd --zone=public --add-port=10086/tcp --permanent 

打印结果:
success

重新加载防火墙策略:

firewall-cmd --reload 

第四步:重启SSH服务和防火墙,最好重启一下服务器

systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now

第五步:尝试用10086登录SSH,或者进入该服务器直接本地访问SSH如下:

ssh root@localhost -p 10086  

如果成功,说明10086已经完全可以使用了,接下来你就可以根据上述步骤sshd_config Port22注释掉,SELinux和防火墙(Firewalld)关闭22端口就OK,大工造成!
第六步:修改第三方服务器安全组策略。如果没有第三方服务器,上述已经完成了本文的目标,可以忽略第六步。下面直接上阿里云的示例图:

------------分----------------------------------------------割-----------------------------------------------------线------------
1.查看某端口是否被占用,以10086为例:

netstat -lnp|grep 10086

如果没有任何打印,说明没有被占用。有打印的话,说明被占用了,一般会列出哪个进程占用。
列出所有端口

netstat -ntlp

查看是否开启了SELinux

sestatus -v

如果输出结果为:

SELinux status: disabled

说明有打开,可以通过修改SELinux的配置开启或关闭它:

vim /etc/selinux/config 
找到:
SELINUX=disabled
修改成:
SELINUX= enforcing
重启一下,就OK。

semanage命令无法使用,或说找不到该命令。说明没有配置该命令,可以进行以下命令进行安装:

yum -y install policycoreutils-python.x86_64

关于它的依赖库我就不作赘述,可以百度下更全面的安装semanage教程。
CentOS7防火墙改为firewalld了,而不是iptables,对应的命令也请百度下,这里不作赘述。 

最新文章

  1. 【HDU 5438】Ponds
  2. 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)
  3. java集合类(四)About Set
  4. POJ2301+水~~~~~~
  5. LREM key count value
  6. zepto源码研究 - ajax.js($.ajaxJSONP 的分析)
  7. 关于文件上传的ajax交互
  8. grails项目中(DB的相关操作)
  9. github上传时出现error: src refspec master does not match any解决办法
  10. Filter过滤器 不登陆无法访问其他页面
  11. dpr,ppi,dip,viewport的一些概念
  12. antd card 组件实现鼠标移入移出效果
  13. 2.WF 4.5 流程引擎设计思路
  14. ContextLoaderListener可以不写嘛?
  15. WPF显示图片
  16. js中变量提升(一个是变量,一个是函数表达式都会存在变量提升,函数声明不存在)
  17. 2.启动MySql服务
  18. Java Nashorn--Part 4
  19. python 字符串格式化,使用f前缀
  20. R基本介绍

热门文章

  1. LinkedList,ArrayList,Vector,HashMap,HashSet,HashTable之间的区别与联系
  2. OpenCV学习笔记(5)——颜色空间转换
  3. spring BeanUtils.copyProperties只拷贝不为null的属性
  4. 使用ViewPager实现广告自动轮播的效果
  5. opensatck误删除service项目
  6. 操作MySQL出错提示“BLOB/TEXT column request_data in key specification without a key length”解决办法
  7. linux(centOS7)的基本操作(四) 定时任务——crontab
  8. IE浏览器兼容问题(unset不生效)
  9. 使用boost库获取文件夹下所有文件名字
  10. USACO3.3 A Game【区间dp】