更新日志

20241210-更新新版toml配置文件,增加systemctl文件。

介绍

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

Github项目地址:

https://github.com/fatedier/frp

下载frp

根据自己的系统选择下载。

查看架构命令:arch

如果输出x86_64则需要下载带linux_amd64的那个压缩包,如果输出的是其他的,则在文件列表中找 linux 的对应架构的压缩包。

例:

centos7就下载frp_0.25.3_linux_amd64.tar.gz。

手机arm架构的就下载frp_0.25.3_linux_arm64.tar.gz。

Github下载地址:https://github.com/fatedier/frp/releases

安装frps

1.在有公网ip的服务器安装frps

2.解压压缩包

tar -xzvf frp_0.25.3_linux_amd64.tar.gz

3.修改文件夹名改成 frp

mv frp_0.25.3_linux_amd64 frp

4.进入frp目录

cd frp

5.确保frps程序具有可执行权限

chmod +x frps

6.测试frp

执行如下命令看看是否能正常运行。正常情况下会输出一串帮助信息,那么就说明你下载了正确架构的版本。

./frps --help

如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了。

7.打开frps配置并文件

vi frps.toml

配置参考:

# 绑定ip
bindPort = 8888
# quic协议到端口
quicBindPort = 8888
# 控制台到配置参数
webServer.addr = "127.0.0.1"
webServer.port = 8889
webServer.user = "xiaozhu"
webServer.password = "123456"
# 连接到token
auth.token = "123456"
# 是否开启健康检查
auth.additionalScopes = ["HeartBeats"]
# 允许映射的端口
allowPorts = [
  { start = 12000, end = 12100 },
  { single = 8900 }
]
# 最大连接池数量
transport.maxPoolCount = 50

完整配置信息参考案例配置:https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml

8.尝试启动frps

./frps -c frps.toml

如果没有出现错误提示就说明配置没有问题,可以正常使用。

9.使frps在后台持续运行。

先进入目录然后执行如下命令:

nohup frps -c frps.ini &

10.停止frps的话。

ps -ef|grep frps

根据查询到的PID进行关闭:

kill -9 PID

11.systemctl管理

vi /usr/lib/systemd/system/frps.service

[Unit]
Description=frpc-server
After=network.target
 
[Service]
Type=simple
WorkingDirectory=/root/frp/frp_0.61.0_linux_amd64
ExecStart=/root/frp/frp_0.61.0_linux_amd64/frps -c /root/frp/frp_0.61.0_linux_amd64/frps.toml
 
[Install]
WantedBy=multi-user.target

配置frpc

1.和上文一样下载文件解压

2.配置文件

vi frpc.toml

# 服务器ip
serverAddr = "127.0.0.1"
# 服务器端口
serverPort = 8888
# 采用协议 稳定可选tcp
#transport.protocol = "quic"
# 每个代理连接数量
transport.poolCount = 3
# 连接token
auth.token = "123456"
# 是否开启健康检查
auth.additionalScopes = ["HeartBeats"]

[[proxies]]
# 代理名称
name = "wiki"
# 代理类型
type = "tcp"
# 代理ip
localIP = "192.168.10.1"
# 代理本地端口
localPort = 12013
# 远程端口
remotePort = 12013

[[proxies]]
# 代理名称
name = "wiki2"
# 代理类型
type = "tcp"
# 代理ip
localIP = "192.168.10.1"
# 代理本地端口
localPort = 12014
# 远程端口
remotePort = 12014

更多配置信息参考案例配置:https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml

3.启动frpc

./frpc -c frpc.toml

4.使frpc在后台持续运行

先进入目录然后执行如下命令:

nohup frpc -c frpc.ini &

5.停止frps的话

ps -ef|grep frpc

根据查询到的PID进行关闭:

kill -9 PID

6.systemctl管理

vi /usr/lib/systemd/system/frpc.service

[Unit]
Description=frpc-server
After=network.target
 
[Service]
Type=simple
WorkingDirectory=/root/frp/frp_0.61.0_linux_amd64
ExecStart=/root/frp/frp_0.61.0_linux_amd64/frpc -c /root/frp/frp_0.61.0_linux_amd64/frpc.toml
 
[Install]
WantedBy=multi-user.target

参考文章

官方文档内网穿透神器搭建 萌新也看得懂的教程系列