Frp 内网穿透方案详解,安全便捷的远程访问通道
内网访问需求多了,远程办公也多了,以前的办法不好用了,总觉得缺点什么,大家都在想,这到底是怎么一回事,frp 这东西冒出来了,不用装客户端,听起来就简单方便,是吧,和 ZeroTier 比起来,不太一样,ZeroTier 要装个客户端,还要分配 IP 地址,麻烦,frp 呢,弄个反向代理,服务器和客户端,把内网服务搬到公网上,简单多了。
frp 是个啥,高性能反向代理,支持好多协议,TCP,UDP,HTTP,HTTPS,都能搞定,安全,真的安全,通过公网服务器来回倒腾,保护内网服务,不用暴露内网,便捷,配置简单,不用装客户端,省事,所有人都觉得这玩意儿以后不得了,多协议支持,TCP,KCP,Websocket,选择多,连接复用,一个连接顶多个请求,快,负载均衡,代理组里平均分配,不累,还有插件,看静态文件,HTTP 代理,啥都有,还能扩展,服务端插件系统,自己定制功能,牛,UI 界面,服务端和客户端都有,看着舒服。

架构是这样的,服务端 frps,放在公网服务器上,当流量入口,客户端 frpc,放在内网服务器上,和服务器连起来,有人说,这不就是个中转站吗,还真是,不过这个中转站挺厉害,前期准备,下载 frp 安装包,github 上有,上传到服务器解压,一堆文件,frpc,frpc.ini,frps,frps.ini,都是啥,接下来得看看。
服务端配置 frps,公网服务器,得有,2C2G 够用,删掉客户端文件,留着没用,编辑 frps.ini,设置监听端口 bind\_port,授权码 token,管理员账户,设置好,启动服务端,./frps -c frps.ini,云服务器安全组,开放端口,7000,7500,还有映射端口,别忘了,Dashboard 访问,http://公网IP:7500,看看状态,还可以把 frps 弄成系统服务,开机自启,方便,写个 frps.service 文件,配置启动脚本,复制到指定目录,用 systemctl 命令管理服务,一步一步来,别着急。

客户端配置 frpc,内网服务器,编辑 frpc.ini 文件,填服务端 IP,端口,授权码,还要配置内网服务,比如 Jira 的 8080 端口,Gitlab 的 8081 端口,配置好,启动客户端,./frpc -c frpc.ini,云服务器安全组,开放 remote\_port 端口号,开放端口,效果,用公网IP:映射端口,访问内网服务,成了。
Dashboard 监控,看看连接状态,流量信息,Proxies-TCP 连接记录,一切都在掌握,还可以把 frpc 弄成本地服务,开机自启,省心,可是在那种环境下,谁能受得了,总得想个办法,让它自己启动,不是吗。

HTTP 转发启动报错,这是个问题,服务端 frps.ini 没配置 vhost\_http\_port,在 frps.ini 添加 vhost\_http\_port,客户端 frpc.ini 添加 custom\_domains,解决,代理多个 HTTP 服务,服务端不用配置 vhost\_http\_port,客户端配置多个 [web] 项,type=tcp,不用 custom\_domains,这样就行。
Frp 简单,内网穿透,不用客户端,配置灵活,支持多种服务,太方便了,必须得说,安全,记得开启防火墙,限制端口访问,设置复杂密码,安全第一,这些都要记住。