10分钟搭建一个内网穿透服务

FRP 内网穿透

需求背景

最近小王公司接个对接公众账号应用开发的项目,其中有个功能需求是"用户关注公众账号后发送特定消息后公众账号需要回复一个二维码海报“。了解需求后,便查看了微信接口文档说明,公众账号需要配置一个回调地址做通知。经验丰富的小王,一看很简单嘛,便分分钟对接微信文档实现了功能,部署时需要把程序开发好的服务部署到公司的公网测试服务器上进行调试,一来一回半天时间没有了!咋办呢? 为了节约小时,有什么方法能让回调地址直接到通知到自己的电脑上进行调试呢。百度了下,原来方法挺多,什么natapp啊,花生壳啊,frp ,对比下,netapp,花生壳高级点的功能都要收费, frp 需要自己配置,但是需要一台公网服务器穿透,正好公司有一台闲置的服务器,于是便搭建了内网穿透进行调试,很快项目顺利完成验收上线。

拓扑图

image-20210920213549818

FTP 需要公网服务器上转一个服务端应用,在需要穿透的内网机器需要安装一个客户端程序,完成配置启动应用后,即可进行外网访问,十分方便,搭建过程10分钟内就能搞定。

介绍

GitHub 地址:https://github.com/fatedier/frp

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

服务端安装

  • 下载安装
# 进入服务器进入进行wget 下载
cd /usr/local
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_arm64.tar.gz
# 解压
tar -zxvf frp_0.24.1_linux_amd64.tar.gz
#进入目录删除客户端配置
 cd frp_0.24.1_linux_amd64/
 rm -f frpc
 rm -f frpc.ini
  • 配置服务器配置文件 frps.ini

    [common]
    #服务器监听端口
    bind_port = 7000
    #对网穿透http端口
    vhost_http_port =80
    #管理页面防访问端口
    dashboard_port = 7500
    # dashboard's username and password are both optional,if not set,       default is admin.
    dashboard_user = admin
    dashboard_pwd = 123456
    
  • 启动

    ./frps -c ./frps.ini
    

    访问看dashboard, dashboard 中可以看到连接穿透的客户端信息。

    http://47.104.17.91:7500

    image-20210920214439864

客户端配置

同上服务器端下载安装包解压配置,删除frps.ini 文件,只配置客户端配置 frpc.ini

[common]
#服务端地址
server_addr = 47.104.17.91
#服务端监听端口,对应服务器bind_port
server_port = 7000

#应用名称
[my_web]
# 协议
type = http
#本地应用端口名称
local_port = 8888
#访问穿透域名
custom_domains = test.monkeytit.com


  • 启动

    ./frpc -c ./frpc.ini
    
  • 本地启动一个测试springboot 服务,端口8888 项目

  • 解析域名到咱们的外网服务器 test.monkeytit.com

  • 访问测试

    http://test.monkeytit.com/callback

  • TCP 穿透例子

    比如咱们在家想对公司一台内网服务器进行管理,可以配置一个远程穿透的SSH 服务。配置如下

    [common]
    #服务端地址
    server_addr = 47.104.17.91
    #服务端监听端口,对应服务器bind_port
    server_port = 7000
    
    [test_ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 222
    

    这样配置,咱们就可以通过 ssh root@47.104.17.91 -p 222 进行连接内网服务器进行管理。

  • 特别注意: 如果使用的是阿里云或者腾讯云做穿透,需要把Server的bind_port、vhost_http_port、dashboard_port 端口,配置安全组入站规则中,否则可能访问不通
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容