← 返回首页

Ubuntu 20.04 安装 frp 0.64 技术笔记

发布时间:2026-04-28 06:43

本文详细记录了在Ubuntu 20.04系统上安装和配置frp 0.64的完整流程,包括服务端和客户端的部署、配置文件编写、systemd服务配置以及常见问题的解决方法。

Ubuntu 20.04 安装 frp 0.64 技术笔记

作者:Jiangfeng

日期:2026年4月28日

一、笔记概述

本文记录 Ubuntu 20.04(64位)系统下,frp 0.64 版本的完整安装、配置流程,包含服务端(frps)和客户端(frpc)的基础配置、自启设置、防火墙配置及常见问题排查,适用于内网穿透场景(如 SSH 访问、HTTP 服务暴露),便于后续查阅和复用。

二、前置准备

  1. 验证系统环境:确保为 Ubuntu 20.04 LTS 64位,执行命令验证: lsb\_release \-a \# 验证系统版本 uname \-m \# 验证64位系统(输出x86\_64)

  2. 安装依赖工具:执行命令安装 wget 和 unzip(用于下载和解压): sudo apt update \&\& sudo apt install \-y wget unzip

三、frp 0.64 下载与解压

  1. 下载 frp 0.64 Linux 64位压缩包(官方GitHub地址): wget https://github\.com/fatedier/frp/releases/download/v0\.64\.0/frp\_0\.64\.0\_linux\_amd64\.tar\.gz

  2. 创建安装目录并解压: sudo mkdir \-p /usr/local/frp \# 创建目录 sudo tar \-zxvf frp\_0\.64\.0\_linux\_amd64\.tar\.gz \-C /usr/local/frp \-\-strip\-components 1 \# 解压

  3. 验证解压结果:进入安装目录,确认核心文件存在(frps、frpc、frps.ini、frpc.ini): cd /usr/local/frp \&\& ls

四、核心配置(服务端/客户端二选一)

4.1 服务端(frps,部署在公网服务器)

核心作用:接收客户端连接,转发流量到内网,配置步骤如下:

  1. 编辑配置文件 frps.ini: sudo nano /usr/local/frp/frps\.ini

  2. 基础配置(关键参数可按需修改): \[common\] bind\_port = 7000 \# 客户端连接端口(需放行防火墙) token = Frp@2026\! \# 身份验证token(客户端需一致) log\_file = /var/log/frps\.log \# 日志文件路径 log\_level = info \# 日志级别 dashboard\_port = 7500 \# 控制台端口(可选) dashboard\_user = admin \# 控制台用户名 dashboard\_pwd = admin123 \# 控制台密码

  3. 保存退出:Ctrl+O → 回车 → Ctrl+X。

4.2 客户端(frpc,部署在内网设备)

核心作用:连接公网服务端,暴露内网服务,示例配置如下:

  1. 编辑配置文件 frpc.ini: sudo nano /usr/local/frp/frpc\.ini

  2. 基础配置(替换公网IP、token,按需选择穿透场景): `[common] server_addr = 1.2.3.4 # 公网服务端IP/域名 server_port = 7000 # 服务端bind_port(与服务端一致) token = Frp@2026! # 与服务端token一致

# SSH穿透(内网22端口,公网暴露6000端口) [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000

# HTTP穿透(内网80端口,需绑定域名) [web] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = your_domain.com # 替换为自身域名`

  1. 保存退出:Ctrl+O → 回车 → Ctrl+X。

五、启动与自启配置

5.1 手动启动(测试用)

  • 服务端启动: sudo /usr/local/frp/frps \-c /usr/local/frp/frps\.ini输出“start frps success”即为启动成功,Ctrl+C 停止。

  • 客户端启动:sudo /usr/local/frp/frpc \-c /usr/local/frp/frpc\.ini输出“start frpc success”即为连接成功,Ctrl+C 停止。

5.2 系统自启(推荐,开机自动运行)

Ubuntu 20.04 采用 systemd 管理自启服务,分别为服务端/客户端创建服务文件。

  1. 服务端自启: \# 创建服务文件 sudo nano /etc/systemd/system/frps\.service粘贴以下内容:`[Unit] Description=FRP Server (frps) After=network.target

[Service] Type=simple User=root ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini Restart=on-failure RestartSec=5

[Install] WantedBy=multi-user.target`

  1. 客户端自启: \# 创建服务文件 sudo nano /etc/systemd/system/frpc\.service粘贴以下内容(替换 ExecStart 路径即可):`[Unit] Description=FRP Client (frpc) After=network.target

[Service] Type=simple User=root ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini Restart=on-failure RestartSec=5

[Install] WantedBy=multi-user.target`

  1. 启用并启动服务(服务端/客户端通用命令): sudo systemctl daemon\-reload \# 重新加载配置 sudo systemctl enable frps \# 服务端自启(客户端替换为frpc) sudo systemctl start frps \# 启动服务(客户端替换为frpc) sudo systemctl status frps \# 查看服务状态(客户端替换为frpc)

六、防火墙配置(关键)

Ubuntu 20.04 默认使用 ufw 防火墙,需放行 frp 相关端口,避免连接失败。

6.1 服务端防火墙(公网服务器)

# 放行服务端监听端口(7000)
sudo ufw allow 7000/tcp
# 放行控制台端口(7500,可选)
sudo ufw allow 7500/tcp
# 放行SSH穿透远程端口(6000,按需调整)
sudo ufw allow 6000/tcp
# 放行HTTP穿透端口(80,按需调整)
sudo ufw allow 80/tcp
# 重启防火墙生效
sudo ufw reload
# 查看防火墙规则
sudo ufw status

6.2 客户端防火墙(内网设备)

无需额外配置,若开启防火墙,放行内网服务端口(如22、80)即可。

七、生效验证

  1. 控制台验证:浏览器访问 http://公网IP:7500,输入控制台用户名密码,查看客户端在线状态。

  2. SSH穿透验证:外部设备执行命令,成功登录即为生效: ssh 内网用户名@公网IP \-p 6000

  3. HTTP穿透验证:浏览器访问绑定的域名/公网IP,能看到内网Web页面即为生效。

八、常见问题排查

  • 服务启动失败:查看日志排查(sudo journalctl -u frps/frpc),检查端口占用(sudo lsof -i :端口号),更换未占用端口。

  • 客户端连接失败:确认服务端IP、端口、token一致,服务端防火墙已放行7000端口,排查公网网络连通性。

  • 穿透访问缓慢:检查服务器/内网带宽,在穿透配置段添加 use_compression = true 启用压缩。

九、卸载方法(可选)

# 停止并禁用服务
sudo systemctl stop frps frpc
sudo systemctl disable frps frpc
# 删除服务文件
sudo rm -f /etc/systemd/system/frps.service /etc/systemd/system/frpc.service
# 删除安装目录和日志
sudo rm -rf /usr/local/frp
sudo rm -f /var/log/frps.log /var/log/frpc.log

十、备注

1. 配置文件中 token 建议设置为复杂字符串,提升安全性;

2. 端口可根据实际需求调整,避免使用常用端口(如22、80)避免冲突;

3. 若需长期使用,建议定期查看服务状态和日志,确保服务稳定运行。