Centos7下防火墙开启 80 443 端口

Posted by 撒得一地 on 2017年8月13日 in Linux笔记

前言扯淡

之前在一台 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

操作截图:

centos7下防火墙开启80和443端口

参数介绍

	开启端口:

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

	命令含义:

	--zone #作用域

	--add-port=80/tcp #添加端口,格式为:端口/通讯协议

	--permanent #代表永久生效,没有此参数重启后失效

	重启防火墙:

	firewall-cmd --reload 或者service firewalld restart

上一篇:

下一篇:

相关推荐

网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.