Linux运维工具-ywtool
目录
- 一. 简介
- 二.代理类型
- 三.frp支持的Linux的架构
- 四.安装
- 1.准备工作
- 2.配置frp服务器端
- (a)下载安装包
- (b)解压安装包
- (c)修改配置文件
- (d)启动服务端
- 3.配置frp客户端
- (a)下载安装包并修改配置文件
- (b)启动客户端
- 4.测试连接
- 五.其他
- 1.多端口穿透
- (a)服务端
- (b)客户端
- 2.报错:无法执行二进制文件
一. 简介
frp是一款开源、简用、高性能内网穿透和反向代理神器,采用Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖,支持TCP、UDP、HTTP、HTTPS等协议,使用丝滑流畅,通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性
支持P2P穿透(搭建最少需要一台服务端两台客户端),使用的协议为XTCP,仅少量占用服务器带宽,占用的带宽可忽略不计,不管是远程桌面操控还是传输大文件,都是一大利器。
二.代理类型
frp支持多种代理类型来适配不同的使用场景
- TCP:单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务
- UDP:单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务
- HTTP:针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权
- HTTPS:针对 HTTPS 应用定制了一些额外的功能
- STCP:安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署frpc,不需要在服务端暴露端口
- SUDP:安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署frpc,不需要在服务端暴露端口
- XTCP:点对点内网穿透代理,功能同STCP,但是流量不需要经过服务器中转
- TCPMUX:支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务
三.frp支持的Linux的架构
386 | X86架构 |
amd64 | amd架构 |
arm | arm架构 |
arm64 | 64位arm架构 |
mips | mips架构 |
mips64 | 64位mips架构 |
mipsle | mipsle架构 |
mips64le | 64位mipsle架构 |
四.安装
1.准备工作
(1)拥有一台有公网IP的服务器(系统可以是windows/macos/linux),服务器可以使用云厂商购买的服务器
(2)从下面链接下载最新版本的frp安装包,客户端和服务端是同一个tar包
https://github.com/fatedier/frp/releases
2.配置frp服务器端
(a)下载安装包
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
(b)解压安装包
tar -zxvf frp_0.58.1_linux_amd64.tar.gz
©修改配置文件
cd frp_0.58.1_linux_amd64/
vim frps.toml
#或vim frps.ini
#bindPort = 7000
[common]
bind_port = 7000
#frp服务端口,frpc的配置会调用
dashboard_user = admin
#frp的web控制台端口账号
dashboard_pwd = admin
#frp的web控制台端口密码
dashboard_port = 7500
#frp的web控制台端口
admin_password = admin
#设置密码验证
(d)启动服务端
./frps -c ./frps.toml
#如果后台启动
#nohub frps -c frps.toml frp.log 2>&1 &
#nohup /root/frp/frps -c /root/frp/frps.toml >/root/frp/frp.log 2>&1 &
#tail -f frp.log
3.配置frp客户端
(a)下载安装包并修改配置文件
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
tar -zxvf frp_0.58.1_linux_amd64.tar.gz
cd frp_0.58.1_linux_amd64/
vim frpc.toml
#这里以SSH服务为例,将本地的22端口映射到云服务器的6000端口
serverAddr = "公网IP"
serverPort = 7000
[[proxies]]
#上面这条不能修改,不然会报错
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
(b)启动客户端
#Linux启动
./frpc -c ./frpc.toml
#windows启动
frpc.exe -c frps.toml
4.测试连接
ssh root@公网IP -p 6000
五.其他
1.多端口穿透
(a)服务端
vim frps.ini
#修改frps.ini配置文件
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
[tcp_22]
#链接的名称
type = tcp
#代理的连接类型
local_port = 6000
#本地映射的端口
listen_port = 22
#监听的端口
[tcp_9000]
type = tcp
local_port = 9000
listen_port = 9000
(b)客户端
公网IP:6000=内网IP:22
公网IP:9000=内网IP:9000
vim frps.ini配
#修改frps.ini配置文件
[common]
server_addr = 服务器公网IP
server_port = 7000
[tcp_22]
type = tcp
local_ip = 127.0.0.1
#代理IP
local_port = 22
#代理端口
remote_port = 6000
#代理映射端口
[tcp_9000]
type = tcp
local_ip = 127.0.0.1
local_port = 9000
remote_port = 9000
2.报错:无法执行二进制文件
原因:下载的frp安装包的系统架构和安装环境的系统架构不匹配,系统是x86_64的,下载成arm64的安装包了
End