文章目录

  • 概述
  • 服务端安装
  • 下载
  • 安装Linux版本
  • 配置服务端Dashboard
  • 启动
  • 客户端安装
  • 下载
  • Dashboard
  • 启动
  • 示例
  • 更为安全的点对点的frp
  • 1. 服务端和上面示例中相同
  • 2. 部署 frpc 客户端并配置
  • 3. 在访问者机器上部署并配置 frpc
  • 4. 通过 SSH 访问内网机器
  • socket5
  • 服务端配置和上面相同
  • 内网机器
  • 客户端访问内网机器


概述

服务端安装

下载

github:0.57.0
Win_githubLinux_github

安装Linux版本

解压就可

tar -zxvf frp_0.57.0_linux_amd64.tar.gz

服务端只需要frpsfrps.toml两个文件

frpc 安装_frpc 安装

配置服务端Dashboard

# frp.toml

bindPort = 7000
# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "admin"
webServer.password = "admin"

启动

# 修改文件后启动命令
./frps -c frps.toml
# 重启命令
./frpc reload -c frpc.toml

frpc 安装_java_02

客户端安装

下载

github:0.57.0
Win_githubLinux_github

Dashboard

# frpc.toml	完整配置请看 示例 部分
...
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
...

frpc 安装_服务器_03

启动

# 修改文件后启动命令
./frpc -c frpc.toml
# 重启命令
./frpc reload -c frpc.toml

示例

下面示例:
1、client和server通过auth进行鉴权,客户端是否能够登录上服务端

frps

bindPort = 7000
# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "admin"
webServer.password = "admin"
[auth]
method = "token"
token = "12345678"

frpc

serverAddr = "192.168.217.129"
serverPort = 7000
# frpc.toml
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
[auth]
method = "token"
token = "12345678"

[[proxies]]
# 'ssh' is the unique proxy name
# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
name = "ssh"
type = "tcp"
localIP = "192.168.217.129"
localPort = 22
# Limit bandwidth for this proxy, unit is KB and MB
transport.bandwidthLimit = "1MB"
# Where to limit bandwidth, can be 'client' or 'server', default is 'client'
transport.bandwidthLimitMode = "client"
# 将 frpc 与 frps 之间的通信内容加密传输,将会有效防止流量被拦截
transport.useEncryption = false
# 对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 cpu 资源。
transport.useCompression = false
# Remote port listen by frps
remotePort = 6001

[[proxies]]
name = "http"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 8090

更为安全的点对点的frp

https://gofrp.org/zh-cn/docs/examples/xtcp/

1. 服务端和上面示例中相同

2. 部署 frpc 客户端并配置

在需要将内网服务暴露到公网的机器上部署 frpc,并创建如下配置:

serverAddr = "x.x.x.x"
serverPort = 7000
# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "admin"
webServer.password = "admin"
[auth]
method = "token"
token = "12345678"

[[proxies]]
name = "secret_ssh"
type = "stcp"
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = "abcdefg"
localIP = "127.0.0.1"
localPort = 22

3. 在访问者机器上部署并配置 frpc

在想要访问内网服务的机器上也部署 frpc,并创建如下配置:

serverAddr = "x.x.x.x"
serverPort = 7000
# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "admin"
webServer.password = "admin"
[auth]
method = "token"
token = "12345678"

[[visitors]]
name = "secret_ssh_visitor"
type = "stcp"
# 要访问的 stcp 代理的名字
serverName = "secret_ssh"
secretKey = "abcdefg"
# 绑定本地端口以访问 SSH 服务
bindAddr = "127.0.0.1"
bindPort = 6000

4. 通过 SSH 访问内网机器

使用以下命令通过 SSH 访问内网机器,假设用户名为 test:

ssh -p 6000 root@192.0.0.1

socket5低版本案例不适用本版本

# client
...
[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 6005
[proxies.plugin]
type = "socks5"
username = "abc"
password = "abc"

socket5

服务端配置和上面相同

内网机器

# frp服务端地址
serverAddr = "192.168.217.129"
serverPort = 7000
# frpc.toml
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
[auth]
method = "token"
token = "12345678"


[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 6005
[proxies.plugin]
type = "socks5"
username = "abc"
password = "abc"

客户端访问内网机器

在此使用代理工具

frpc 安装_服务器_04


配置代理服务器地址和连接信息

frpc 安装_运维_05


打开代理规则:哪些流量走代理

frpc 安装_linux_06


为方便演示打开全量代理任何地址都和在内网机器上访问相同

frpc 安装_运维_07