本文最后更新于 2024-10-16,文章内容可能已经过时。

为什么用Sakura Frp

首先有许多其余的方案:

  1. VPS+域名:贵并且带宽小。

  2. IPv6+DDNS:在进行了多次尝试之后发现国外无法访问,国内可以,导致没法收录。

  3. Zerotier虚拟局域内网:公网无法访问

常见的建站思路就是以上这些,最终我选择了性价比最高的Sakura Frp

安装Sakura Frp

SakuraFrp 启动器安装 / 使用指南 | SakuraFrp 帮助文档 (natfrp.com)

使用Docker安装Sakura Frp

docker run \
   -d \
   -v /home/moon/data/frp-ssl:/run/FrpcWorkingDirectory \  
   --network=host \
   --restart=on-failure:5 \
   --pull=always \
   --name=natfrp-service \
   natfrp.com/launcher

其中-v /home/data/frp-ssl:/run/FrpcWorkingDirectory 是对证书目录的映射,容器中/run/FrpcWorkingDirectoryfrp的工作目录。方便我们上传自己的ssl证书。

设置隧道

Sakura Frp | 樱花内网穿透

Web 应用穿透指南 | SakuraFrp 帮助文档 (natfrp.com)

官网创建隧道

进入Sakura Frp后台创建隧道

推荐选择国外的节点创建,无需备案并且方便之后进行谷歌的收录。

web后台开启隧道

docker logs natfrp-service

在浏览器输入https://ip:7012进入web后台,密码填写WebUI密码。访问密码需要在官网处首页获得,

将隧道拖至上方启动区域即可。

如果我们创建的不是Https隧道,此时我们已经可以通过Sakura Frp提供的域名/ip+端口的形式访问服务。如下所示是笔者搭建的图床服务(使用TCP隧道):

但是我们创建的是Https隧道,因此需要解析到我们自己的域名。

添加解析

我们需要将自己的域名解析到Sakura Frp提供的域名 ,从而可以从自己的域名访问服务。

在官网后台查看我们节点的域名,将鼠标移至名称上面即可。

随后前往域名服务商处,添加CNAME解析

添加解析后,我们已经可以通过自己的域名访问服务。但是此时SSL证书是由Sakura Frp提供的自签名证书,如果不上传自己的证书,那么我们的网站将无法被搜索引擎收录。

自定义SSL证书

在创建docker容器时,我们使用卷的形式绑定了frp的工作目录与/home/moon/data/frp-ssl ,因此我们仅需将证书上传至/home/moon/data/frp-ssl目录即可。

注意,需要先将证书改名为如下形式(就是你在创建隧道时,自动Https里填的)

注意,在上传SSL证书前需要停止隧道,上传后再启用。

上传后可以进入容器查看

docker exec -it natfrp-service /bin/sh

使用cat命令查看两个证书内容,如果与你下载的一致,即可。

随后我们打开浏览器,稍等一会儿,清除缓存后输入域名(不需要加端口),即可访问我们的服务。

那么至此我们建站就告一段落啦。