LoginSignup
0
0

More than 1 year has passed since last update.

内网穿透神器——frp

Posted at

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp、 udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

如果你之前用过ngrok,一定不会对frp的功能陌生。ngrok 开源版好久没更新了,高级版需要花钱。

内网穿透

通俗的讲,我在本地启动了个http服务,只能在局域网访问,怎么能让局域网外的人瞧瞧呢?这就需要内网的服务摆脱限制,穿透到外网去,顾名思义了 “内网穿透”。

哲学三问之:有什么用

做过 微信开发 么,在验证 远程服务地址 的时候,需要频繁的修改,或者远程服务器不能随意修改,有固定的发布日期。

你可以在本地修改,通过内网穿透 映射到到一个远程服务地址, 微信链接到这个远程地址,其实链接的是本地开发环境。等全部功能开发完毕,统一部署到正式的远程服务器上,这方便的很啊。

通过自定义域名访问部署于内网的 web 服务

下载

服务器端

需要先买好一台vps,部署好环境,ip是 x.x.x.x,并在防火墙上开启5555、3000端口。服务器端运行的是 frp-s命令。

# frps.ini 文件
[common]
bind_port = 5555
vhost_http_port=3000 # 远程服务要映射的端口号

运行 frps -c ./frps.ini

本地服务

本地端运行的是 frp-c命令。

# frpc.ini 文件
[common]
server_addr = x.x.x.x
server_port = 5555

[web]
type = http
local_port = 3000 #本地服务3000端口
custom_domains = x.x.x.x 

运行 frpc -c ./frpc.ini

启动本地服务

确保启动frps,再启动frpc,最后在启动本地的http服务。
好比有个nodejs项目, 使用 npm start 启动服务。

过程

本地3000端口的服务,映射到了 x.x.x.x:3000
localhost:3000 => frpc => 5555端口 => frps => x.x.x.x:3000

访问端口可以不一样,本地8000端口的服务,映射到了 x.x.x.x:4000
localhost:8000 => frpc => 5555端口 => frps => x.x.x.x:4000

你也可以用不同的端口映射
localhost:8000 => frpc => 6666端口 => frps => x.x.x.x:4000

都可以通过配置文件进行修改

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3kh51td0b3ggw


参考:

http://wjp2013.github.io/tool/frp/
https://github.com/fatedier/frp/blob/master/README_zh.md
https://blog.ilemonrain.com/linux/frp-for-proxyconnect.html
https://www.jianshu.com/p/057e3266f380
https://github.com/cnlh/nps

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0