文章目录
- 概述
- 服务端安装
- 下载
- 安装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
服务端只需要frps
和frps.toml
两个文件
配置服务端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
客户端安装
下载
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 -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
# 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"
客户端访问内网机器
在此使用代理工具
配置代理服务器地址和连接信息
打开代理规则:哪些流量走代理
为方便演示打开全量代理任何地址都和在内网机器上访问相同