frp综合利用以及根据论坛群友讨论的一些改进
frp是一个强大的穿透代理工具,基于go编写,所以在并发和网络处理上具有天然优势。
基本使用在此不再赘述,大家可以查看frp官方文档,主要挑一些实战重点进行描述。
本文开始首先要感谢 四爷 龙哥 当当 少爷 277 不然我可能永远意识不到frp的强大功能 0.0
1.使用frp做为http代理和socks5代理服务器并经行穿透转发。
frp通过插件模块支持http代理和socks5代理;官方文档描述如下:
客户端插件模式是为了在客户端提供更加丰富的功能,目前内置的插件有 unix_domain_socket、http_proxy、socks5、static_file。通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。使用插件后 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:
# frpc.ini
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
对外提供简单的文件访问服务
通过 static_file 插件可以对外提供一个简单的基于 HTTP 的文件访问服务。
启动 frpc,启用 static_file 插件,配置如下:
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[test_static_file]
type = tcp
remote_port = 6000
plugin = static_file
# 要对外暴露的文件目录
plugin_local_path = /tmp/file
# 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc
通过代理连接 frps
在只能通过代理访问外网的环境内,frpc 支持通过 HTTP PROXY 和 frps 进行通信。
可以通过设置 HTTP_PROXY 系统环境变量或者通过在 frpc 的配置文件中设置 http_proxy 参数来使用此功能。
仅在 protocol = tcp 时生效。
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
http_proxy = http://user:[email protected]:8080
4.1加密与压缩
这两个功能默认是不开启的,需要在 frpc.ini 中通过配置来为指定的代理启用加密与压缩的功能,压缩算法使用 snappy:
# frpc.ini
[ssh]
type = tcp
local_port = 22
remote_port = 6000
use_encryption = true
use_compression = true
如果传输的报文长度较长,通过设置 use_compression = true 对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 cpu 资源。
4.2TLS
从 v0.25.0 版本开始 frpc 和 frps 之间支持通过 TLS 协议加密传输。通过在 frpc.ini 的 common 中配置 tls_enable = true 来启用此功能,安全性更高。
为了端口复用,frp 建立 TLS 连接的第一个字节为 0x17。
通过将 frps.ini 的 [common] 中 tls_only 设置为 true,可以强制 frps 只接受 TLS 连接。
5.把frpc.ini隐藏到应用里。
这个功能frpc官方并没有进行实现,本菜对代码进行了粗糙的更改。
github地址:https://github.com/nbsp-null/frp/
首先安装go环境,https://golang.org/ win环境下支持一键安装
然后把File_contet内的配置文件替换成自己的配置文件
最后在项目根目录运行:go build ./cmd/frpc
就生成了自带ini文件的frpc.exe
评论22次
谢谢师傅,学xi了
谢谢,又学xi了新姿势。
frp很稳,代码 写得也漂亮.....但不太适合渗透中用,因为文件 有点多,
搞个树莓派安排上frp远程控制下载小片片美滋滋。
学xi了,感谢各位大佬分享
frp比ew稳定好像
学xi了师傅 很干货
frp太重了,自己写个代理多好
frpc远程管理比较麻烦, 这点nps比较好。 性能上测试过,frp要优于nps
搞个树莓派安排上frp远程控制下载小片片美滋滋。
带宽够用吗,下小片可是非常需要带宽的。
谢谢,又学xi了新姿势。
nps也不错
专门买了一台阿里云机器做SSH转发,再也不用登录VPN管理了,美滋滋。
自从有了frp再也不要lcx了
FRP唯一的缺点就是 体积大不宜传输,二 就是 配置文件经常性忘记删除导致可悲溯源。是否可以改成远程加载模式?这样就能防止被获取到配置文件。
@Anonymous 好像有一个做dns转发的插件
插件叫什么名称?
@Anonymous 好像有一个做dns转发的插件
自己撸了个端口转发工具 一直用的很爽
如何目标只能出dns流量呢
frp 还是蛮强大的,不过有时frpc 和frps 会混淆
frpc 是frpclient 客户端的意思 frps 是frpserver 服务器