HTTP
HTTP 端口指南:端口 80 上的 Web 流量
了解为什么端口 80 对于重定向、证书、运行状况检查和旧版客户端仍然很重要,即使生产流量应使用 HTTPS。
- 默认端口
- 80
- 协议
- TCP
- 主要用途
- 明文 Web 或重定向流量
80端口是什么?
端口 80 是 HTTP 的默认 TCP 端口。当浏览器打开没有自定义端口的 http:// URL 时,它会连接到端口 80 并发送纯 HTTP 请求。与端口 443 上的 HTTPS 不同,端口 80 上的流量默认不加密。
80 是默认 HTTP 端口
浏览器、爬虫、负载均衡器、反向代理和旧版客户端都将端口 80 视为纯 HTTP 的标准入口点。
端口 80 通常应通向 HTTPS
现代公共站点通常保持 80 开放以进行重定向和自动化,而真正的应用程序会话则通过 443 上的加密 HTTPS 进行。
端口 80 上的 HTTP 如何工作
HTTP 是浏览器、API、Webhook、运行状况检查和许多内部服务使用的请求和响应协议。在端口 80 上,客户端通过 TCP 连接、发送 HTTP 请求并接收标头和响应正文,而无需先进行 TLS 握手。
由于流量未加密,任何可以观察网络路径的人都可以看到 URL、cookie、标头、表单数据和响应内容,除非应用程序添加自己的保护。对于公共网站和经过身份验证的应用程序,端口 80 通常应重定向到 HTTPS,而不是直接提供私有内容。
HTTP 端口 80 与 HTTPS 端口 443
端口 80 是纯 HTTP。端口 443 是 HTTPS,这意味着 TLS 加密会话中承载的 HTTP。用户体验在浏览器中可能看起来相似,但安全模型不同:HTTPS 验证服务器证书并对传输中的流量进行加密。
大多数生产站点同时使用这两个端口。端口 80 接受旧链接、证书质询和首次浏览器请求,然后发送 301 或 308 重定向到 443 上的 HTTPS URL。之后,HSTS 可以告诉浏览器自动首选 HTTPS。
何时保持端口 80 开放
当您需要 HTTP 到 HTTPS 重定向、Let's Encrypt HTTP-01 质询、负载均衡器运行状况检查、CDN 源检查、简单内部状态端点或与无法直接在 HTTPS 上启动的旧系统兼容时,请保持端口 80 开放。
当服务是私有的、所有客户端都受到控制并且可以直接使用 HTTPS 或纯 HTTP 造成不必要的暴露时,关闭或限制端口 80。如果您确实保持其开放,请保持行为范围狭窄且可预测:重定向、质询或运行状况检查,而不是完全应用程序访问。
打开端口 80 之前
在打开 TCP 80 之前,请确认目标 Web 服务器、反向代理、入口控制器、CDN 源或负载均衡器正在侦听正确的接口。决定端口 80 是否应提供内容、重定向到 443、回答运行状况检查或仅响应证书验证路径。
端口检查器确认网络可达性,但它不会告诉您重定向链、缓存标头、虚拟主机路由或证书自动化是否正确。使用浏览器、curl 和服务器日志测试 TCP 路径和 HTTP 行为。
如何在 Windows、Linux 和 macOS 上打开端口 80
在 Windows Server 上,运行 IIS、Nginx、Apache、Caddy 或其他 Web 服务器,将站点绑定到 TCP 80,并允许 Windows Defender 防火墙中的入站 HTTP 流量。云服务器还需要配套的云防火墙或安全组规则。
在 Linux 上,配置 Nginx、Apache、Caddy、容器端口发布或入口控制器以侦听 80,然后在 ufw、firewalld、nftables、iptables 或提供商防火墙中允许 TCP 80。容器和 Kubernetes 服务必须在主机、负载均衡器或入口层发布或路由端口。
在 macOS 上,端口 80 最常用于本地开发或实验室服务。特权端口可能需要提升权限,并且本地防火墙或路由器规则仍然决定其他计算机是否可以访问该服务。
- 服务层:Web 服务器、反向代理、负载均衡器、容器或入口控制器必须侦听 TCP 80。
- 网络层:主机防火墙、云安全组、路由器 NAT、CDN 规则和负载均衡器必须正确路由流量。
- HTTP 层:虚拟主机、重定向、运行状况检查路径、缓存标头和 ACME 质询路径应与预期行为相匹配。
- 安全层:避免通过纯 HTTP 提供登录页面、cookie、API 令牌或私有内容。
如何测试端口80
首先根据公共主机名或 IP 地址和端口 80 进行外部端口检查。如果结果打开,则远程客户端可以建立 TCP 连接。然后运行curl -I http://example.com来检查状态代码、重定向、服务器标头和缓存行为。
在服务器上,使用 ss -tlnp、netstat、lsof 或 PowerShell 检查侦听器。对于反向代理和云部署,请比较主机防火墙规则、云安全组、负载均衡器侦听器、容器端口映射和应用程序日志,因为任何层都可能阻止或错误路由 HTTP。
常见80端口故障排除案例
如果端口 80 显示已关闭,则 Web 服务器可能已停止、仅侦听本地主机、使用不同的端口或被主机防火墙阻止。如果超时,数据包可能会被云防火墙、路由器 NAT 规则、ISP 过滤器、CDN 设置或上游安全策略丢弃。
如果端口 80 打开但页面错误,请检查虚拟主机顺序、主机标头路由、默认服务器块、代理上游、容器映射和 DNS 记录。如果重定向循环,请比较 HTTP 和 HTTPS 虚拟主机并确保代理正确传递原始方案。
HTTP 安全检查表
有意使用端口 80。将应用程序流量重定向到 HTTPS,避免纯 HTTP 上的凭据和敏感数据,并仅保留需要保持可访问性的端点。对于公共站点,在确认 HTTPS 稳定后,将重定向与 443 和 HSTS 上的有效证书配对。
将请求记录到端口 80,监视意外路径,并删除不再需要纯 HTTP 的旧端点。如果端口 80 仅用于 ACME 或运行状况检查,请限制对这些路径的响应,以便更容易推理和监控服务。
常见问题
80端口是做什么用的?
端口 80 是 HTTP 的默认 TCP 端口。它通常用于 HTTP 到 HTTPS 重定向、证书验证质询、运行状况检查和旧版 Web 客户端。
端口 80 应该打开吗?
对于公共网站,通常保持端口 80 开放,以便旧链接和首次浏览器请求可以重定向到 HTTPS。对于私人服务,除非有明确的运营需要,否则关闭或限制。
端口 80 上的 HTTP 安全吗?
否。纯 HTTP 不会加密流量或使用证书验证服务器。在端口 443 上使用 HTTPS 来验证会话、表单、cookie、API 和私有内容。
为什么80端口打开了,但我的网站仍然无法访问?
当 HTTP 路由中断时,TCP 端口仍可访问。检查 DNS、虚拟主机、重定向、反向代理规则、容器端口映射、负载均衡器侦听器和应用程序日志。