前言
本站之前介绍过在群晖中安装 frpc 客户端来实现内网穿透,很多新手不会使用命令行的方式来安装,本文将介绍如何使用 Docker 来简单安装配置 frpc 客户端。
frps 服务器端
freefrp.net 提供了免费 frp 内网穿透服务为广大用户提供测试试用服务。
VIP 服务器信息
免费服务器信息
- 服务器地址:
frp.freefrp.net
- 端口:
7000
- Token:
freefrp.net
- 提供端口:
80 443 10001-50000
- frps 版本为
0.51.0
- frpc 客户端同时支持老版本和最新版本
- frp 信息的更新请访问和收藏专题站点 https://freefrp.net
frpc 客户端安装
完成整个配置大致需要三部
- 配置域名解析
- 编写配置文件
- 启动群晖容器
1. 域名解析
首先,将需要使用的域名在服务商控制台设置 CNAME
指向 frps 服务器地址.
下图以阿里云
为例.
2. 编写 frpc 配置文件
目前 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 的配置正确与否是容器能否正常启动的关键,大多网友留言咨询容器启动错误,几乎都是配置不规范导致的。针对新手小白用户,这里详细讲解每一行该如何配置。
如果你复制上述我提供的参考配置,你需要删除上述 # 号行的文字,否则 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 专栏:
384 条评论
网页打开是这样
The page you requested was not found.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
The server is powered by frp.
Faithfully yours, frp.
下面是日志!
2020-04-10 08:39:44 stdout 2020/04/10 08:39:43 [1;34m[I] [control.go:179] [a169713cfc6234a7] [guge002] start proxy success[0m
2020-04-10 08:39:43 stdout 2020/04/10 08:39:43 [1;34m[I] [control.go:179] [a169713cfc6234a7] [guge001] start proxy success[0m
2020-04-10 08:39:43 stdout 2020/04/10 08:39:43 [1;34m[I] [proxy_manager.go:144] [a169713cfc6234a7] proxy added: [guge001 guge002][0m
2020-04-10 08:39:43 stdout 2020/04/10 08:39:43 [1;34m[I] [service.go:282] [a169713cfc6234a7] login to server success, get run id [a169713cfc6234a7], server udp port [7001][0m
[common]
server_addr = free.frp.ioiox.com
server_port = 7007
token = www.ioiox.com
[web1-llokay]
type = http
local_ip = 127.0.0.1
local_port = 5000
custom_domains = llokay.3322.org
[web2-llokay]
type = https
local_ip = 127.0.0.1
local_port = 5001
custom_domains = llokay.3322.org
2020/03/23 01:58:21 [I] [service.go:257] [6e4b97712815a563] login to server success, get run id [6e4b97712815a563], server udp port [7001]
stdout
01:58:21
2020/03/23 01:58:21 [I] [proxy_manager.go:144] [6e4b97712815a563] proxy added: [web1-llokay web2-llokay]
stdout
01:58:21
2020/03/23 01:58:21 [I] [control.go:179] [6e4b97712815a563] [web1-llokay] start proxy success
stdout
01:58:21
2020/03/23 01:58:21 [I] [control.go:179] [6e4b97712815a563] [web2-llokay] start proxy success
stdout
目标是外网访问内网NAS。DOCK安装,日记也显示成功。但是访问 LLOKAY.3322.ORG 就不成功。烦请博主帮分析分析。电信内网!!!
你域名没解析过来
请问如何设置解析? 是因为大内网的原因吗?
在你的域名注册商后台添加CNAME指向 free.frp.ioiox.com
谢谢!以前有公网IP,直接在3322挂个名就行。这个内网穿透中的域名解析没有之前那么简单,走了好多弯路。再次感谢!
老师按照你教程的步骤出现Docker 容器 stilleshan-frpc1 意外停止,容器不能运行,打开就自动关闭求解答,配置文件对照了几次都没问题
你这是没有找到frpc.ini配置文件,卷那里是添加文件,不是添加文件夹,你仔细看大佬的教程截图。
贴下日志
Information 2020/03/17 21:28:05 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/17 21:30:03 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/17 21:32:10 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/17 21:33:14 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/17 21:38:42 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/17 21:52:48 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/17 21:53:56 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/18 09:11:08 admin Add image from docker.io/ekho/utorrent:latest
Information 2020/03/18 09:13:59 admin Add image from docker.io/ekho/utorrent:latest
Information 系统 2020/03/18 23:05:03 admin Package [文本编辑器] has been successfully installed.
Information 系统 2020/03/18 10:49:27 admin System successfully stopped [SSH service].
Information 系统 2020/03/18 10:40:00 admin Package [Web Station] has been successfully installed.
Information 系统 2020/03/18 10:39:55 admin Shared folder [web] was created when enabling [WebStation].
Information 系统 2020/03/18 10:39:54 admin Normal shared folder [web] was created.
Information 系统 2020/03/18 10:05:52 admin Shared folder [ekho-utorrent1] was deleted.
Information 系统 2020/03/18 10:04:07 admin Normal shared folder [ekho-utorrent1] was created.
容器的日志
Information 2020/03/19 09:50:18 admin Start container stilleshan-frpc1.
Information 2020/03/19 09:50:21 admin Start container stilleshan-frpc1.
Information 2020/03/19 09:52:47 admin Start container stilleshan-frpc1.
Information 2020/03/19 09:52:51 admin Start container stilleshan-frpc1.
Information 2020/03/19 09:52:54 admin Start container stilleshan-frpc1.
Information 2020/03/19 09:54:39 admin Start container stilleshan-frpc1.
Information 2020/03/19 09:56:47 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:03:18 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:07:09 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:09:46 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:09:49 admin Start container ekho-utorrent1.
Information 2020/03/19 10:09:59 admin Stop container ekho-utorrent1.
Information 2020/03/19 10:10:04 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:10:14 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:11:18 admin Start container stilleshan-frpc1.
Information 2020/03/19 10:17:48 admin Start container stilleshan-frpc1.
容器-详情-日志
2020-03-19 02:27:44 stdout dial tcp 127.0.0.1:7000: connect: connection refused
2020-03-19 02:27:44 stdout 2020/03/19 02:27:44 [1;33m[W] [service.go:97] login to server failed: dial tcp 127.0.0.1:7000: connect: connection refused[0m
2020-03-19 02:25:05 stdout dial tcp 127.0.0.1:7000: connect: connection refused
2020-03-19 02:25:05 stdout 2020/03/19 02:25:05 [1;33m[W] [service.go:97] login to server failed: dial tcp 127.0.0.1:7000: connect: connection refused[0m
2020-03-19 02:17:48 stdout dial tcp 127.0.0.1:7000: connect: connection refused
2020-03-19 02:17:48 stdout 2020/03/19 02:17:48 [1;33m[W] [service.go:97] login to server failed: dial tcp 127.0.0.1:7000: connect: connection refused[0m
2020-03-19 02:11:18 stdout dial tcp 127.0.0.1:7000: connect: connection refused
2020-03-19 02:11:18 stdout 2020/03/19 02:11:18 [1;33m[W] [service.go:97] login to server failed: dial tcp 127.0.0.1:7000: connect: connection refused[0m
2020-03-19 02:10:14 stdout dial tcp 127.0.0.1:7000: connect: connection refused
2020-03-19 02:10:14 stdout 2020/03/19 02:10:14 [1;33m[W] [service.go:97] login to server failed: dial tcp 127.0.0.1:7000: connect: connection refused[0m
2020-03-19 02:10:04 stdout dial tcp 127.0.0.1:7000: connect: connection refused
2020-03-19 02:10:04 stdout 2020/03/19 02:10:04 [1;33m[W] [service.go:97] login to server failed: dial tcp 127.0.0.1:7000: connect: connection refused
frp服务器信息填错了
这是配置文件
common]
server_addr = free.frp.ioiox.com
server_port = 7007
token = www.ioiox.com
[DS3617web7700]
type = http
local_ip = 192.168.2.218
local_port = 5000
custom_domains = huangxz.club
[DS3617web7700]
type = https
local_ip = 192.168.2.218
local_port = 5001
custom_domains = huangxz.club
你日志 2020-03-19 02:10:14 stdout dial tcp 127.0.0.1:7000: connect: connection refused
端口都不对
重新创建吧
common]
少个[
还是一样的故障,容器删除了重新建的,配置文件也是重新做的,故障一样
换个服务器吧,自己ping一下,可能是本地解析有问题
free.frp.ioiox.com 可以拼得通,我换了几个了都是这样(/ω\)
frpc客户端版本要和服务端版本一致。我自己服务器,也被这个折腾很久。
你好老师,域名 ,要去DNSPOD 那里设置一个记录吗,WWW CNAME记录,值 free.frp.ioiox.com.DOCKER 日志显示succeed . 但是我开启HTTPS 5000 跳 5001 ,,穿透设置好.访问不了.!
那你就不用http,只用https啊
一样,访问不了
是不是我的设置 那里出了问题呢
相关设置截图发我看下
我这访问没问题
https://www.cnnd.ml
谢谢啊