要让PHP平台仅开放80和443端口,核心是配置系统防火墙:Windows用防火墙高级安全策略放行80,443;Linux用firewalld或ufw添加对应TCP端口规则,并确认云平台安全组及路由器映射同步配置。

要让 PHP 平台(如 Apache 或 Nginx 搭建的 Web 服务)只开放 80(HTTP)和 443(HTTPS)端口,核心是配置系统防火墙,而非 PHP 本身。PHP 是解释器,不直接处理网络端口;真正监听端口的是 Web 服务器(如 httpd、nginx)和操作系统防火墙。所以关键动作是:**关闭其他端口,仅放行 80 和 443 的入站连接**。
Windows 系统:用高级安全防火墙放行
适用于 phpEnv、WAMP、XAMPP 或手动部署的 Nginx/Apache:
- 按 Win + R,输入
firewall.cpl,打开“高级安全 Windows Defender 防火墙” - 左侧点“入站规则”,右侧点“新建规则…”
- 选“端口” → 下一步 → 选“TCP”,在“特定本地端口”填
80,443(逗号分隔,不加空格)→ 下一步 - 选“允许连接” → 下一步 → 勾选“域”、“专用”、“公用”全部三项 → 下一步
- 命名如“Web 服务端口 80+443”,完成
- 为保险起见,可再新建一条规则,类型选“程序”,路径指向你的 Web 服务主程序(如
C:\phpEnv\nginx\nginx.exe),并设为“允许连接”
Linux(CentOS/RHEL 7+):用 firewalld 控制
适用于宝塔、LNMP、或手动部署的 PHP 环境:
- 确认 firewalld 正在运行:
sudo systemctl status firewalld;若未启动,先执行sudo systemctl start firewalld && sudo systemctl enable firewalld - 移除所有非必要端口(可选,但推荐清理):
sudo firewall-cmd --list-ports查看当前开放端口,用--remove-port=xxx/tcp逐一删除 - 只添加必需端口:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcpsudo firewall-cmd --permanent --zone=public --add-port=443/tcp - 重载规则:
sudo firewall-cmd --reload - 验证:
sudo firewall-cmd --list-ports应仅显示80/tcp 443/tcp
Linux(Ubuntu/Debian):用 ufw 简化管理
适合 LAMP 或 Nginx + PHP-FPM 环境:
- 启用 ufw(若未启用):
sudo ufw enable - 默认拒绝所有入站:
sudo ufw default deny incoming - 只允许 Web 端口:
sudo ufw allow 80/tcpsudo ufw allow 443/tcp - 查看状态:
sudo ufw status verbose,确认只有这两条 ALLOW 规则 - 如需 HTTPS,确保 SSL 证书已配置(如用 Certbot),否则 443 虽开放但无响应
额外提醒:别漏掉云平台或路由器
如果你的服务部署在阿里云、腾讯云、华为云等平台,或通过家用路由器上网,仅配系统防火墙还不够:
- 登录云控制台,在“安全组”中检查是否已放行 80 和 443 的入方向规则(协议 TCP,端口范围 80/80 或 443/443)
- 家用环境若需局域网访问,路由器一般无需额外设置;但若想让外网访问,还需在路由器做端口映射(DMZ 或虚拟服务器),并注意 ISP 是否封禁 80/443
- 确保 Web 服务本身确实在监听这两个端口:用
netstat -tuln | grep ':80\|:443'(Linux)或netstat -ano | findstr :80(Windows)验证
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











