去github官网下载最新版本,链接地址:https://github.com/fatedier/frp/releases/download/
windows对应:windows amd版本
linux对应:linux amd版本,
本文服务端使用linux版本采用docker构建,无需下载。客户端windows需要下载对应文件。
需要一台公网的服务器,本文服务器端是centos7
创建frp文件
mkdir -p /home/soft/frp && cd /home/soft/frp
添加服务端配置文件
创建配置文件
vim frps.ini
添加如下配置
[common]
bind_port = 7000
添加docker启动脚本
创建配置文件
vim docker-start.sh
添加如下配置
#!/bin/bash
docker run -d \
--restart always \
--network host \
--name frps \
-v /home/soft/frp/frps.ini:/etc/frp/frps.ini \
snowdreamtech/frps
启动服务端
sh docker-start.sh
将下载好的文件解压,修改frpc.ini
文件
[common] server_addr = 服务器公网ip server_port = 7000 # 远程控制 [mstsc] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 13389
启动客户端
frpc.exe -c frpc.ini
远程控制访问:公网ip:13389
在服务器 frps.ini
配置如下:
[common]
bind_port = 7000
dashboard_addr = 0.0.0.0
dashboard_port = 7777
dashboard_user = terry
dashboard_pwd = terry123
打开浏览器 公网ip:7777 即可访问
frps.ini
配置如下
[common]
bind_port = 7000
auto_token = terry
客户端frpc.ini
配置如下,auto_token必须和服务端的一致否则会连接不上
[common] server_addr = 服务器公网ip server_port = 7000 auto_token = terry # 远程控制 [mstsc] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 13389
tcp不但可以支持使用远程访问,还支持http、ssh等。
需要开放客户端访问的端口,如客户端如下配置
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8086
local_port 是客户端占用的ip
remote_port 则是访问服务端的ip
客户端frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [http] type = tcp local_ip = 127.0.0.1 local_port = 8080 remote_port = 8086
访问:公网ip:8086
客户端frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 122
访问:公网ip:122
客户端frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [mysql] type = tcp local_ip = 127.0.0.1 local_port = 3306 remote_port = 13306
访问:公网ip:13306
frp支持类似nginx反向代理,客户端frpc.ini
配置,
[common] server_addr = 公网ip server_port = 7000 [mysql] type = tcp local_ip = 192.168.0.3 local_port = 3306 remote_port = 13306
访问:公网ip:13306,其代理到内网中192.168.0.3服务器上
frp http只能用一个http端口,一般应用于域名映射,http穿透可以用tcp即可。
服务端frps.ini
配置
[common]
bind_port = 7000
vhost_http_port = 81 # 访问服务器的81端口,映射到内网web服务
服务端frpc.ini
配置
[common] server_addr = 公网IP server_port = 7000 [web01] type = http local_port = 8080 custom_domains = web01.terrybg.com [web02] type = http local_port = 8081 custom_domains = web02.terrybg.com
tcp模式每开多一个服务就会占用服务器端口,并且会将服务暴露在外面,会不安全。frp提供了stcp的模式,两内网连接可以通过密钥方式连接,并且不会暴露在公网上,但连接者也需要开启frp客户端。
服务端frps.ini
配置
[common]
bind_port = 7000
客户端1 被访问者frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [mysql] type = stcp # 密钥 sk = abcdefg local_ip = 127.0.0.1 local_port = 3306
客户端2 访问者frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [mysql_visitor] type = stcp # 密钥 sk = abcdefg # 访问者名称 role = visitor # 被访问的 stcp 的名字 server_name = rdp bind_addr = 127.0.0.1 bind_port = 3306
服务端frps.ini
配置
[common]
bind_port = 7000
bind_udp_port = 7001
客户端1 被访问者frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [mysql] type = xtcp # 密钥 sk = abcdefg local_ip = 127.0.0.1 local_port = 3306
客户端2 访问者frpc.ini
配置
[common] server_addr = 公网ip server_port = 7000 [mysql_visitor] type = xtcp # 密钥 sk = abcdefg # 访问者名称 role = visitor # 被访问的 stcp 的名字 server_name = rdp bind_addr = 127.0.0.1 bind_port = 3306
联系客服