FRP反向代理使用
FRP反向代理使用
1.配置服务端
[frp_0.61.0_linux_amd64.tar.gz](https://github.com/fatedier/frp/releases/tag/v0.61.0)
我这里下载的是0.61的版本frp_0.61.0_linux_amd64.tar.gz
https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
1.1登录公网服务器
cd /usr/local
mkdir frps
cd frp
将压缩包压缩包frp_0.61.0_linux_amd64.tar.gz到此目录下/usr/local/frps
并解压文件
tar -zxvf frp_0.61.0_linux_amd64.tar.gz
其中frps为启动文件,frps.toml为配置文件
编辑文件vim ./frps.toml
bindPort = 7000
auth.token = "-----"
# 服务端仪表盘的端口, 可以用浏览器访问查看
webServer.addr = "0.0.0.0"
webServer.port = 7500
# 服务端仪表盘的用户密码
webServer.user = "admin"
webServer.password = "admin"
# 虚拟主机端口
vhostHTTPPort = 9001
1.2 启动服务
然后通过命令启动
./frps -c ./frps.toml
检查是否启动成功:
ps -ef |grep frps
1.3访问管理平台
http://82.156.167.128:7500
请确定已经放开端口7500/7000两个端口
1.3查看绑定端口
# 查询端口号状态
sudo ss -tulpn | grep :7500
# 或者
sudo lsof -i :7500
# 查到进程之后,通过<PID>号杀掉进程
kill -9 <PID>
2.配置客户端
2.1下载安装包
下载安装包并解压,要关闭防火墙,要不然会被删除
frp_0.61.0_windows_amd64.zip
2.2修改配置
下载之后修改frpc.toml
serverAddr = "82.156.167.128"
serverPort = 7000
auth.token = 与服务器保持一致
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 9001
customDomains = ["82.156.167.128"]
2.3 启动客户端
.\frpc.exe -c .\frpc.toml
3.安装systemd来管理frps服务
3.1 安装systemd
yum install systemd
3.2 创建frps.service文件
执行命令sudo vim /etc/systemd/system/frps.service
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp_0.61.0_linux_amd64/frp_0.61.0_linux_amd64/frps -c /root/frp_0.61.0_linux_amd64/frps.toml
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy = multi-user.target
3.3 使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
3.4 设置frps开机自启动
# 设置 frps 开机自启动
sudo systemctl enable frps
4.docker部署模式
1.服务端
创建frp-server.yaml文档
version: '3.3' # 选择一个你支持的版本,3.8 是较新的版本,支持很多特性
services:
frps:
image: registry.cn-hangzhou.aliyuncs.com/devops_de/frps:frps:nightly-alpine3.20
container_name: frps
restart: always
network_mode: host
volumes:
- /root/frps/frps.toml:/etc/frp/frps.toml
创建/root/frps/frps.toml文件
bindPort = 7000
auth.token = "your token"
# 服务端仪表盘的端口, 可以用浏览器访问查看
webServer.addr = "0.0.0.0"
webServer.port = 7500
# 服务端仪表盘的用户密码
webServer.user = "admin"
webServer.password = "admin"
# 虚拟主机端口
vhostHTTPPort = 3306
然后使用
docker-compose -f frp-server.yaml up -d
启动反向代理服务
其实我们在 frps.toml
中配置了 log.to = "console"
, 日志实际上已经输出了, 这里我们直接通过 docker logs frps
就可以查看到日志信息了:
2.客户端
docker run --restart=always --network host -d -v /root/frpc/frpc.toml:/etc/frp/frpc.toml --name frpc registry.cn-hangzhou.aliyuncs.com/devops_de/frpc:nightly-alpine3.20
frpc.toml文件如下,对本地Mysql做内网穿透
serverAddr = "82.156.167.128"
serverPort = 7000
auth.token = "your token"
[[proxies]]
name = "mysql"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 33306
#customDomains = ["118.24.28.8"]