群晖、NAS、PVE、飞牛、二手品牌机、垃圾佬

每一位热爱生活的垃圾佬都值得敬畏

群晖NAS教程(二十四)、利用Docker安装frp进行内网穿透,访问群晖、chevereto图床、worldpress等内网服务器

群晖NAS教程(二十四)、利用Docker安装frp进行内网穿透,访问群晖、chevereto图床、world […]

群晖NAS教程(二十四)、利用Docker安装frp进行内网穿透,访问群晖、chevereto图床、worldpress等内网服务器

一、说明

由于在上海几乎每年都会搬家,从而导致我的联通宽带移机有点麻烦,所以想来搞一下内网穿透过渡一下。首先,你要有一台具有公网IP的服务器,比如阿里云、腾讯云等,我这里的是阿里云,使用的Ubuntu OS。为了更方便的访问还需要一个自己名下的一个域名。

frp分为服务端和客户端,二者通信进而通过公网设备进行转发到内网设备。比如公网IP+端口号的例子 http://106.15.61.243:5000/, 来自互联网的请求请求这台公网IP的地址,这台frps云主机就会解析到一台frpc客户端的机器上,frpc是安放在内网设备中的客户端,从而frpc把这个请求转发到对应的内网设备中。

11111

二、frp文件下载

frp的下载地址如下:https://github.com/fatedier/frp/releases。 因为我们的是Ubuntu系统,所以下载frp_0.47.0_linux_amd64.tar.gz这个。frp使用说明见https://github.com/fatedier/frp/tree/master。

001

三、云服务器上安装frps

使用MobaXterm或者类似的ssh软件登录云服务器。把刚刚下载下来的frp文件上传到云服务器,或者在云服务器上使用wget获得也可以。

#解压文件
tar -xvf frp_0.47.0_linux_amd64.tar.gz

#修改文件名
mv frp_0.47.0_linux_amd64/ frp/

#进入frp目录
cd frp

#查看目录
ll
root@iZuf6hx0enix3k8f5o337pZ:~/frp# ll
total 27900
drwxr-xr-x 2 1001 docker     4096 Feb 10 01:23 ./
drwx------ 9 root root       4096 Mar  5 13:20 ../
-rwxr-xr-x 1 1001 docker 12668928 Feb 10 01:18 frpc*
-rw-r--r-- 1 1001 docker    11345 Feb 10 01:23 frpc_full.ini
-rw-r--r-- 1 1001 docker      126 Feb 10 01:23 frpc.ini
-rwxr-xr-x 1 1001 docker 15851520 Feb 10 01:18 frps*
-rw-r--r-- 1 1001 docker     5907 Feb 10 01:23 frps_full.ini
-rw-r--r-- 1 1001 docker       49 Mar  1 15:00 frps.ini
-rw-r--r-- 1 1001 docker    11358 Feb 10 01:23 LICENSE
root@iZuf6hx0enix3k8f5o337pZ:~/frp#

frps.ini这个是frps服务端的配置文件,frpc.ini这个是frpc客户端的配置文件。现在我们先来修改frps.ini,修改为下面内容。token为密码,可根据自身情况进行更改。

#编辑文件
vim frps.ini

[common]
bind_port = 2000
token = aliyunhep
#然后esc退出并保存

#运行frps
nohup ./frps -c frps.ini >/dev/null 2>&1 &

四、阿里云服务器开放端口

这里开放2000、5000、7000、6391四个端口,2000用户frps和frpc进行通信,其余三个映射到我们对于的内网服务器,后面用。入方向和出方向都开放一下端口。

003

五、群晖docker安装frpc客户端

在docker注册表搜索chenhw2/frp,点击下载。

004

在映像中点击chenhw2/frp运行。

005

使用与Docker Host相同的网络。

006

容器名称随意,高级设置中,把环境变量ARGS改为frpc,代表客户端。

007

在群晖中提前准备好frpc.ini文件,文件内容如下:

[common]
server_addr = 106.15.61.243
server_port = 2000
token = aliyunhep

[DS918]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000

[chevereto]
type = tcp
local_ip = 127.0.0.1
local_port = 6391
remote_port = 6391

[wordpress]
type = tcp
local_ip = 127.0.0.1
local_port = 7000
remote_port = 7000

server_addr对应于云服务器的公网IP,server_port为设置的与frps的通信端口号。

items explain
[DS918] 名称
type = tcp 连接类型
local_ip = 127.0.0.1 局域网ip,这里对应群晖的本地地址
local_port = 5000 本地端口,这里是群晖DSM端口
remote_port = 5000 外部端口,对应于云服务暴露外网的端口

把frpc.ini映射到docker容器,映射到容器的路径为/frp/frpc.ini。

008

image-20230305134715507

完成即可。

image-20230305134803696

六、外网访问群晖DSM

浏览器输入http://106.15.61.243:5000 进行访问

image-20230305134933040

chereveto也可以访问的,地址为http://106.15.61.243:6391/。

image-20230305135006771

如果在另外一个局域网中的设备也想加入到frp,那就在那个局域网安装一个frpc进行设置即可,这样就可以把多个不同地方的局域网都连接到frp中了。

七、域名访问

在域名解析中添加一条A类型的记录,记录值为云服务器公网IP地址。

002

把上面配置文件server_addr = 106.15.61.243改为server_addr = www.huerpu.cc,然后重启frps和frpc服务。

然后就可以通过http://www.huerpu.cc:5000 、 http://www.huerpu.cc:7000http://www.huerpu.cc:6391 进行访问啦。

大功告成,enjoy your frp。

发表回复