frp - 内网穿透神器 - A fast reverse proxy
使用 frp 有很长一段时间了,但是一直没有写这方面的文章,每次重新配置都需要读官方的文档,略显吃力。从很长一段的文档里提取最核心的内容,显得并不那么容易。本文将讲述我是如何使用 frp 实现内网穿透,即在家里 ssh 公司的电脑以及 公司电脑上的 web 服务公开给大家使用。 frp 是我所见过的内网穿透解决方案里我最喜欢的一个,功能足够强大,可以 穿透 ssh 和 web,并支持 kcp 协议。github 地址是 https://github.com/fatedier/frp ,拥有将近 30K star,足见其实力吧。下面回归主题,使用 frp 穿透 ssh 和 web 服务。
frpc.ini 配置
如上,是 frp 客户端的基础配置,如果要配置 ssh 或者 web 服务,你继续追加即可。
frp 实现 ssh 穿透
frpc.ini 配置如下:
这里的 ssh 可以换作别的名称,不影响使用,但是不能重复哦,重复注册不成功。 frps.ini 配置如下:
这里,subdomain_host 指你的主域名,7000 是 frp 主程序的监听地址,需要跟上文中 server_port 对应。8080 是 http 的监听端口。
frp 内网穿透 web 服务
frpc.ini 配置如下:
frps.ini 配置如上,这里不再赘述。之后你可以 frps -c frps.ini 以及 frpc -c frpc.ini 来启动客户端和服务端,启动后,你就可以通过 customerdev.kpromise.top:8080 来 访问内网服务了。如果你不想要 域名后面的 8080,那就只能通过 nginx 转发了,即 你请求 customerdev.kpromise.top 时,nginx 将流量转发到 本地的 8080 端口,配置如下:
|
|
这样子,你还直接给加了 https 呢,何乐而不为!记住一点 [customerdev] 这里 customerdev 是服务名称,你随便写,但是不能重复。而 common 部分你就不要改了,反正我没改!可以多个 client 连接 同一个 server,除了 common 外,其余 服务名称不得重复。另外,还支持 流量压缩与加密,以及客户端服务端鉴权。鉴权呢,服务端和客户端的 common 配置中的 token 参数一致则身份验证通过。压缩与加密需要在 client 端指定,且只能在服务配置下,比如:
压缩后可有效加快传输速度。