FRP教程(二):TLS隧道
很多公司的防火墙都很严格,想要访问公网资源并不是易事。本文要实现的目标是,利用FRP创建一个反向代理的TLS隧道,把流量转发公网服务器的正向代理上。
拓扑简略
- 用户处在公司内网,公网可用性不高(公司防火墙对流量协议有着严格限制)
- 用户拥有一个可以通过IP访问的内网服务器
- 用户有一个位于公网的Linux云服务器
- 目标:用户在终端上设置代理,IP是内网服务器IP,端口也是内网服务器上的端口;内网服务器接到代理流量,加密,再用TLS加密,穿越公司防火墙传输给公网服务器,公网服务器解密流量,转发给公网服务器的代理进程。
实操
公网服务器
公网服务器作为FRP客户端,并且部署一个正向代理服务端,例如Shadowsocks。
部署Shadowsocks(利用Gost):
1 | gost -L ss://cipher:password@:12345 |
FRP客户端配置
1 | [common] |
这样,先对流量加密,再用TLS加密,保障传输安全
启动FRP客户端
1 | ./frpc -c ./frpc.ini |
公司内网服务器(有公网IP)
公司内网服务器作为FRP服务端,用来接收TCP连接,转发TCP流量。
FRP服务端配置
1 | [common] |
启动FRP服务端
1 | ./frps -c ./frps.ini |
连接
在终端上启动代理时,IP与端口都是公司内网服务器的,这样一来,流量会先在客户端加密,然后到达公司内网服务器,服务器对流量进行tls加密,转发给客户端,客户端解密,转发给本地正向代理服务,正向代理服务解密,流量发送给公网服务器,流量返回时会原路返回(路由可能不同,中间我们人为设置的节点是一直的)。
完成
在公司局域网里享受公网的快乐吧。