由于本人的阿里云服务器性能较差,内存只有2G,导致很多想法都没法实现。
例如:全文检索只能用原生Lucene,没法跑Solr或Elasticsearch、等等。
配置低,跑的服务过多主服务tomcat会被杀掉。
好在还有一台旧笔记本,配置6代i7+16G内存,想着当服务器来用。装上了Linux,服务也都能正常运行,但是有一个痛点就是无法被公网访问。
经过百度,发现有现成的产品可用,例如----花生壳。
试用之后发现速度非常慢,带宽低,且收费,遂放弃。
经过一番折腾,发现Github上有一款软件可满足需求,遂记录下来。
什么软件?
它就是----frp。
作者是这样介绍它的:
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
它能做什么?
- 通过 ssh 访问公司内网机器
- 通过自定义域名访问部署于内网的 web 服务
- 转发 DNS 查询请求
- 转发 Unix 域套接字
- 对外提供简单的文件访问服务
- 为本地 HTTP 服务启用 HTTPS
- 安全地暴露内网服务
- 点对点内网穿透
很显然,第二条正是我需要的。
内网穿透
我需要的就是,将大型项目运行在旧笔记本上,然后将服务穿透到公网,让互联网能访问我的项目。
性能较差的阿里云服务器只做一个代理,真正消耗性能的项目运行在笔记本上。
这款软件是用go语言写的,本人亲测,开启代理对性能消耗极小。
如何使用?
首先去Github找到机器对应版本的软件并下载。点我下载
由于我的系统是Linux,所以下载的是:frp_0.28.2_linux_amd64.tar.gz。
1、上传到外网服务器,解压。
2、配置frps.ini
[common]
bind_addr = 0.0.0.0
#与内网通信的端口
bind_port = 7000
#WebUI界面的用户名和密码
dashboard_user = root
dashboard_pwd = root
#WebUI界面的端口
dashboard_port = 7500
#代理端口 最终通过4000端口访问内网服务
vhost_http_port = 4000
配置好后,启动服务:
./frps -c ./frps.ini
服务器端如此配置就可以了。
3、内网服务器下载frp并解压
4、内网配置frpc.ini
[common]
#公网IP
server_addr = 116.62.153.46
#与公网通信的端口,与外网配置必须一致,否则双方无法通信
server_port = 7000
[web]
#协议类型
type = http
#本地服务端口
local_port = 4000
#二级域名
custom_domains = zt.panch.info
配置好后,启动服务:
./frpc -c ./frpc.ini
#注意
外网的执行文件是:frps 加载的配置文件是:frps.ini
内网的执行文件是:frpc 加载的配置文件是:frpc.ini
不要搞混了
外网和内网服务都配置好以后,就可以通过 zt.panch.info:4000 访问内网服务了。
速度不受影响,而且不收费,使用体验比 花生壳 好多了。