折腾笔记

折腾笔记

绿联私有云部署 FRP内网穿透教程

2023-05-15

前言

本期教程为frp内网穿透教程,FRP是一种用于实现内网穿透的工具,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且相关服务支持使用二级域名的方式来访问,这里需要说明一下,绿联已经提供了速度比较快的外网穿透服务,本篇教程是给那些拥有一个比较不错的公网服务器的人提供更多的访问方式,基于此教程你可以实现使用自己的域名来管理绿联设备,以及访问部署在绿联云上的服务。

前期准备

  • SSH工具:FinalShell 下载地址

  • 一台具有公网ip的云服务器

服务器端操作

各云厂商后后台操作页面有区别,但是步骤都是相同的,一般云服务区厂商首次购买都有优惠价格一般在100元以内(2核心2G内存5m带宽的)比较知名的腾讯云、阿里云、华为云、金山云等。

1、 首先登陆华为云,重置系统为Ubuntu22.04 server版本(其他系统也行,不清楚系统之前区别的请完全按照本教程的操作步骤)。

2、 重装系统以后,使用ssh工具登陆云服务器,用户名为root,登录密码为重装系统时候设置的密码。

3、 因为frps官方安装需要vi编辑器和linux等命令,这里为了简便,采用github上开源的一键脚本安装frps,脚本有两个源,国外VPS用Github的源,国内的VPS建议使用Gitee源,要不可能很慢。

Gitee(Gitee源)
#下载脚本(依次复制输入)
wget https://gitee.com/mvscode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh
#设置脚本权限
chmod 700 ./install-frps.sh
#运行脚本
./install-frps.sh install

Github(谷歌源)
#下载脚本
wget https://raw.githubusercontent.com/fangkuaiwu/frps-onekey/master/install-frps.sh -O ./install-frps.sh
#设置脚本权限
chmod 700 ./install-frps.sh
#运行脚本
./install-frps.sh install

4、本教程使用的是华为云国内服务器,因此使用Gitee的源,依次输入命令,如下图。

5、输入第三条运行脚本以后回车进入配置界面。

6、选择下载frps的下载地址,这里面我们选择【1】。
7、跳转到端口配置页面继续完成服务端配置。

FRP端口配置

下面的一些端口号及配置请根据自身选择输入,不要完全按照我的照搬,如果不明白端口的意思就按照我的输入,在教程完成之后,明白了端口的意义,在根据自身需求修改。(尤其标记重要的请一定要修改)
1、 输入frps的通信端口,请根据自己需求输入,我这里输入【7000】.
image.png
2、 输入http通信端口,我这里输入【8880】(重要)。
image.png
3、 输入https通信端口,我这里输入【8443】(重要)。
image.png
4、输入frp信息面板端口,我这里输入【8444】
image.png
5、分别输入管理面板用户名和密码,例如用户名为admin,管理密码为admin(重要)。
image.png
6、输入通信密码,示例: 12345678(重要)
image.png
7、设置域名,如果有就填写,没有就默认IP,这里我选择默认。

8、 接下来的步骤一路默认敲击回车就行。


9、出现这个界面核对之前输入的信息是否正确,然后按回车。

10、回车以后脚本会自动执行下载安装配置,因为网络问题速度有点慢,请耐心等待。

11、 稍等片刻,会出现如下界面。
image.png
12、登陆华为云控制台点击服务器找到【安全组】开放1、2、3、4步骤中配置的端口,这里我开放【7000】【8880】【8443【8444】】端口。(多个端口请用英文输入状态下的,隔开)



13、 浏览器输入域名(ip):端口号,如果出现下面网页说明后台搭建成功,这里我输入 http://116.204.69.121:8444 用户名和密码为步骤11设置。

14、 服务器端成功部署完成,总体来说使用一键脚本部署还是非常简单的,感谢一键脚本的开发作者。

FRP配置文件

1、在电脑新建一个文本文档粘贴一下内容。

[common]
# 服务器ip
server_addr = 116.204.69.121
# 端口
server_port = 5443
#密钥
token = 12345678

#名字,自定义
[nas]
# 类型                              
type = tcp
# 局域网内设备ip                         
local_ip = 10.0.0.3
# 局域网内设备端口           
local_port = 9999
# 监听端口*可以修改为任意字母,等号后面的数字            
remote_port = 9999

