
使用公网ip云服务器+frp实现内网穿透

在暑假购买了一台小型PC当服务器使用,但是家用wifi只有内网ip,为此需要内网穿透使server服务可以被访问,在开始使用的是花生壳内网穿透,效果很好,使用也很简单,但是随着服务的不断增加,逐渐感觉到瓶颈。最主要的方面就是对域名的映射只有两条,意味着我只能部署两个独立服务,而上次看到有一个读论文的优秀开源项目,并且成功的部署到服务器上时,我发现没有多余的映射资源让我对本地端口进行映射。为此打算另寻出路寻找其他的内网穿透解决方案。
其实之前也看到好多人说使用frp的,但是需要一个公网ip,而我去搜到的ip的价格都很贵,为此这个方案一直没有进行,但是后来听学长越哥说,用学生身份来申请带公网ip的云服务器会便宜很多,腾讯云一年只要112,于是高高兴兴的买到了手(结果今天复盘时又看了一眼,发现双十一降价到88元了55555),开始着手这一套方案。
其实frp的文档也是比较全面的,对中文的支持程度也很高,只参考官方文档就可以完全运行下来。帮助手册可以参考:
简单来说,frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
当前版本的frp(0.52)分为两部分,frps
、frpc
,通过.toml
文件进行配置,不过搜索网上有关信息时看到之前的frp使用.init
文件进行配置,不过本质不变。frps
用于部署在拥有公网ip的服务器上、frpc
用于部署在内网服务器上。需要注意的是当前版本的frp并没有自带.toml
文件,为此需要自己新建。按照需求配置好文件之后,分别在公网服务器和内网服务器运行:
1 | # 公网服务器 |
这里提一提我配置的.toml
文件,有关如何按照自己的需求配置该文件,在官方文档已经给出了详细的demo帮助,以下是我的frps.toml
文件
1 | bindPort = 7000 |
frpc.toml
文件
1 | serverAddr = "43.143.209.xxx" # 我的公网ip,这儿稍作加密 |
最后,可以看出我配置出来的frp
映射内网服务时监听的公网端口是8080,所以访问的时候需要输入http://academic.yeren.site:8080才能够正常访问,而通过在公网服务器上部署nginx反向代理,可以消去讨厌又多余的端口号,这儿只提供一个简单的配置文件,不再多提
1 | server { |
最后,再来提一提遇到的坑,最主要的坑就是这个云服务器了,最难受的就是昨天原价112刚买完,今天就降价到88,心痛QAQ。
还有的问题就是云服务器的防火墙了,每启动一个对应端口,都要在dashboard中允许对其端口的访问,否则无法访问,我就是在这块寄了好久,死活想不到原因,最后冷静复盘的时候才想起要修改这个防火墙,有点难绷。
还有就是这个云服务器绑定域名后需要备案,感觉这个应该是我把刚买的yeren.site域名在云端dashboard里绑定给了这个公网ip,所以他才让我必须要备案,否则应该是可以跳过的,不过我也无所谓了,备案就备案吧,后面要是搞的好一点,多点流量还可以接广告赚点米哈哈哈。不过这个流程很麻烦就是了。
之前本来打算自己写点项目部署的,结果一直没有时间,也只能跑跑开源项目尝尝鲜了。打算后面自己写的项目有一个表情包网站,一个多人联机游戏网站,看看什么时候有时间再写吧,以上。
- Title: 使用公网ip云服务器+frp实现内网穿透
- Author: Yeren
- Created at : 2023-10-24 00:00:00
- Updated at : 2023-10-24 00:00:00
- Link: https://blog.yeren.xyz/2023/10/24/231024-Tech/
- License: This work is licensed under CC BY-NC-SA 4.0.