前言

本站之前介绍过在群晖中安装 frpc 客户端来实现内网穿透,很多新手不会使用命令行的方式来安装,本文将介绍如何使用 Docker 来简单安装配置 frpc 客户端。

由于现在 frp 已经更新到新版本,支持最新的 toml 格式的配置文件,并且群晖的 docker 也更名为 Container Manager,所以本文重新更新为最新版本。

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

frps 服务器端

freefrp.net 提供了免费 frp 内网穿透服务为广大用户提供测试试用服务。

VIP 服务器信息

VIP 服务器正在邀约中,有兴趣的点击查看。

免费服务器信息

  • 服务器地址: frp.freefrp.net
  • 端口: 7000
  • Token: freefrp.net
  • 提供端口: 80 443 10001-50000
  • frps 版本为0.51.0
  • frpc 客户端同时支持老版本和最新版本
  • frp 信息的更新请访问和收藏专题站点 https://freefrp.net

frpc 客户端安装

完成整个配置大致需要三部

  1. 配置域名解析
  2. 编写配置文件
  3. 启动群晖容器

1. 域名解析

首先,将需要使用的域名在服务商控制台设置 CNAME 指向 frps 服务器地址.
下图以阿里云为例.

2. 编写 frpc 配置文件

frp 最重要的就是 frpc 配置文件,任何容器创建或者启动失败 99% 都是因为配置错误。请详细查看本节。

目前 frp 已经更新到0.55.1版本,新版本修改了配置文件语法格式。所以本文教程也更新到最新版本。

创建 frpc.txt 文件

配置文件使用什么后缀都不影响,例如frpc.ini / frpc.txt / frpc.toml都是可以的,只是由于群晖的文本编辑器无法默认打开.toml后缀文件,所以选择.txt方便在群晖内直接修改,当然你也可以在电脑上创建编写完毕后在上传到群晖中。后续挂载至 docker 内部时为 toml 格式即可。

使用文本编辑器来创建一个frpc.txt文件。
本文以/Docker/frpc/frpc.txt为例

编辑配置

serverAddr = "frp.freefrp.net"
serverPort = 7000
auth.method = "token"
auth.token = "freefrp.net"

[[proxies]]
name = "web1_nas"
# name 唯一字段,不能和服务器上其他用户的服务名重复。
type = "http"
# http 协议
localIP = "192.168.1.8"
# 需要穿透出去的服务 IP,例如群晖的 IP。
localPort = 5000
# 需要穿透出去的服务端口,例如群晖默认的 http 服务端口 5000。
customDomains = ["nas.yourdomain.com"]
# 自定义域名,上述已经修改过 CNAME 解析的域名,例如 nas.yourdomain.com。

[[proxies]]
name = "linux1_centos7"
# name 唯一字段,不能和服务器上其他用户的服务名重复。
type = "tcp"
# tcp 协议
localIP = "192.168.1.21"
# 需要穿透出去的服务 IP,例如我内网的一台 centos7 服务器的 IP。
localPort = 22
# 需要穿透出去的服务端口,例如 centos7 服务器的 ssh 登录端口。
remotePort = 22222
# 远程穿透端口,此端口不能和服务器上其他用户重复,也要遵循 frps 服务允许的端口范围。

删除上述 # 号注释行的文字,否则 frpc 会报字符编码错误,建议删除后将该文件编码修改为 UTF-8 或 简体中文(GB18030)。

frpc 配置常见问题,新手用户请注意以下折叠内容。

确定配置格式正确?针对新手用,可以展开详细解读。

frpc 的配置正确与否是容器能否正常启动的关键,大多网友留言咨询容器启动错误,几乎都是配置不规范导致的。针对新手小白用户,这里详细讲解每一行该如何配置。

如果你复制上述我提供的参考配置,你需要删除上述 # 号行的文字,否则 frpc 会报字符编码错误,建议删除后将文本修改为 UTF-8 或 简体中文(GB18030)。

frpc解读

第一段服务器信息一般不会出错,正确填写提供的信息即可。
第二段详细解读

[web1_nas]

必须修改,避免与你自己或者服务器上其他人的名称重复,由于无法知晓其他人设置的名称,建议使用你自己的域名+数字形式,例如[nas_xxx_com_3745283]。这样能够有效的避免此问题。

type = http

穿透的协议,一般是 http 和 https 两种,对应的端口也不同,一定要确保你所选的协议和该协议的端口号保持一致。

localIP = 192.168.1.8

需要穿透的设备的内网 IP,例如你群晖的内网 IP,注意 frpc 是运行在容器中,请不要填写 127.0.0.1 这样的 IP

localPort = 5000

此处也是容易出错的地方,这里为需要穿透的设备的 http 或者 https 协议对应的端口,例如群晖的是 5000 和 5001,那么上述 type 协议选择 http,此处就填写 5000,上述 type 协议如果选择 https,此处填写 5001。如果你曾经在群晖的控制面板内修改过端口,那么就需要改为修改过的端口。另外,内网穿透是无视路由器的端口转发配置,无论你是否设置过路由器,都可以忽略不管。

customDomains = nas.ioiox.com

同一个域名可以配置两个协议,http 和 https,由于可能出现的手误,少打一个 s,就会导致同一个域名配置了 2 个相同 http,从而也可能会导致容器出错。请再三检查确保无误。

当第一个配置成功运行,并正常访问后,在来尝试添加更多条配置.

常见错误

  • 名称与自己其他配置重复,或者与服务器上重复。
  • 协议与域名重复
  • 协议与端口配置错误
  • frpc.ini 编码问题

3. 创建容器

由于国内网络对官方 docker hub 不太友好,建议无法下载镜像的用户可以修改注册表。

注册表 - 设置 - 新增

注册表名称随意填写
注册表 URL:https://index.docker.io

Docker 镜像下载

注册表 - 搜索 frpc - 选择 stilleshan/frpc - 下载

选择 latest 为最新版本

映像中查看已完成下载

创建容器

选择映像运行

勾选自动重启,也可不勾选。

选择添加文件

弹出本地文件,选择刚才在docker/frpc文件夹内创建的frpc.txt
右边填写框,请填写 /frp/frpc.toml 不要修改,这个地址是镜像内部 frpc.toml 的路径。
填写完毕下一步完成

容器 - 选中刚才启动的 frpc 容器 - 详情

查看日志连接成功


结语

更多群晖 NAS 相关技巧,教程及信息,请持续关注本站群晖 Synology 专栏:

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

本文链接 https://www.ioiox.com/archives/26.html

晚高峰稳定 4K 的 IPLC 机场 解锁各流媒体 支持 ChatGPT. 晚高峰稳定 4K 的 IPLC 机场 解锁各流媒体 支持 ChatGPT. RedteaGO - 最划算的大陆漫游 eSim 流量卡,原生境外 IP,注册就送 3 刀。
RedteaGO - 最划算的大陆漫游 eSim 流量卡,原生境外 IP,注册就送 3 刀。
如果喜欢我的文章,觉得对你有帮助,请随意赞赏!