Ubuntu 20.04 安装 frp 0.64 技术笔记
作者:Jiangfeng
日期:2026年4月28日
一、笔记概述
本文记录 Ubuntu 20.04(64位)系统下,frp 0.64 版本的完整安装、配置流程,包含服务端(frps)和客户端(frpc)的基础配置、自启设置、防火墙配置及常见问题排查,适用于内网穿透场景(如 SSH 访问、HTTP 服务暴露),便于后续查阅和复用。
二、前置准备
-
验证系统环境:确保为 Ubuntu 20.04 LTS 64位,执行命令验证:
lsb\_release \-a \# 验证系统版本 uname \-m \# 验证64位系统(输出x86\_64) -
安装依赖工具:执行命令安装 wget 和 unzip(用于下载和解压):
sudo apt update \&\& sudo apt install \-y wget unzip
三、frp 0.64 下载与解压
-
下载 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 -
创建安装目录并解压:
sudo mkdir \-p /usr/local/frp \# 创建目录 sudo tar \-zxvf frp\_0\.64\.0\_linux\_amd64\.tar\.gz \-C /usr/local/frp \-\-strip\-components 1 \# 解压 -
验证解压结果:进入安装目录,确认核心文件存在(frps、frpc、frps.ini、frpc.ini):
cd /usr/local/frp \&\& ls
四、核心配置(服务端/客户端二选一)
4.1 服务端(frps,部署在公网服务器)
核心作用:接收客户端连接,转发流量到内网,配置步骤如下:
-
编辑配置文件 frps.ini:
sudo nano /usr/local/frp/frps\.ini -
基础配置(关键参数可按需修改):
\[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 \# 控制台密码 -
保存退出:Ctrl+O → 回车 → Ctrl+X。
4.2 客户端(frpc,部署在内网设备)
核心作用:连接公网服务端,暴露内网服务,示例配置如下:
-
编辑配置文件 frpc.ini:
sudo nano /usr/local/frp/frpc\.ini -
基础配置(替换公网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 # 替换为自身域名`
- 保存退出: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 管理自启服务,分别为服务端/客户端创建服务文件。
- 服务端自启:
\# 创建服务文件 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`
- 客户端自启:
\# 创建服务文件 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`
- 启用并启动服务(服务端/客户端通用命令):
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)即可。
七、生效验证
-
控制台验证:浏览器访问 http://公网IP:7500,输入控制台用户名密码,查看客户端在线状态。
-
SSH穿透验证:外部设备执行命令,成功登录即为生效:
ssh 内网用户名@公网IP \-p 6000 -
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. 若需长期使用,建议定期查看服务状态和日志,确保服务稳定运行。