Administrator
发布于 2026-07-09 / 1 阅读
0
0

CentOS7 FRP 部署指南

一、环境说明

FRP,全称 Fast Reverse Proxy‌,是一款高性能、开源的反向代理框架,由 frps 服务端与 frpc 客户端组成,高效实现内网穿透与服务安全暴露。FRP 支持 TCP、UDP、HTTP、HTTPS 等常用协议,也支持 P2P 直连模式。

FRP 开源地址:https://github.com/fatedier/frp

我的环境:

  • 服务端 OS:CentOS 7

  • 客户端 OS:路由器 OpenWRT 固件

拓扑说明:

  • 阿里云服务器作为 frps 服务端,拥有公网 IP

  • 家庭路由器作为 frpc 客户端,通过 frp 将内网(Web 面板 8083、SSH 6000)暴露到公网。

二、frps 服务端部署

1、下载与安装

# 进入常用软件目录
cd /opt 

# 下载 frp(以 v0.48.0 为例,可去 GitHub 查看最新版本)
wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz

# 解压
tar -xzf frp_0.48.0_linux_amd64.tar.gz

# 进入目录
cd frp_0.48.0_linux_amd64

解压后目录中主要关注两个文件:

  • frps:服务端可执行文件

  • frps.ini:服务端配置文件

2、配置文件详解(frps.ini)

[common]
# frps 服务监听端口,frpc 需要连接此端口
bind_port = 7000

# 是否启用 TLS 加密
tls_enable = false

# 认证 token,客户端必须配置相同 token 才能连接
token = 9July2026@gavin

# ===== 日志配置 =====
# 日志文件存放路径
log_file = /opt/frp_0.48.0_linux_amd64/frps.log

# 日志保留天数
log_max_days = 3

# 日志级别:trace, debug, info, warn, error
log_level = trace

配置要点:

  • bind_port:服务端核心端口,需要在防火墙和安全组中放行

  • token:相当于密码,服务端和客户端必须一致

  • log_level = trace:可输出最详细的日志,便于排查问题,生产环境建议改为 info。默认 info

  • log_max_days:默认 3

  • log_file:默认在 frps 程序所在目录下生成 frps.log 文件

3、启动与开机自启

方式一:临时手动启动(测试用)

cd /opt/frp_0.48.0_linux_amd64

# 前台启动(观察日志,Ctrl+C 停止)
./frps -c ./frps.ini

# 后台启动(nohup)
nohup ./frps -c ./frps.ini &

说明:配置指定了日志位置,nohup 无需再指定。

方式二:systemd 服务管理(推荐)

创建服务文件:

vim /etc/systemd/system/frps.service

写入以下内容:

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.48.0_linux_amd64/frps -c /opt/frp_0.48.0_linux_amd64/frps.ini
WorkingDirectory=/opt/frp_0.48.0_linux_amd64
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

systemctl daemon-reload
systemctl start frps
systemctl enable frps
systemctl status frps

常用管理命令:

systemctl start frps      # 启动
systemctl stop frps       # 停止
systemctl restart frps    # 重启
systemctl status frps     # 查看状态
systemctl enable frps     # 设置开机自启

三、frpc 客户端部署

1、安装

说明:frp 服务端和客户端使用同一个压缩包,解压后根据实际角色保留对应的可执行文件和配置文件即可。

# 服务端部署:删除客户端相关文件
rm -f frpc frpc.ini

# 客户端部署:删除服务端相关文件
rm -f frps frps.ini

2、配置文件(frpc.ini)

[common]
# 服务端公网 IP 和端口
server_addr = <你的云服务器公网IP>
server_port = 7000

# 与服务端一致的 token
token = 9July2026@gavin

# 连接失败后保持运行并持续重试
login_fail_exit = false

# 日志配置
log_file = /opt/frp_0.48.0_linux_amd64/frpc.log
log_level = info
log_max_days = 3

# ===== 代理配置 =====
# 代理路由器的 Web 管理面板
[web-router]
type = tcp
local_ip = 192.168.1.1
local_port = 80
remote_port = 8083

# 代理路由器的 SSH 终端
[ssh-router]
type = tcp
local_ip = 192.168.1.1
local_port = 22
remote_port = 6000

配置要点:

  • server_addr:填写 frps 服务器的公网 IP

  • server_port:必须与 frps 的 bind_port 一致

  • local_ip:要代理的内网服务 IP(路由器网关通常是 192.168.1.1)

  • remote_port:外网访问时使用的端口,需在服务端防火墙放行

我的 frpc 和反代端口都是同一机器(路由器),local_ip 也可以直接填 127.0.0.1。

3、启动与保活配置

方式一:临时启动

cd /opt/frp_0.48.0_linux_amd64
./frpc -c ./frpc.ini

# 后台启动(nohup)
nohup ./frps -c ./frps.ini &

方式二:systemd 服务(推荐)

与服务端类似,创建 /etc/systemd/system/frpc.service:

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.48.0_linux_amd64/frpc -c /opt/frp_0.48.0_linux_amd64/frpc.ini
WorkingDirectory=/opt/frp_0.48.0_linux_amd64
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

四、防火墙与安全组配置

1、iptables

放行 frps 服务端端口、反代端口

# 放行端口
iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
iptables -I INPUT -p tcp --dport 8083 -j ACCEPT
iptables -I INPUT -p tcp --dport 6000 -j ACCEPT

2、云服务商安全组配置

以阿里云为例,配置位置位于:控制台 → 安全组 → 入方向规则。

依次放行上述端口。

五、常用命令速查

1、进程、端口、日志管理

# 一、进程
# 查看 frps 进程
ps aux | grep frps | grep -v grep

# 查看 frps 工作目录
pwdx <PID>
ls -l /proc/<PID>/cwd

# 进入工作目录
cd /proc/21709/cwd   

# 杀掉 frps 进程
kill <PID>

# 二、 端口
# 查看端口监听状态
netstat -tulpn | grep -E "7000|8083|6000"

# 三、日志
# 实时查看日志
tail -f /opt/frp_0.48.0_linux_amd64/frps.log

2、连通性测试

# 从外部测试端口是否通
telnet <公网IP> 7000
telnet <公网IP> 8083
telnet <公网IP> 6000

# 使用 curl 测试 HTTP 代理
curl -v http://<公网IP>:8083

# 测试 SSH 代理
ssh -p 6000 root@<公网IP>

六、常见问题

Q1:怎么确认 frpc 已经成功连接到 frps?

在服务端查看日志:

tail -f /opt/frp_0.48.0_linux_amd64/frps.log

看到类似日志表示客户端已连接:

[I] [service.go:...] client login info: ip <客户端IP> version <版本>
[I] [proxy.go:...] [tcp] [web-router] proxy start success

Q2:frp 包含 frps 和 frpc,我需要 Linux 的 frps 和 Windows 的 frpc,可以吗?

frp 采用 Go 语言编写,天生支持跨平台。分别下载不同操作系统的安装包安装即可。

七、扩展:Windows 11 部署 frpc 客户端

todo


评论