(旧文重更:2024/11/10)

服务器到期在即,迁移 FRP 小记,为了把家里的 书库 talebook 能无障碍在线使用。

群晖拉起 frpc,服务器部署 frps,路由器端口转发,给个子域名解析,即可实现域名访问服务。

公网服务器部署 frps

项目地址:https://github.com/stilleshan/frps

启动 Docker:

docker run -d --name=frps --restart=always \
    --network host \
    -v /root/frps/frps.toml:/frp/frps.toml  \
    stilleshan/frps

注意,/root/frps/frps.toml 可以自行修改这个路径,先创建和修改好配置。

frp-1

如果是用宝塔和腾讯服务器的话,记得允许这些端口。其中 vhost_https_port 是 https 的穿透端口,dashboard_port 是面板访问端口;token 是之后客户端验证需要。

此时访问: http://服务器IP:7500 弹出要登陆,就OK啦!

群晖本地部署 frpc

2024/11/10 注明:群晖注册表正常已无法加载,通过本地 ssh 终端连接,手动 docker pull xxxxx/xxxx 拉去镜像搞定。

项目地址:https://github.com/stilleshan/frpc

官方教程1:群晖 NAS docker 安装(支持 docker 的群晖机型首选)

官方教程2:群晖 NAS 一键脚本安装(不支持 docker 的群晖机型)

个人采用的是第一种 Docker 安装。

frp-2

注册表搜索 stilleshan/frpc 下载完成之后,配置 frpc.ini 文件。

frp-3

配置参考(0.61):

frp-4

serverAddr = "111.xxxxxxx"  # 服务器IP或者地址
serverPort = 7000           # 服务器提供的端口号
auth.method = "token"
auth.token = "usertoken"    # 服务器设定的token

[[proxies]]
name = "nas"                # 唯一标识,不能和服务器端其他配置重名
type = "https"              # https协议
localIP = "192.168.1.1"     # 群晖内网IP.
localPort = 443             # 需路由器端口转发 HTTPS 
customDomains = ["nas.xxx.com"]   # 填写你的域名

启动镜像,勾选使用高权限执行容器;高级设置,添加文件指定到你 frpc.ini 所在的位置。勾选使用与Docker Host相同的网络。完成。

frp-6

群晖内网穿透

利用路由器的端口转发和群晖自带反代功能,方便多服务穿透,做以下设置:

frp-7

路由器直接转发所有 443 到群晖,然后群晖反代如下设置:

frp-5

这样,本地 docker 20010 端口跑的 talebook 服务就顺利穿出去啦~

服务器域名解析

直接加了一个 * 泛解析,方便绑定子域名解析。

frp-9

若宝塔面板:新建网站,添加域名,申请 SSL 证书,修改配置文件。

frp-8

    #frp
    location / {
        resolver 8.8.8.8;
        proxy_ssl_server_name on;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host:$server_port;
        proxy_pass https://$host:8443; # 8443 是 frps.ini 里配置的 https 端口
    }

如服务出现样式显示问题,则把配置文件下面那段缓存代码删了。

最后,重载/重启 Nginx 服务,搞定!

致谢及推荐

IOIOX:https://www.ioiox.com/

《卸载腾讯云对服务器的监控》:https://www.prkblog.cn/p/uninstall-tencent-cloud-monitor.html