首先说一下一下什么是【内网穿透】?
别人是无法通过一个链接访问到你家里的电脑的某个文件夹里面的文件的,因为你家里的电脑属于内网,而能通过一个链接去访问的属于公网,所以这就需要使用【内网穿透】这一个技术概念去实现远程访问家里电脑。
一、frp是什么?
frp 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。此外,还可以通过 xtcp 实现 P2P 通信。
frp整个服务过程就是这样,与其说是免费,实际上你也是需要一台服务器来实现。如果你有服务器,那就好办,如果没有服务器,要么购买服务器,要么就借用他人服务器去搭建这个frp穿透服务。
二、frp下载地址
frp官方地址:https://gofrp.org/zh-cn/
frp官方文档:https://gofrp.org/zh-cn/docs/
frp GitHub下载地址:https://github.com/fatedier/frp/releases
三、教程开始
教程开始之前,首先说一下需要哪些东西!
环境需要:
1.一台Linux服务器
2.一台电脑
3.一个域名(一级、二级、三级无所谓)
1、下载服务端frp文件
下载地址:https://github.com/fatedier/frp/releases?page=2
大家完全按照图文教程走即可,下载的两个文件Linux版本的是要上传服务器的,Windowns的是要存放自己电脑上的!
【扩展知识】:只要服务端配置好了以后,电脑本地也配置好了以后,把电脑端的配置文件打包备份一个,放到任何一台电脑上,都可以进行内外穿透,而不需要进行其他配置!
2、上传服务端文件并配置
↑ 上面服务端配置文件代码如下:
➀bind_addr:是服务器本地ip,
➁bind_port:是服务器本地开放出来用于frp的端口,
➂privilege_token:是用于服务端和客户端的一个安全验证的token令牌,
➃vhost_http_port:是服务端对外开放的一个http端口,原则上是使用80端口的,但是一般有服务器会架设80端口用于其他网站或者服务了,所以80应该会被占用,这里就使用8080代替80端口。
[common]
bind_addr = 0.0.0.0
bind_port = 7000
privilege_token = 12345678
vhost_http_port = 8080
3、开放服务器、宝塔面板端口和运行服务端文件
(1)开放服务器端口:
注意:服务器需要开放7000、8080端口!
(2)开放宝塔面板端口:
(3)运行服务端文件:
首先前往宝塔面板首页,点击左侧菜单栏选项的”终端“,然后先通过cd命令进入frp服务端文件目录,然后执行下方命令!
./frps -c ./frps.ini
PS:上面的命令关掉终端就会停止,如果想一直运行,可以替换为下面的命令!
nohup ./frps -c ./frps.ini > frps.log 2>&1 &
5、配置反向代理
为什么要配置反向代理,这样就可以把你服务器内网穿透的地址代理到域名上,然后你后续访问这个域名就可以查看本地内网穿透的东西了!
6、本地电脑客户端配置
在自己电脑任意盘符创建一个frp文件夹,然后把下载的windows的frp文件拷贝到frp文件夹下,然后解压,如下图所示,然后找到frpc.ini文件写入配置文件!
[common]
server_addr = 填写自己服务器IP地址
server_port = 7000
privilege_token = 12345678
[httpname]
type = http
local_port = 填写自己本地需要映射的端口
local_ip = 127.0.0.1
custom_domains = 填写自己反向代理的域名(不需要写http)
7、启动本地内网穿透
找到本地自己创建的frp文件夹,然后在地址栏输入cmd,进入终端界面,输入frpc.exe运行内网穿透!这里我们创建的frp文件夹在“C:\Program Files (x86)\frp”(你们则需要找到自己创建的frp文件夹)
8、查看是否内网穿透成功:
你直接访问直接自己配置的反向代理域名要是可以成功访问,说明映射成功!这里我们映射的是本地8888端口,然后我们直接使用apifox请求自己写的接口是否可以成功访问,就知道是否成功!
结语:
只要完全按照我们的教程一步一步弄,就一定可以成功,到这里我们的教程就全部结束了,内网穿透在很多时候可以帮助我们在测试和开发很多东西的时候使用,也希望本次教程对大家有用!