一. 前言

    我在之前的文章有介绍过使用服务商提供的内网穿透,但是这也存在着一些缺点,有的服务商提供的节点并不稳定,容易掉线,一旦掉线,就直接与机器“失联”了。

    因为我本身有一台云服务器,拥有公网IP,就想用这台服务器,利用FRP技术实现群晖的内网穿透。

    虽然我的服务器带宽只有5M,无法满足正常的影音娱乐需求,但是这个就相当于服务商挂掉后的备选方案,可以进入群晖的控制台,更改或者重启服务商的服务。

 

二.原理

    在说具体步骤前想讲解一下frp的原理吧,这样即使出问题了大家至少还有个思路。

    简单来说,就是比如你想在外面用手机的 4G网络 访问家里 内网的NAS,这个正常情况下是行不通的,因为你的手机和NAS都没有公网IP,所以离开了内网是互相访问不到的。

    那么你就需要一个拥有公网IP的中介,即一台云服务器(有公网IP就行),在服务器上部署frp的服务端frps,在NAS部署frp的客户端frpc。

    这样,你就可以通过 手机 ➡️  云服务器 ➡️  frps ➡️  frpc ➡️  NAS 这个访问顺序来实现内网穿透啦!

 

三. 步骤

       比如,我的服务器是amd64的windows server,NAS是基于linux的amd64架构的系统,

       所以我应该分别下载 frp_0.36.2_linux_amd64.tar.gz 和 frp_0.36.2_windows_amd64.zip

       

 

  • 服务端

      下载好后,解压打开目录,编辑frps.ini

[common]
bind_port = 7000   #服务端监听端口,要求和客户端一致
vhost_http_port = 80
vhost_https_port = 443
token = key     #token值,客户端需要配置相同的token值

#以下设置的是dashboard监控,可以在服务器的7500端口打开监控面板查看信息
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

      配置项这几个就够了,然后控制台切到当前目录,输入启动指令

frps.exe -c frps.ini

如果是linux的话,就是

./frps -c frps.ini

其中这个 -c 是指定配置文件的意思,你可以输入 frps.exe --help 查看更多的指令,这里就不一一介绍了。

当出现下面的画面就是启动成功了

 

注意:上图配置里出现的端口 全部需要服务器开放这些端口,需要配置云服务器安全组防火墙,这里就不介绍了,可自行搜索。
有什么不懂的可以私信我哈
如果你可以通过 http://xx.xx.xx.xx:7500 访问到DashBoard(xx.xx.xx.xx为你的服务器地址
那么恭喜你,已经成功部署服务端了。

 

  • 客户端

    同样,下载后解压,进入目录,修改frpc.ini

[common]
server_addr = xx.xx.xx.xx #你的服务器地址
server_port = 7000  #与服务端的端口一致
token = key  #与服务端配置的token一致 

[service1] #该隧道的名称,可同时开启多个隧道,一个隧道对应一个端口
type = tcp 
local_ip = 127.0.0.1
local_port = 5000 #你NAS的服务端口
remote_port = 9000  #服务器穿透出去的端口

[service2] 
type = tcp
local_ip = 127.0.0.1
local_port = 8081
remote_port = 9091

然后进入NAS的控制台,切到frp目录,输入启动指令

./frpc -c frpc.ini

成功启动后如下:

 

如果你可以通过 https://xx.xx.xx.xx:9000 访问到你的NAS(xx.xx.xx.xx为你的服务器地址,9000为上图配置的remote_port
那么恭喜你,已经成功内网穿透!
本内容为合法授权发布,文章内容为作者独立观点,不代表开发云立场,未经允许不得转载。

CSDN开发云