frp内网穿透保姆级教学(访问内网Web服务)

一、搭建经历

!本段不涉及教学,着急的朋友请直接看第二大段的教学

1、ngrok尝试

最近开发的公众号功能需要进行本地测试,但微信能力平台的接口请求无法发送到自己电脑上跑的本地项目,总不可能先打包到服务器上进行测试,出问题再打包部署的(low)。此处就需要进行到内网(NAT)穿透,简单说就是需要讲内网电脑的特定端口暴露给公网进行访问。

由于没啥特别的需求,比如支持udp,ssh啥的,只是单纯的进行web服务调试,所以一开始选择的方案是简单易用的傻瓜式ngrok,下载解压,一句ngrok http xxxx(端口号)就可以搞定。

内网穿透是搞定了,但微信平台的接口请求就是发不过来,自己打开生成的外网链接一看,好家伙,ngrok新版本中,新ip访问第一次有一个warning页面…,大致意思就是怕有人拿内网映射进行诈骗和一些违法犯罪的事情,需要手动点击访问网站后才能以后的访问中关掉这个页面,微信平台只是发起GET请求,鬼帮我点这个页面啊,所以请求就一直失败。解决的方案也很简单,因为微信平台发起的请求我们修改不了,所以只需要升级ngrok账户,专业版一个月20美刀…,气不过直接放弃。
在这里插入图片描述
————————
在这里插入图片描述

2、钉钉开放能力平台尝试

尝试ngrok无果后,问了下朋友,转战钉钉开放能力平台的内网穿透,因为钉钉的内网穿透是基于ngrok封装的,所以使用起来也非常简单,可能会没有上面warning页的问题。然后一通操作猛如虎:在工具github官方开源仓库上下载,做映射,取自定义域名,愣是怎么回车都是失败。结果一上钉钉能力平台官网,好家伙…,7月21号就已经废弃了…害
在这里插入图片描述

3、frp内网穿透搭建

尝试两个工具无果后,已经没啥心情了,果然没办法偷懒。内网穿透的工具和专门做这个的网站很多,但比如还有nps、ew、网云穿啥的。网站咱们就排除了,首先我个人会不太放心(似乎很没有意义),其次网站用多了基本要收费。
工具里选择frp也是认真了解考虑,frp搭建好后比较稳定(公网url固定),穿透方便(一条cmd命令即可),免费,配置功能简单,反向代理,支持 TCP、UDP、HTTP、HTTPS等,安全,github上近60k的start。总而言之,强大好用,就是配置没接触过,或许有些麻烦,但咱们可以一劳永逸啊!抄起键盘就是干!

二、frp搭建内网穿透教学

1、前言

  1. frp官方文档
  2. 简单介绍一下,frp主要有两个部分,客户端(frpc)服务端(frps),服务端需要部署在具有公网IP的机器上(也就是我们自己买的ecs),客户端就是我们需要进行穿透的电脑(本地机器)

搭建环境

服务端:腾讯云的CentOS7.3,使用了宝塔面板
客户端:Window10专业版
frp版本:0.42.0
如果环境一致,搭建起来必定没有问题。

2、服务端搭建(Server)

  1. 首先需要在服务端下载frp并解压,通过SSH连接服务器或宝塔面板命令终端进行下载。输入命令arch查看处理器架构,下载对应的frp版本。
    在这里插入图片描述
  2. 这里的版本是“X86_64”,选择“amd64”版本即可(版本可以去frp的github仓库找),继续输入命令wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz,等待下载完成即可。
    在这里插入图片描述
  3. 下载好后进行解压,输入命令tar -zxvf frp_0.42.0_linux_amd64.tar.gz

在这里插入图片描述

  1. 解压好后,使用宝塔的同学在文件目录中里的/root/frp_0.42.0_linux_amd64可以找到解压文件。使用SSH连接的同学输入命令cd frp_0.42.0_linux_amd64可以进入。

在这里插入图片描述

  1. 这里我们只需要修改“frps.ini”文件的配置就可以了。由于只需要进行Web服务的穿透访问,这里只配置Web,其他配置按需百度添加即可,重点是成功搭建并运行。

在这里插入图片描述

  1. 配置好后,在frp_0.42.0_linux_amd64当前文件目录输入命令nohup ./frps -c ./frps.ini &,会在当前目录生下生成一个名为nohup.out的日志文件,打开即可查看。如果是下图这样,就是运行好了,此时程序会在后端不断执行,frp服务端基本搭建完成。

在这里插入图片描述

注意事项

  1. 第6点,linux大佬也可以用systemctl去运行,可以设置重启服务器后自动运行。
  2. 配置完后,需要宝塔面板和服务器管理面板(我这是腾讯云)的防火墙,都要放行对应的端口,比如我这是7000,7500,3000

在这里插入图片描述

  1. 如果启动失败,或者想重启服务端frp,需要先杀掉原本的运行着frp的进程。在在frp_0.42.0_linux_amd64当前文件目录输入命令lsof -i:端口号可以查看对应端口占用情况,比如下图为命令lsof -i:7000的执行结果,其中PID则为进程号。再执行命令kill -9 7880即可杀死该进程。此时可以回到服务器搭建第6点进行重启。

在这里插入图片描述

  1. frp的7500端口是frp服务器端的管理后台

在这里插入图片描述

3、客户端搭建(Client)

  1. 和服务端类似,首先去frp的github仓库下载对应版本,我的是Inter的CPU,所以下载“frp_0.42.0_windows_386.zip”,如果是amd的CPU就下载“frp_0.42.0_windows_amd64.zip”。

在这里插入图片描述

  1. 下载好后,随便在电脑一个位置解压。解压后进入文件夹,修改“frpc.ini”配置文件。同样只对web服务进行了配置。

在这里插入图片描述

  1. 配置好后,在“frpc.ini”的目录下,输入cmd命令./frpc -c frpc.ini即可完成客户端搭建,下图为成功的输出。此时在浏览器上输入“custom_domains:remote_port”即可访问到在客户端机器“local_port”端口上运行的web服务,大功告成。

在这里插入图片描述

注意事项

  1. 客户端执行./frpc -c frpc.ini命令的时候可能会弹出Window10的防火墙提醒,记得点“允许”
  2. “frpc.exe”文件不能直接双击运行
  3. 将执行命令打包成bat文件,可以双击运行或设置成开机自启
  4. 更多配置可以参考frp官网的配置文档

三、总结

frp搭建好后,使用起来非常的稳定、强大并且方便。还是推荐经常有内网穿透需求的小伙伴自己搭建一下。不要为了一时的偷懒,造成了长久的麻烦,提效是关键。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值