阿里云国内vps搭建网站绕过备案验证

首先看《frp内网穿透小白教程》

阿里云vps搭建客户端,一台免备案vps搭建服务端

服务端配置

bindPort = 7000
vhostHTTPPort = 800
vhostHTTPSPort = 4430
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "zhanghao"
webServer.password = "mima"

auth.method="token"
auth.token = "mima"

客户端配置

serverAddr = "your_ip"
#连接到云服务器端口,需要和frps.toml配置文件中端口一致
serverPort = 7000

auth.method = "token"
auth.token = "mima"


#web
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["your_domain"]
#web443
[[proxies]]
name = "web443"
type = "https"
customDomains = ["your_domain"]

[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:80"

在阿里云vps搭建typecho博客,在免备案vps只需搭建一个同名网站并申请SSL证书
只需在免备案vps的nginx配置文件中添加

    location ~ \.well-known{
        allow all;
    }
    location / {
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header   Host             $http_host;
      proxy_set_header   Upgrade          $http_upgrade;
      proxy_set_header   X-NginX-Proxy    true;
      proxy_set_header   Connection "upgrade";
      proxy_http_version 1.1;
      proxy_pass         http://localhost:800;
    }

贴上完整配置

server {
   listen 80;
    listen 443 ssl;
    listen 443 quic;
    http2 on;
   # 修改为你的域名
   server_name your_domain;
    #CERT-APPLY-CHECK--START
    # 用于SSL证书申请时的文件验证相关配置 -- 请勿删除并保持这段设置在优先级高的位置
    include /www/server/panel/vhost/nginx/well-known/your_domain.conf;
    #CERT-APPLY-CHECK--END
    include /www/server/panel/vhost/nginx/extension/your_domain/*.conf;
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/your_domain/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/your_domain/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_tickets on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    add_header Alt-Svc 'quic=":443"; h3=":443"; h3-29=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';
    error_page 497  https://$host$request_uri;
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    location / {
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header   Host             $http_host;
      proxy_set_header   Upgrade          $http_upgrade;
      proxy_set_header   X-NginX-Proxy    true;
      proxy_set_header   Connection "upgrade";
      proxy_http_version 1.1;
      proxy_pass         http://localhost:800;
    }
    access_log  /www/wwwlogs/your_domain.log;
    error_log  /www/wwwlogs/your_domain.error.log;
}

最后访问your_domain就可以愉快的玩耍了

发现了几个问题,访问https://your_domain时加载不正常,有几个解决办法
1.修改 Typecho 配置(推荐)
在阿里云服务器上的 Typecho 根目录,编辑 config.inc.php,添加以下代码,强制全站生成 HTTPS 链接:

/** 开启 HTTPS */
define('__TYPECHO_SECURE__', true);

清空浏览器缓存后刷新即可。
2.修改国外 VPS 的 Nginx 配置
在国外 VPS 的 Nginx 配置中添加 Header,强制升级不安全请求(但这不如直接改源码彻底):

# 在 server 块内添加
add_header Content-Security-Policy "upgrade-insecure-requests";

其实阿里云服务器完全不需要配置 HTTPS 证书,只需要用方法1让 Typecho 程序“知道”自己正在被 HTTPS 访问即可。
3.deepseek给的办法

 用 Cloudflare Origin Rules 替代文章方案?
完全可以,且更推荐(架构更简洁)。
你参考的文章架构是:用户 -> 国外VPS(Nginx+SSL) -> FRP -> 阿里云。这个方案需要在国外 VPS 手动配置证书,比较繁琐。
你的 Cloudflare 改良方案:用户 -> Cloudflare(CDN+SSL) -> 国外VPS(FRP only) -> 阿里云。
优势:Cloudflare 免费帮你搞定 SSL 证书和全球加速,国外 VPS 只做纯 TCP/HTTP 转发,无需配置复杂的 Nginx 和证书。
具体实施步骤(基于你现有 FRP 配置):
DNS 设置:
域名 DNS 解析到你的 国外 VPS IP。
必须开启代理(橙色云朵),这是隐藏端口的关键。
Cloudflare SSL/TLS 设置:
加密模式:选择 Flexible(因为你的阿里云源站是 HTTP)。
Always Use HTTPS:开启。
Origin Rules(关键步骤):
进入 Rules​ > Origin Rules。
匹配条件:Hostnameequals 你的域名
动作:Override origin port-> 填写你的 FRPS 监听端口(例如文章里常用的 8080或 8443)。
保存。
FRP 服务端(国外 VPS)调整:
无需运行 Nginx,只需运行 frps。
frps.toml配置中,只需保留 bindPort(如 7000)和 vhostHTTPPort(如 8080)。不需要配置 vhostHTTPSPort,因为 HTTPS 已经在 Cloudflare 端终止了。
FRP 客户端(阿里云):
保持 type = http,指向阿里云本地的 80 端口即可。
流量逻辑验证:
用户访问 https://yourdomain.com(443) -> Cloudflare(自动SSL)-> 回源到 国外VPS_IP:8080-> FRPS 转发 -> 阿里云 HTTP 80。
阿里云依然只看到 HTTP 流量,且由于 Cloudflare 提供了 SSL,不再有混合内容问题。
总结
解决加载不全:在阿里云 Typecho 的 config.inc.php里加 define('__TYPECHO_SECURE__', true);。
优化架构:直接采用 Cloudflare (SSL) + Origin Rules (改端口) + FRP​ 的方案,比文章里“国外 VPS 自建 Nginx”的方式更省事、更稳定。

评论区: