最近搞了一个工控机,简单搭建了一个Alist服务,但是Alist服务在内网中,外网无法访问,故想通过FRP外加一个云服务器实现内网穿透,使Alist服务暴露在公网中。
声明:该教程仅仅是实现功能,安全性非常低,仅供参考。
我的环境:Windows10(内网Alist服务机器)+Centos7(云服务器)
开始搭建!
1.了解FRP
(纯个人见解)简单理解,FRP由两部分组成 FRPC 和 FRPS。FRPC为FRP客户端,用于连接FRP服务端,一般部署在需要穿透服务的机器中。FRPS为FRP服务端,提供外网访问,一般部署于能够被外网访问能力机器中。结合上述环境,则需要在Windows10中部署FRPC,Centos7中部署FRPS。
2.Windows部署FRPC
下载Windows版FRP:Releases · fatedier/frp · GitHub
如果打不开上述网址,使用云盘下载(这里只保留了教程所需版本)
https://wwae.lanzoub.com/b00r7ra3a 密码:acd9
选择好自己的版本,下载解压。
解压好的文件结构:
修改frpc.ini
[common]
server_addr修改为公网服务器的ip,也就是一会要部署FRPS的服务器的ip
server_port可以不修改,保证公网服务器该端口防火墙放行
下面这个[ssh]可以先删除,因为我们要穿透alist服务。
添加下属内容:
type这里设置为tcp模式
local_ip表示本地服务ip,一般为127.0.0.1 或者 localhost
local_port表示本地服务的端口,Alist服务位于5244,则这里填写5244
remote_port表示远程服务器的端口,效果就是 公网ip+remote_port 就能访问内网的5244服务,要注意remote_port端口防火墙放行
至此,FRPC部署完成。
3.Centos7部署FRPS
下载Linux版FRP:wget https://github.com/fatedier/frp/releases/download/v0.50.0/frp_0.50.0_linux_amd64.tar.gz
如果遇到无法下载情况,可以使用上面网盘进行下载,通过终端工具上传到服务器中。
解压下载好的文件:tar -zxvf frp_0.50.0_linux_amd64.tar.gz
进入根目录:cd frp_0.50.0_linux_amd64
编辑frps.ini:vim frps.ini
这两个端口和刚刚FRPC的server_port要保持一致即可,注意:防火墙放行7000端口,以及在FRPC的所有remote_port端口!!!
至此,FRPS部署完成。
4.启动FRPS和FRPC
(1)启动FRPS
启动FRPS(云服务器,Centos7),来到frp根目录执行:nohup ./frps -c ./frps.ini &
查看一下日志:cat nohup.out
看到frps started successfully 表示FRPS启动成功。
(2)启动FRPC
启动FRPC(本地机器,Windows),来到frp根目录进入CMD执行:.\frpc -c .\frps.ini
看到start proxy success 代表FRPC启动成功。
5.访问服务
确保server_port 和 remote_port 防火墙端口放行后,浏览器输入:
可以看到,我们内网的Alist服务,已经可以通过公网进行访问了。
6.综述
该篇文章只进行了最简单的内网穿透方式,实现了Alist公网访问,同时也可以实现内网MySQL在公网访问,我的世界内网服务器公网访问等等,FRP官方还有stcp,xtcp等模式,有兴趣的同学可以移步frp官网进行探索。
此外,如果有同学没有公网服务器,点赞,评论该文章,我会在评论区一一回复提供一个FRPS的秘钥,用于穿透你自己的内网服务,欢迎前来体验(一个加拿大服务器,带宽宣称1000M,可能没有专线,实测速度比较慢,仅供测试)。