服务器运维之Frp
1.前言
简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。
2.安装
(1) 下载后解压
直接下载相应版本的二进制包就可以解压运行了。
(2) 服务端配置
服务端配置 frps.ini 文件,我这里默认了。这里有一点要说明的就是,如果是阿里云服务,记得要开放安全组和防火墙,否则也不通的,这里我在配置的时候,这个安全组的配置还是费了功夫的,主要就是前后的两个安全组搞错了。
1 | [common] |
然后启动。
1 | ./frpcs.exe -c frpcs.ini |
(3) 客户端配置
客户端配置 frpc.ini 文件,这里主要填写服务器地址, remote_port 是远程服务器的端口,local_port 是本地服务的端口,这样就可以通过 远程服务的ip,xx.xx.xx.xx:6000,访问到内网的 127.0.0.1:22 端口了。
1 | [common] |
然后启动。
1 | ./frpc -c frpc.ini |
(4) 连接
客户端和服务端都启动后,就可以通过服务器的ip地址和端口,访问到客户端定义的端口了。
3.后台启动
如果作为服务器端的话,还要配置后台启动和自启动。
3.1.linux
1 | ## 编辑配置文件 |
【1】.使用frp进行内网穿透 简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。
【2】.Windows平台下FRP内网穿透的搭建 在windows平台上进行frp搭建
【3】.使用frp为内网服务器代理上网
【4】.高性能的内网穿透工具 frp 使用场景:统一的服务端配置;SSH 连接内网服务器;暴露内网 HTTP 服务;静态文件下载服务
【5】.Frp后台自动启动的几个方法 这里提供了两种方法,一种是使用systemctl进行管理,一种是使用nohup进行。
3.2.windows
新建启动bat,编写后台启动程序。
1 | @echo off |
新建启动vbs,设置定时任务。
1 | set ws=wscript.createobject("wscript.shell") |
开机自启动很好解决,借助任务计划就好了。这里不能直接放文件的绝对路径,要分开放。最下面起始于填文件的所在目录,上面再填文件名。否则会找不到文件,运行不了。
【1】.windows frp开机后台启动方法
【2】.分享个windows下后台运行frp的方法吧
【4】.windows批处理bat脚本:退出进程或者杀死进程 taskkill or ntsd
【5】.windows设置定时执行脚本
4.速度限制
在服务器端和客户端的 common 节点上,增加 tcp_mux = false ,去掉速度限制。
1 | [common] |
【1】.Frp 内网穿透配置文件
【2】.frp 内网穿透速度慢,有什么好办法么? tcp_mux=false
【3】.frp传输速率减半的问题 use_encryption = true,use_compression = true
【4】.frp/conf/frpc_full_example.toml 客户端详细配置
【5】.frp/conf/frps_full_example.toml 服务端详细配置
【6】.frp启用加密和压缩功能 通过设置 use_encryption = true,将 frpc 与 frps 之间的通信内容加密传输,将会有效防止传输内容被截取。如果传输的报文长度较长,通过设置 use_compression = true 对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 CPU 资源。 作者:UP_小伟 https://www.bilibili.com/read/cv21795828/
【7】.Encryption and Compression The features are off by default. You can turn on encryption and/or compression: transport.useEncryption = true, transport.useCompression = true
【8】. frp/conf/legacy/frpc_legacy_full.ini 这是传统的配置方式,这里也有 use_encryption = false,use_compression = false 说明。