【Debian】2-2 frp内网穿透环境搭建
一、下载FRP软件包
FRP的GitHub:
访问 Releases页面(https://github.com/fatedier/frp/releases )
官方文档:https://gofrp.org/zh-cn/docs/
我这里是Debian,下载的是linux_amd64:
注意:服务器和客户端都要下载配置
wget https://github.com/fatedier/frp/releases/download/v0.63.0/frp_0.63.0_linux_amd64.tar.gz
tar -zxvf frp_0.63.0_linux_amd64.tar.gz
# 移动到opt目录下并且命名为frp
mv frp_0.63.0_linux_amd64 /opt/frp
cd /opt/frp
二、配置FRP服务端(公网服务器)
- 编辑服务端配置文件
vim /opt/frp/frps.toml
修改frps.toml
,示例配置如下:
# 服务端监听的端口(默认)
bindPort = 7000
# auth 配置服务端与客户端访问 token
auth.method = "token"
auth.token = "qwert1234"
webServer.addr = "0.0.0.0"
# dashboard ui的端口
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "username"
webServer.password = "password"
开放防火墙
需要开放7000和7500的TCP防火墙
启动服务端
运行以下命令启动服务端(先测试一下):./frps -c frps.toml
访问 dashboard
通过http://公网IP:7500
可以看到dashboard,账号密码就是刚才上面文件的那个
三、配置FRP客户端(内网机器)
- 编辑客户端配置文件
修改frpc.toml
,示例配置如下:
# 服务端地址
serverAddr = "公网IP地址"
# 服务端监听端口(默认常用)
serverPort = 7000
# 认证方式
auth.method = "token"
# 认证 token
auth.token = "qwert1234"
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 20022
server_addr
:公网服务器IP。localIP & localPort
:localIP 和 localPort 配置为需要从公网访问的内网服务的地址和端口。remote_port
:remotePort 表示在 frp 服务端监听的端口,访问此端口的流量将被转发到本地服务的相应端口(如20022对应内网22端口)。
开放防火墙
需要服务器端开放20022 的TCP防火墙
启动客户端
运行以下命令:./frpc -c frpc.toml
此时服务器端日志:
四、测试连接
通过 Mobaxterm 连接,这里使用的是域名 + 20022
端口号
五、进程守护
这里使用的是宝塔的进程守护管理器 supervisor
5-1 supervisor简介
Supervisor 是一个用 Python 编写的进程管理工具,主要用于在 UNIX 类系统中管理和监控进程。它允许用户控制多个进程,并在进程异常退出时自动重启。Supervisor 特别适用于需要长时间运行的服务或后台任务。
5-2 服务器端/客户端添加对frp的进程守护
服务器端:/opt/frp/frps -c /opt/frp/frps.toml
客户端:/opt/frp/frpc -c /opt/frp/frpc.toml