frp使用手册
概述
frp 是一个专注于网络穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
原理概述
为了便于表述,通过一个云服务器经过一个能联网的终端设备访问一个录像机的例子来说明。需要具备以下条件:
-
云服务器
ip:x.x.x.x
端口:开放7000、6000,随意指定的两个端口
运行frps——frp的服务端
-
终端设备
能和云服务器进行网络连接的设备即可
运行frpc——frp的客户端
-
录像机
录像机与终端设备相连,此设备为可选。
如果只需访问终端设备,local_ip=配置为127.0.0.1即可或者不配置默认使用回环地址。
此例假设使用录像机,ip为192.168.1.88,端口为80.
-
工作流程说明
下载
包含多个版本,相信总有一款适合你,建议用新的版本,目前看配置方式都是一样的。
下载后每个压缩包内都包含以下文件
文件 | 说明 | 备注 |
---|---|---|
frpc | 客户端的执行程序 | |
frpc.ini | 客户端的执行程序的配置文件 | |
frpc_full.ini | 客户端的执行程序的全部配置项 | 配置时可从这里找自己需要的配置项 |
frps | 服务端的执行程序 | |
frps.ini | 服务端的执行程序的配置文件 | |
frps_full.ini | 服务端的执行程序的全部配置项 |
更改配置
-
服务器
在服务器上部署 frps,修改 frps.ini 文件,这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:
[common]
bind_port = 7000 #服务端的端口号
-
客户端
在和服务器互联的终端设备上部署frpc,修改frpc.ini文件
[common] server_addr = x.x.x.x#服务端的ip server_port = 7000#服务端的端口号 [web] type = tcp local_port = 80 remote_port = 6000#可通过访问云服务器的此端口号,达到访问local_ip的local_port的目的。 local_ip = 192.168.1.88#需要转发到的本地ip
执行
-
服务器
./frps -c frps.ini > out.file 2>&1 &
-
客户端
./frpc -c frps.ini > out.file 2>&1 &
应用
通过访问x.x.x.x的6000端口即可查看,当然如果映射的端口提供的是ssh服务,也可ssh访问。
验证过程弯路记录
由于录像机访问是通过http访问的,所以开始便通过代理http的方式进行了,但视频最终没有显示出来,具体原因未知,查看http网友说法是http需要将整个视频下载下来然后再播放,但我是视频流,所以。。。。未深度剖析,待高手了。
http配置说明
在具有公网 IP 的机器上部署 frps,修改 frps.ini 文件,这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:
[common]
bind_port = 7000
vhost_http_port = 6000
在需要被访问的内网机器上(SSH 服务通常监听在 22 端口)部署 frpc,修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:
[common]
server_addr = x.x.x.x
server_port = 7000
[web]
type = http
local_port = 6000
local_ip = 192.168.1.88
custom_domains = 8.142.6.184
服务端需要将7000和6000加入安全组内,即需要可以外网访问。
但实际测试发现只能浏览网页,不能预览视频。
差点方案宣告结束,但看有博主能走通,所以抄了下作业发现可以视频预览了。