描述:在购买的腾讯云服务器,自己选择的安装镜像CentOS 7.2 64位,然后自己搭建好环境后,发现有限端口没有启动
尤其是默认的网络访问端口:80没有自己启用。一开始以为是防火墙的问题。这里面遇到了一些小坑
1 CentOS 7.2 64位 之后的防火墙没有直接使用service 指令,修改成了systemctl指令
2 首先查看centos自带的防火墙 firewalld.server,我直接对其关闭,执行标红部分
# 查看状态
$ systemctl status firewalld.service
$ systemctl start firewalld.service
$ systemctl reload firewalld.service
$ systemctl stop firewalld.service
# 配置是否开机启动
$ systemctl enable firewalld.service //开机启动
$ systemctl disable firewalld.service //禁止开启启动
3 然后启动iptables防火墙服务,发现该服务不存在,那么就yum安装
$ yum install iptables-services
4 编辑iptables的规则文件
$ vi /etc/sysconfig/iptables
5 添加80端口的开放规则
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
6 重启iptables
$ systemctl restart iptables.service //或者使用 service iptables restart
7 外部telnet 下该服务的80端口是否开放,结果发现还是不行,22端口是没有问题的,说明防火墙是开启有效的
但是80端口无法访问,然后在服务本地使用telnet localhost 80 也是不行(默认系统是没有telnet指令的,需要yum install -y telnet)
8 lsof -i:80 发现没有80端口,此时想到是80端口没有启动,解决方法,安装httpd管理包
# 查看80是否备用,结果显示80没有启动
$ lsof -i:80
# 然后安装httpd包,成功安装后,他会自动启动80端口
$ yum install -y httpd
$ service httpd start //开启80端口
# 然后再次查看80端口,发现已经启动,此时在使用telnet 此时80端口,发现已经可以访问
总结: 在外部此时一个端口是否开放的时候,要做几个步骤
1 检查服务器是否开启了防火墙
2 防火墙开启后,检查下使用的是哪种防火墙,是系统自带的,还是自己安装的,这里有两种
2.1 centos自带的 firewall.service ,是默认的,一般我们不使用,直接安装上面的步骤永久停止
2.2 然后使用iptables防火墙服务,如果系统没有,那么就yum install -y iptables-service 进行安装
然后会在 /etc/sysconfig/iptables 中生成防火墙规则,然后添加防火墙规则,添加开放的端口
3 在开启iptables后,并添加了开放规则,此时检查是否可以使用
4 如果不通,再次检测添加的端口是否启动
$ lsof -i:<port>
查看该接口是否开启,如果没有开启,那么就进行启动
5 但是对于80端口如果在4中没有启动,需要启动httpd服务,如果该服务在系统中不存在,那么就需要下载安装
$ yum install -y httpd
$ service httpd start //开启80端口
此时再次尝试80端口,发现可以使用。