前言
作者是个技术小白,非计算机相关专业,习惯使用宝塔面板建站、部署SSL证书比较方便。因为使用移动宽带,有内网穿透需求。所以,需要在不影响云服务器搭建网站的同时,使用frp进行内网穿透。
frp 是一个高性能的反向代理应用,支持 tcp, udp, http, https 协议。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。
需要准备的东西:
- 一台装好宝塔面板和Nginx的服务器,这里使用腾讯云轻量应用服务器。
- 一个解析好的域名,最好使用支持泛解析的服务,这里使用腾讯DNSPod。
1.配置frp服务端(frps)
首先用ssh连接vps,切换到root用户,输入脚本安装命令安装frps。
Aliyun(大陆地区VPS适用)
wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh./install-frps.sh install ./install-frps.sh install
Github
wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh ./install-frps.sh install
注意:http和https不能使用默认80和443端口,需要做修改,也就是说除了80,443外,1-65535任意端口都可以,前提是不能有其他项目占用想要设置的端口,比如作者用808代替80端口,909代替443,这样就可以避开其他程序占用80或443的问题。
其他设置如图所示,一路回车即可。遇到需要修改用户名和密码的地方,可以按需修改,也可以默认,最后会把所有信息列出来。
这一步是让你确认配置,还没有安装成功,继续按回车键,等待自动安装完成。
至此,frp服务端安装完成。
注意!注意!注意!
必须开放对应的防火墙端口,需要开放的端口包括808、909、5443、6443。
云服务器和宝塔面板的防火墙都需要开放对应端口!!!
2.宝塔面板配置
2.1域名解析
提前解析好域名,如果你的域名支持泛解析的话,就一起做解析,操作方法就是在A记录中添加一个“*”即可。
本文使用的是二级域名进行泛解析。
如果域名解析商不支持泛解析,也不影响后续操作,把需要用到的域名全部解析即可。
2.2宝塔面板建站
首先点击左侧的
网站
,之后点击上方绿色的
添加站点
,把你对应远程设备的域名都添加进宝塔面板的网站域名中即可,后续有增加,也要跟着添加进来。PHP版本选择
纯静态
。
2.3设置反向代理
点击新建站点的
设置
,点击对话框中左侧的
反向代理
。代理名称随便写,目标URL输入
http://127.0.0.1:808
,点击
保存
。
至此,反向代理配置完成。
3.frp客户端配置(frpc)
3.1OpenWrt中frp内网穿透客户端
注意:固件是否集成frp内网穿透插件,要看编译固件的作者。如果没有集成该插件,可自行安装。
进入
服务-frp内网穿透
,具体设置如下:
点击保存后继续点击下方的
添加
,进行内网设备的相应设置。
3.2群晖DSM使用frp客户端
如果没有OpenWrt,可以在群晖使用frpc docker进行内网穿透。
3.2.1Docker镜像下载
打开
Docker
,点击
注册表
,搜索
frpc
。选择
stilleshan/frpc
下载,选择
latest
为最新版本。这个镜像是参考教程的博主部署的。
3.2.2配置frpc.ini
在群晖NAS任意位置新建或者上传frpc.ini文件。使用群晖的文本编辑套件或
Notepad++
等编辑器来创建和编辑.ini文件,避免Windows下的后缀问题导致容器错误。
本文以
/docker/frpc/frpc.ini
为例,文件路径如图:
frpc.ini配置示例
[common] server_addr = 服务器IP server_port = 5443 token = abc123 [nas] type = http local_port = 5000 subdomain = nas [jellyfin] type = http local_port = 8096 subdomain = dy
3.2.3创建容器
选择
映像
,双击
stilleshan/frpc:latest
。
勾选
使用高权限执行容器
,点击
高级设置
。
选择卷,添加文件,指定到你frpc.ini所在的位置,装载路径为
/frp/frpc.ini
。
注意:装载路径由镜像作者规定,不能修改,请直接复制粘贴。
选择
网络
,勾选
使用与Docker Host相同的网络
,点击
应用
。
点击
应用
完成配置。
容器中可以看到frpc正在运行中。之后可以随时停止容器,编辑frpc.ini来配置你的域名,再次启动容器即可。全程无需使用命令行来操作。
至此,全部配置完成,可以随时随地访问自己的内网设备了~
4.实现SSL访问
4.1申请证书
通过腾讯云DNSPod申请免费证书,有效期1年。申请后很快会提示通过,申请了2次都在5分钟内审核成功。
申请成功后,服务器类型
其他
,点击
下载
。
4.2部署证书
登录宝塔面板,打开
网站
,站点设置
SSL
,将对应的key和pem文本粘贴进去,点击
保存
,开启
强制HTTPS
即可。
注意:免费证书不支持泛域名,所以必须单独设置解析,单独添加站点开启HTTPS访问。
5.脚本相关命令
Uninstall(卸载)
1
|
./install-frps.sh uninstall
|
Update(更新)
1
|
./install-frps.sh update
|
Server management(服务管理器)
1
|
frps start|stop|restart|status|config|version
|
需要注意的问题
如果你使用的国内服务器,因为没有备案,即使设置成功也无法使用域名直接访问。
解决方案:
- 使用香港或国外服务器;
- 申请备案。
参考链接: