Centos7下防火墙开启 80 443 端口
下一篇: Linux下supervisor安装与使用
前言扯淡
之前在一台 vps 上搭建了 http://google.jiongjun.cc/ ,为了方便访问,直接在 vps 上关闭了防火墙(使得外网可以正常访问 80 和 443 端口)。
今天打算在这台 vps 上安装 ssr,使用的是别人提供的一键安装脚本。当 ssr 安装完成后,测试可以科学上网了,却发现 https://google.jiongjun.cc/ 无法正常访问,检查了下 nginx 服务正常,重启 nginx 后仍然无法访问。查看了 80 和 443 端口处于正常监听状态,在 vps 上 curl 本机,返回 Empty reply from server,如:
[root@dfdf ~]# curl 127.0.0.1 [root@dfdf ~]# curl: (52) Empty reply from server
难道 ssr 和 nginx还会有冲突? 但是两者端口并没有冲突,而且 nginx 也没有报任何错误。检查了半天没找到任何头绪,就差一口老血吐出来了。。:) 。
无奈之际,猜测是不是 ssr 一键安装脚本哪里有冲突了。便把 ssr 卸载,然后重装 ssr,一键脚本重装过程中发现了启动防火墙的动作,敏锐的我瞬间捕获到了这个操作 : )(想到了自己之前挖的坑)。之前为了图方便,把整个防火墙关了。一键安装 ssr 的过程中,脚本重新启动了防火墙,导致外网无法正常访问 80 和 443 端口。
解决办法
防火墙开启 80 和 443 端口。因为 vps 使用的是 centos 7 ,下面介绍 centos7 下防火墙开启 80 和 443 端口的方法:
启动防火墙 [root@dfdf ~]# systemctl start firewalld.service
备注 2018-10-16:最近有小伙伴反馈启动时报错: Failed to start firewalld.service: Unit firewalld.service is masked.
解决办法,先执行下面命令:
systemctl unmask firewalld.service
然后重新执行start命令即可。出现上面错误的原因是因为 firewalld 服务被锁定,上面命令的含义是取消服务的锁定。
开启 80 443 端口 [root@dfdf ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent success [root@dfdf ~]# firewall-cmd --zone=public --add-port=443/tcp --permanent success
重启防火墙 [root@dfdf ~]# firewall-cmd --reload
操作截图:
参数介绍
开启端口: firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #代表永久生效,没有此参数重启后失效 重启防火墙: firewall-cmd --reload 或者service firewalld restart
下一篇: Linux下supervisor安装与使用