内网穿透 frp实现 外网访问本地服务【超级简单】

一、内网穿透

穿透原理
在这里插入图片描述
NAT211.133.和NAT211.134.之间需要进行通信,但开始不能直接就发数据包,我们需要一个中间人,这个就是外部索引服务器(我们假设是211.135.:7000),当NAT211.133.向211.135.:7000发送数据包,211.135.:7000是可以正常接收到数据,因为它是属于对外型开放的服务端口。当211.135.*:7000收到数据包后可以获知NAT211.133.*对外通信的临时SESSION信息(这个临时的端口,假设是6000会过期,具体的时间不同,但我个人的测试是每30秒发送一个心跳包keep住连接以保证端口维持住通信连接不断开),索引服务器此时应将此信息保存起来。而同时,NAT211.134.*也在时刻向索引服务器发送心跳包,索引服务器就向NAT211.134.发送一个通知,让它向NAT211.133.:6000发送探测包(这个数据包最好多发几个),NAT211.134.在收到通知包之后再向索引服务器发送反馈包,说明自己已经向NAT211.133.:6000发送了探测包,索引服务器在接收到反馈包之后再向NAT211.133.*转发反馈包,NAT211.133.*在接收到数据包之后再向原本要请求的NAT211.134.*发送数据包,此时连接已经打通,实现穿透,NAT211.134.*会将信息转发给192.168.1.88的9000端口

二、流程图

在这里插入图片描述

三、搭建流程

1、linux(vps,其他服务的)做中转,搭建frpc服务端

下载地址:https://github.com/fatedier/frp/releases

2、下载安装包,解压 0.3版本的
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz

tar  -zxvf  frp_0.30.0_linux_amd64.tar.gz

3、服务端配置文件
vi frps.ini    //s代表服务端
#frps.ini内容
[common]
bind_port=7000 #frp占用端口
vhost_http_port=80  #对外开放的http端口,外网从这里进入http服务

[web]
type=http
custom_domains=你的域名或者ip  

#启动服务
./frps -c ./frps.ini
#服务启动成功
2019/12/11 13:25:14 [I] [service.go:141] frps tcp listen on 0.0.0.0:7000
2019/12/11 13:25:14 [I] [service.go:183] http service listen on 0.0.0.0:80
2019/12/11 13:25:14 [I] [root.go:205] start frps success
2019/12/11 13:25:28 [I] [service.go:372] [3c9cd533f7bab9e9] client login info: ip [171.84.5.2:50916] version [0.30.0] hostname [] os [windows] arch [amd64]
3、客户端配置(我用的是windows)

windows地址,直接下载解压就好:https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip

#frpc.ini  c-->客户端
[common]
server_addr = 中转服务的ip公网地址 或者 绑定好的域名
server_port = 7000

[web]
type = http
local_ip = 127.0.0.1
local_port =8080  //本地待访问服务的端口
custom_domains = gojw.xyz  //中转服务的ip公网地址 或者 绑定好的域名

回车运行

在这里插入图片描述
在这里插入图片描述

四、测试

访问公网ip或者绑定ip的域名
直接出现本地资源的内容

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值