frp v0.62.1内网穿透搭建Pi节点实战(4:墙内CGNAT/家用路由端口转发神器)(仪供学习参考)

从0.52版本开始支持 TOML、YAML 和 JSON 进行配置。请注意,INI 已弃用,并将在未来版本中删除。

今天就让我们来搭建并配置它,我以我的vps服务器系统是:

LOCVPS全球云-十三年老牌云主机值得信赖!

服务器演示为Ubuntu-22.04:

项目地址:

GitHub – fatedier/frp

golang(go)一键安装:

安装/更新最新版golang:

执行以下命令:

source <(curl -L https://go-install.netlify.app/install.sh)

查看安装的go版本:

go version

服务器手动搭建(linux)

注意:以下教程仅适用于V0.62.1及以上版本

1、在服务器用wget命令把压缩包下来并解压

*releases找到后缀为linux-amd64的压缩包,复制下载直链

wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz

2、解压并删除压缩包

tar -zxvf frp_0.62.1_linux_amd64.tar.gz
rm frp_0.62.1_linux_amd64.tar.gz

3、重命名为frp并移动到 /etc 文件夹

mv frp_0.62.1_linux_amd64 frp
mv ./frp /etc

4、编辑 frps.toml 文件示例

nano /etc/frp/frps.toml
bindPort = 7000
kcpBindPort = 7000
auth.method = "token"
auth.token = "123456789"
transport.tcpMux = true
webServer.addr = "0.0.0.0"
webServer.port = 8000
webServer.user = "admin"
webServer.password = "admin"

bindPort:tcp服务器代理端口(此项必须,其他可选)

kcpBindPort:kcp服务器代理端口(可以跟bindport共存端口)

auth.method = “token” {可选}身份验证方式

auth.token:与客户端进行校验的令牌(需一致)

transport.tcpMux:tcp流多路复用(优化传输,需一致)

webServer.addr:web面板的ip地址/域名

webServer.port:web面板的端口

webServer.user:web面板的用户名

webServer.password:web面板的密码

5、启动frp服务端(单次运行)

/etc/frp/frps -c /etc/frp/frps.toml

6、添加systemd自启动参数,使用 systemd 来管理 frps 服务,包括启动、停止、配置后台运行和设置开机自启动。

以下是具体的操作步骤:

安装 systemd

如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:

使用 yum 安装 systemd(CentOS/RHEL)

yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)

apt install systemd

2.创建 frps.service 文件 使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。

nano /etc/systemd/system/frps.service
[Unit]
Description=frps
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
WorkingDirectory=/etc/frp
ExecStart=/usr/bin/env ./frps -c ./frps.toml

[Install]
WantedBy=multi-user.target

3.使用 systemd 命令管理 frps 服务

启动frp

sudo systemctl start frps

服务在系统开机启动时自动启动

systemctl enable frps

# 查看frp状态

sudo systemctl status frps

# 停止frp

sudo systemctl stop frps

# 重启frp

sudo systemctl restart frps

服务器重新启动

sudo reboot

下面我们可以通过ip/域名:加端口[8000]来访问仪表盘页面!!!

接下来我们还需要配置frpc客户端, 当我们运行frpc服务时将和公网上的frps建立一个长连接, 当我们访问公网不存在的服务时会转发到frpc, 然后frpc再做一个二次转发

1、releases下载带Windows_amd64字样压缩包并解压,并把名称改为frp

2、编辑 frpc.toml 文件配置以下参数

#frpc.toml

serverAddr = "1.2.3.4"
serverPort = 7000
transport.protocol = "kcp"
auth.method = "token"
auth.token = "123456789"
transport.tcpMux = true
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 6000

serverAddr:服务器ip地址/域名

serverPort:服务端连接端口

transport.protocol:传输协议选择(除tcp以外的协议要填)

auth.token:与服务端校验的令牌(需一致)

transport.tcpMux:tcp流多路复用(优化传输,需一致)

name:设备命名,不能同名运行

type:连接类型

localIP:本地回环地址(默认)

localPort:本机映射端口

remotePort:远程映射端口

若启用tcp+udp远程传输,如下方所示:

serverAddr = "1.2.3.4"
serverPort = 7000
transport.protocol = "kcp"
auth.method = "token"
auth.token = "123456789"
transport.tcpMux = true
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 6000

[[proxies]]
name = "test-udp"
type = "udp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 6000

3、win徽标键+r一起按,输入cmd回车调出命令提示符

*默认路径为c盘用户名,管理员运行为system32

盘符:

cd 绝对路径 frpc.exe -c frpc.toml

#如果客户端放在非c盘的地方(例如放d盘),则需要运行一次盘符+冒号,把路径引导到目标盘(D:)

好了,今天的教程就到这里!