
内网穿透工具--FRP
最近装了黑群晖,有了内网穿透的需求,大学时做微信开发当时用过ngrok,现在貌似2.0版本不开源了,因此选择了更加易用的FRP(Fast Reverse Proxy)来搭建自己的内网穿透链路。
环境
- 1台有公网IP服务器或者VPS (没有的话可以用别人免费的frps)
- 一个自己的域名 (没有的话,用免费frps提供的域名)
FRP原理
由于ipv4地址已经用尽,因此一般家庭宽带很少给提供公网IP,另外家庭宽带暴露在公网IP下也不是很安全,因此使用内网穿透是一种比较通用的解决方案,FRP就是这种解决方案的一种实现。FRP分为server端与client端,server端是部署在有公网ip的服务器上,client端则运行在内网环境,当client启动时会主动与server端建立连接,那么server与client间就有了一个通信隧道,当用于访问公网ip机器时,通过这个隧道转发请求到内网服务器,从而达到穿透的目地,借用少数派的一张图。
部署frps
frps是运行在公网服务器上的服务,去https://github.com/fatedier/frp/releases下载对应服务器的版本后修改frps.ini
文件,可以参考完整版的frps_full.ini
文件示例。
1 | [common] |
这里配置subdomain_host
为你想要使用的自定义域名,之后启动fprs。
1 | # 启动frps服务 |
启动成功则有以下提示,则证明frps已经正常工作了。
1 | 2019/08/23 11:10:57 [I] [service.go:146] frps tcp listen on 0.0.0.0:7000 |
端口和nginx冲突
上述配置会导致frps绑定本地的80,443端口,而大多数开发者都是用nginx管理网站入口,如果出现端口冲突,需要更改这两个值,然后在nginx上使用反向代理转发请求或者直接访问frp对应的http端口,反向代理具体配置示例如下所示:
eg:
1 | # frps使用 |
部署frpc
frpc是运行在内网上的服务,假设公网是8.7.6.5,那么客户端按照如下配置
1 | [common] |
这里设置二级域名subdomain
为nas,接着把 nas.mrdear.cn
解析到对应的服务器ip地址8.7.6.5
,访问nas.mrdear.cn
的请求则都会被转发到内网的192.168.2.180:5000
地址上,到此FRP内网穿透配置完毕。
参考
- 版权声明: 感谢您的阅读,本文由屈定's Blog版权所有。如若转载,请注明出处。
- 文章标题: 内网穿透工具--FRP
- 文章链接: https://mrdear.cn/posts/tools-frp.html