家宽没有 80 443 端口?通过 CDN 更换端口搭建网站教程

家宽没有 80 443 端口?通过 CDN 更换端口搭建网站教程

很多人在家里搭建网站时都会遇到一个问题:运营商封禁了 80 和 443 端口

网站虽然已经部署好了,但别人访问域名时却始终打不开。其实,只要借助 CDN,就可以让访客依旧通过标准的 HTTP/HTTPS 访问网站,而源站则使用其他端口提供服务。

本文以通用方案为例,介绍如何在家宽无法使用 80、443 端口的情况下,利用 CDN 搭建一个可以正常访问的网站。


为什么不能直接访问?

大多数家庭宽带都会限制 Web 服务常用端口,例如:

  • 80(HTTP)

  • 443(HTTPS)

即使申请到了公网 IPv4,这两个端口很多地区依然无法开放。

假设网站部署在服务器的 11451 端口,本地访问:

http://服务器IP:11451

能够正常打开网站,但别人直接访问:

https://你的域名

仍然无法连接,因为运营商拦截了 80、443 端口。


原理是什么?

CDN 实际上充当了一个中间层。

整个访问流程如下:

用户
   │
   ▼
CDN(80/443)
   │
HTTP 回源(11451)
   │
   ▼
你的服务器(11451)

访客访问的是:

https://example.com

而 CDN 会自动去请求:

http://你的服务器IP:11451

因此,你的服务器完全不需要监听 80、443 端口,只需要保证 11451 可以正常访问即可。


第一步:部署网站

先将网站部署完成,例如:

  • WordPress

  • Halo

  • Typecho

  • Z-Blog

  • Cloudreve

  • Alist

  • 其他 PHP、Node.js、Go 项目

假设网站运行在:

11451

浏览器测试:

http://服务器IP:11451

能够正常打开网页即可继续下一步。


第二步:修改 Web 服务端口

无论是 Nginx 还是 Apache,都需要把监听端口改成其他端口。

例如 Nginx:

server {
    listen 11451;

    server_name example.com;

    root /www/wwwroot/example;

    index index.php index.html;
}

保存配置后重新加载:

nginx -s reload

再次确认:

http://服务器IP:11451

可以正常访问。


第三步:开放服务器端口

确保服务器已经放行 11451 端口。

如果开启了防火墙,可以执行:

ufw allow 11451

如果是云服务器,则需要在安全组中放行对应端口。

只有公网能够访问:

服务器IP:11451

CDN 才能正常回源。


第四步:域名接入 CDN

将域名解析到 CDN。

目前大部分 CDN 都支持这种方案,例如:

  • Cloudflare

  • 腾讯 EdgeOne

  • 阿里云 ESA

  • 百度云加速

  • 又拍云

  • 七牛云

开启代理(橙色云、小云朵等)即可。


第五步:配置 CDN 源站(最重要)

这一步是整个教程最关键的一步,也是最容易配置错误的地方。

进入 CDN 后台,找到**源站(Origin)**配置。

假设源站信息如下:

源站 IP:
1.2.3.4

源站端口:
11451

这里一定要注意:

CDN 回源协议请选择 HTTP,不要选择 HTTPS。

很多新手会认为网站使用 HTTPS,回源协议也应该选择 HTTPS,其实并不是。

如果你的源站监听的是:

http://服务器IP:11451

而 CDN 回源协议选择了 HTTPS,那么 CDN 实际访问的就是:

https://服务器IP:11451

由于 11451 端口通常并没有配置 SSL 证书,最终就会出现:

  • 521

  • 522

  • SSL Handshake Failed

  • 无法连接源站

  • 网站打不开

正确的配置方式应为:

源站 IP:
1.2.3.4

回源协议:
HTTP

回源端口:
11451

整个访问流程如下:

用户
        │
        ▼
https://example.com
        │
        ▼
CDN
        │
HTTP 回源(11451)
        │
        ▼
http://服务器IP:11451

用户访问网站时依然是 HTTPS,而 CDN 与源站之间使用 HTTP 即可

对于家庭宽带建站来说,这是最简单、最稳定的配置方式。


第六步:配置 HTTPS

建议直接使用 CDN 提供的免费 SSL 证书。

推荐的连接方式如下:

用户
↓

HTTPS

↓

CDN

↓

HTTP(11451)

↓

源站

很多人误以为源站也必须部署 HTTPS,其实并不是。

只要 CDN 已经开启 HTTPS,访客访问网站时依然是加密连接。对于绝大多数家庭宽带建站场景来说,源站使用 HTTP 回源完全能够满足需求,同时还能避免 SSL 配置错误带来的各种问题。


第七步:修改网站程序配置

部分程序会记录自己的访问地址。

例如 WordPress:

后台中的"WordPress 地址"和"站点地址"应填写:

https://example.com

不要填写:

http://服务器IP:11451

否则容易出现:

  • 无限重定向

  • CSS 无法加载

  • 登录异常

  • 图片无法显示

  • 浏览器提示混合内容


常见问题

网站能打开,但样式全部失效

一般是程序生成了:

http://服务器IP:11451

需要把网站地址修改为自己的域名。


出现无限重定向

通常由以下几种原因造成:

  • CDN 与源站协议配置不一致

  • WordPress 强制 HTTPS

  • Nginx 配置重复跳转

  • CDN 开启了 HTTPS 重写

建议逐项排查。


CDN 返回 521、522

优先检查:

  • 源站是否正常运行

  • 11451 端口是否开放

  • 防火墙是否放行

  • 回源端口是否填写正确

另外还要重点确认:

  • 回源协议是否误选为 HTTPS

  • 源站是否实际监听在 11451 端口

很多网站一直打不开,并不是程序有问题,而是 CDN 回源协议配置错误导致的。


源站必须开放公网端口吗?

需要。

例如网站监听:

11451

公网必须能够访问:

服务器IP:11451

否则 CDN 无法连接到你的服务器。


总结

对于没有开放 80、443 端口的家庭宽带来说,借助 CDN 完全可以正常搭建网站。

整个配置流程并不复杂:

  1. 将网站部署到 11451 等可用端口。

  2. 确保该端口能够从公网访问。

  3. 将域名接入 CDN 并开启代理。

  4. 在 CDN 后台将回源协议设置为 HTTP,回源端口设置为 11451

  5. 开启 CDN HTTPS,并将网站地址配置为自己的域名。

其中最容易踩坑的地方就是回源协议。如果源站没有部署 HTTPS,就一定要选择 HTTP 回源,否则即使网站本身运行正常,也会因为 CDN 无法连接源站而导致网站无法访问。

© 版权声明
THE END
喜欢就支持一下吧
点赞17 分享
评论 抢沙发