前言
去年有整理过《jenkins自动化构建最佳实践》,其中提到内网穿透的方案,那是阿里出的一个临时工具,实际上并不好用。因为他仅仅是个临时方案,超过一定时长会掉线。
由于特定的场景,我有台闲置的 MacBook Pro 处于长期开机中,主要用于编译的任务。
今天大致的介绍下我是如何使用frp的,frp可以理解整一个代理软件,分为服务器端和客户端。像我这个需求就必须需要一台带外网IP的服务器,在这台服务器进行 frps 的相关配置,而在macbook上进行 frpc 相关配置。
服务器端配置 frps.ini
1 | # frps.ini |
启动方式:frps -c ./frps.ini
token = 123456
这个参数比较重要,要与客户端一致,用于验证。- 几个开启服务器端的
7000
,8000
,7500
以及客户端需要用到的端口。
客户端配置 frc.ini
1 | #frc.ini |
启动方式:frpc -c ./frpc.ini
- 通过
http://服务器端IP:7500
即可访问daskbord 查阅当前端口使用情况。 - 配置DNS将指定域名指向服务器端的,随后外网就可以通过
http://xxx.fanfq.com:8000
,访问客户端8000
端口。
多客户端,多端口配置
如果此时有另外一台客户端也需要做内网穿透,那么如下配置新的客户端即可。
1 | #frc.ini |
其中通讯协议采用 type = tcp
,而 remote_port = 8083
是指告诉服务器端通过此端口访问。
那么此时通过 http://xxx.fanfq.com:8083
,http://xxx.fanfq.com:8084
即可访问此客户端了。
扩展
https
,反向代理
支持。比如通过https://xxx.fanfq.com
- >http://xxx.fanfq.com:8083
在服务器端通过nginx
配置证书以及反向代理即可开机自启动,这个方式太多了就不多介绍了。