#名字,自定义
[nastool]
 # 类型  ssh类型为tcp                              
type = tcp
# 局域网内设备ip                        
local_ip = 10.0.0.3
# 局域网内设备端口          
local_port = 3000
# 监听端口*可以修改为任意字母,等号后面的数字                
remote_port = 3000

2、粘贴的时候不要粘贴上汉字、括号等,只保留类似我记事本中的相关内容,其中相关服务可以添加多个(例子)。

3、修改好内容之后将记事本另存为frpc.ini文件,注意保存类型为所有文件。

4、frp客户端配置文件制作完成

绿联云端操作

1、登录绿联私有云,打开文件管理,在docker目录下新建frp文件夹用来存储frp的配置文件。

2、将创建的frpc.ini配置文件拖动到frp文件夹中。

3、打开docker,在镜像管理→镜像仓库中搜索stilleshan/frpc,点击下载版本选择最新(latest)

4、本地镜像找到下载好的镜像,点击创建容器

5、勾选启动后启动容器。

6、重启策略选择最后一个。

7、网络选择host网络。

8、存储空间中文件/文件夹选择上传的配置文件,装载路径中填写/frp/frpc.ini(必须填写不能修改)

9、其他选项保持默认即可,然后点击下一步,再次检查配置文件没有问题之后点击完成。

10、frp成功启动。

frp穿透演示

1、打开浏览器,在地址栏中输入ip:端口号 116.204.69.121:9999,可以看到已经成功访问。

2、接着我们尝试访问另外一个服务116.204.69.121:3000,也可以成功访问。

3、登录frp的控制台:116.204.69.121:8444,输入用户名和密码(配置文件中自定义的)登录成功以后可以看到frp服务器的配置信息。

4、在左侧列表proxies中可以看到成功映射的9999、3000端口,并可以预览相关服务使用的数据流量。

使用域名访问

上面我们已经完成了frp的基本配置,并且已经可以使用ip加端口的形式来访问相关服务,但是这样在使用过程中不容易记住,所以这里演示一下如果使用域名来访问(国内服务器需要备案)。

1、登录相关的域名服务商,我这里一腾讯云为例,为域名增加解析记录。

2、当解析记录生效时就可以使用域名来访问绿联相关服务了。

二级域名访问

在使用域名访问的时候使用了域名+端口的方式访问,服务少的时候还可以,但是服务比较多的时候,容易忘记端口号,所以在演示一下如果使用二级域名的方式访问,比如访问绿联主页的时候输入lulian.ycnas.club:8880 访问媒体库的时候使用nastool.ycnas.club:8880(8880为服务器配置文件中设置的http通信端口vhost_http_port的参数,如果设置为80,在访问服务器的时候可以不用输入端口,我的80已经被占用了所以使用8880(国内服务器需要备案)。

1、实现此步骤需要在绿联docker的配置文件中增加一个参数,将绿联云的配置文件下载到桌面,并用记事本打开,记得删除监听端口remote_port 这条参数。

2、将frpc.ini重新上传到docker配置目录中,重启docker,然后就可以使用二级域名访问相关服务,此域名是我买来用来演示服务部署过程的并没有备案,但是能访问通,证明部署过程没有问题。(国外服务器可以免除备案操作)

常见问题

问题1:执行运行脚本命令的时候提示Check updates for shell...(检查shell更新)?

解决办法:虽然用的源为Gitee ,但是Gitee脚本文件实际上还是同步github的未做修改,这里多尝试几次即可,ctrl + c退出执行,然后再次执行一般2-3即可成功进入,每次出现Check updates for shell多等几秒。

问题2:已经在配置文件中添加了相关服务但是在外网无法访问?

解决办法:相关端口需要再服务器中开启。

问题3:提示如下页面。

解决办法:使用国内服务器部署frp服务,使用域名访问需要备案,国外的服务器不需要备案。

总结

自己最开始做折腾nas的时候用的就是frp,那时候因为租的是城中村的公寓,用的宽带都是房东统一安装的没有办法私拉宽带,只能用公有云服务器搭建frp来实现访问,也用了两年,期间也很稳定,解决了我不少问题,本次教程为大家提供多一种外网方式的方式,希望能帮助到有需求的朋友,咱们下一期教程再见。