使用 frp 搭建内网穿透
使用 frp 搭建内网穿透
一、什么是 frp
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
- 在办公室访问家里的电脑,反之亦然
- 自己电脑上的项目,方便发给客户朋友演示。比如我做了个小网站,发给朋友看看未上线版本,发个url给他就好了。
- 调试一些需要远程调用的程序,远程调用比如微信的API 回调接口。
二、服务端搭建
修改配置文件
frps.ini
1
2
3
4
5
6[common]
bind_port = 7000
max_pool_count = 5
max_ports_per_client = 0
authentication_timeout = 900启动项目
1
./frps -c ./frps.ini
三、客户端搭建
修改配置文件
frpc.ini
1
2
3
4
5
6
7
8[common]
server_addr = 公网ip地址
server_port = 7000
[ssh]
type = tcp
local_ip = 本地地址
local_port = 本地端口
remote_port = 远程端口common 为通用配置
- server_addr 为公网服务器 IP 地址(云服务器IP)
- server_port 为公网服务器配置的端口
ssh 用于终端命令行访问
- type 连接类型,默认为 tcp
- local_ip 本地 IP
- local_port 用于 ssh 的端口号,默认 22
- remote_port 映射的服务端端口,访问该端口时默认转发到客户端的 22 端口
启动项目
1
./frpc -c ./frpc.ini
四、文件结构和配置详情
1. 文件结构
- frpc # 客户端二进制文件
- frpc_full.ini # 客户端配置文件完整示例
- frpc.ini # 客户端配置文件
- frps # 服务端二进制文件
- frps_full.ini # 服务端配置文件完整示例
- frps.ini # 服务端配置文件
2. 服务端配置
1 | [common] # 通用配置段 |
3. 客户端配置
1 | [common] # 通用配置段 |
五、注册系统服务
1 | [root@server ~]# vim /usr/lib/systemd/system/frps.service |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Fabian Bao!
评论