从 U 盘装机到远程 SSH:Ubuntu Server 24.04.4 + frp 内网穿透实战
从 U 盘装机到远程 SSH:Ubuntu Server 24.04.4 + frp 内网穿透实战
我这次想做的事情很简单:把一台实体电脑装成 Linux 服务器放在家里,以后在外面也能通过 SSH 连回去。
实际配置时,我身边没有另一台电脑可以通过 Xshell 连接这台主机,所以最开始只能接上显示器、键盘和鼠标,在主机上直接操作。我先在有电脑可用的地方准备好 Ubuntu 启动盘、frp 压缩包、配置文件和命令笔记,回家装好系统,再用 gpm 解决纯命令行环境下复制、粘贴命令的问题。
这篇文章按这个过程展开:提前准备资料 → 安装 Ubuntu → 本机复制命令 → 配置 frp → 设置开机自启 → 测试远程连接。
本文的场景是:实体机可以上网,但身边没有第二台电脑可用来做局域网远程配置。 后面的软件安装和 frp 连接都需要网络。本文使用 Ubuntu Server 24.04.4 LTS、frp 0.71.0,命令和配置按这一组版本整理。
一、先弄清楚要连接谁
整个方案用到两台服务器:
| 设备 | 运行程序 | 作用 |
|---|---|---|
| 有公网 IP 的云服务器 | frps |
接收 frpc 连接,提供外部访问入口 |
| 家里的 Ubuntu 实体机 | frpc、OpenSSH Server |
主动连接云服务器,提供真正的 SSH 服务 |
可以把连接关系理解成这样:
家里的 Ubuntu 实体机
frpc ──主动建立连接──> 云服务器公网 IP:7000(frps)
外面的电脑或手机 SSH 客户端
└──访问云服务器公网 IP:8088
└──frps 转交给 frpc
└──访问实体机的 127.0.0.1:22(SSH)
这里有三个容易混淆的端口:
| 本文端口 | 配置字段 | 用途 |
|---|---|---|
7000 |
frps 的 bindPort、frpc 的 serverPort |
frpc 与 frps 建立连接 |
8088 |
frpc 的 remotePort |
从外面连接家里主机的 SSH 入口,监听在云服务器上 |
22 |
frpc 的 localPort |
家里主机自身的 SSH 端口 |
之后在 Xshell 中填写的是“云服务器公网 IP + 8088”,用户名和登录凭据则属于家里的 Ubuntu。 云服务器自己的管理 SSH 端口是另一回事。这个转发关系也可以对照 frp 官方 SSH 示例理解。
二、出发前,把系统和配置资料准备好
2.1 准备清单
| 物品或文件 | 说明 |
|---|---|
| 一台实体电脑 | 用于安装 Ubuntu,提前备份需要保留的数据 |
| 显示器、键盘、鼠标 | 首次在主机上直接操作使用 |
| 一个 U 盘 | 建议至少 8 GB,并给 frp 文件留出空间;制作启动盘会清除原有数据 |
| 一台有公网 IP 的云服务器 | 用于运行 frps,需要有登录和配置安全组的权限 |
| Ubuntu Server 安装镜像 | 本文使用 ubuntu-24.04.4-live-server-amd64.iso |
| Rufus | Windows 下制作 Ubuntu 启动 U 盘的工具 |
| frp 压缩包 | 本文使用 frp_0.71.0_linux_amd64.tar.gz |
| 配置文件和命令笔记 | frps.toml、frpc-tengxunyun.toml、readme.txt,第二条通道需要时再准备 |
下载入口:
这里把系统版本写成 24.04.4 LTS。下载页会更新,照着文章复现时要检查镜像文件名,不必追着首页的最新版本走。

这张图是当时保存的下载页面,当前页面可能有所变化。
linux_amd64 适用于常见的 Intel/AMD 64 位机器。两台机器要分别确认架构;如果云服务器是 ARM,就给云服务器下载同版本的 linux_arm64 包,并同步调整后文目录名。本文后续命令按两端都是 amd64 编写。
2.2 用 Rufus 制作启动盘
我的操作顺序是:
- 在 Windows 上下载 Ubuntu ISO,先保存在电脑硬盘中。
- 插入 U 盘,打开 Rufus,确认选择的是要制作启动盘的那个 U 盘。
- 选择 Ubuntu ISO,按目标电脑的启动方式确认选项。
- 点击开始。如果出现 ISO/DD 写入方式选择,本文使用 ISO 镜像模式。
- 等待写入完成,再重新打开 U 盘。
Rufus 的操作界面和 ISO 模式说明可以参考 Ubuntu 官方启动盘教程。
2.3 写完启动盘,再放入 frp 资料
我在启动盘制作完成后,新建了一个 frp-files 文件夹,把之后要用到的东西集中放进去:
U盘/
├── Ubuntu 安装文件……
└── frp-files/
├── frp_0.71.0_linux_amd64.tar.gz
├── frps.toml
├── frpc-tengxunyun.toml
├── frpc-aliyun.toml # 可选:第二条通道
└── readme.txt # 保存本文需要执行的命令和服务文件内容
顺序很重要:先制作启动盘,再复制资料。 先放资料再刻录,会把资料一起清掉。
如果写盘后 Windows 中能看到的分区无法新建文件夹,或者没有足够空间,就把资料改放到另一个 U 盘。不同写入方式的分区表现不同,不要为了存资料去格式化已经做好的启动盘。
我会提前把后面的配置填好,readme.txt 保存成 UTF-8,尽量保留一条命令一行的格式。配置中的公网 IP 和 Token 也在这一步核对,回家后就能减少手工输入。
本文所有
YOUR_...和REPLACE_...都是占位符,需要换成自己的值。Token 是 frpc 与 frps 之间的认证字符串,两端必须一致。它和 Ubuntu 登录密码是两回事。公开文章时,只展示脱敏后的配置。
三、在实体机上安装 Ubuntu Server
把 U 盘插到目标主机,开机进入启动菜单,选择 U 盘启动。不同主板的启动按键不同,按开机提示或设备说明操作。
安装时,我主要关注下面几项:
- 系统版本:选择 Ubuntu Server 24.04.4 LTS,对应服务器版镜像。
- 网络:先让实体机能够上网;有条件时直接插网线,减少首次配置步骤。
- 安装磁盘:确认选中的是准备安装 Ubuntu 的硬盘。选择整盘安装会清除该盘原有数据。
- 用户名和密码:记录好,这是之后 SSH 登录家里主机使用的账号。
- OpenSSH Server:安装过程中如果出现该选项,可以直接勾选;没选也可以安装完成后补装。
- 安装完成后按提示重启、拔掉启动 U 盘,从硬盘进入系统。
安装界面可以参考我当时收藏的 Ubuntu 24.04 LTS 安装图文教程,直接看其中的服务器版安装部分。碰到不认识的界面,也可以拍照向 GPT 询问;分区和清盘步骤要结合实际硬盘信息确认。
Ubuntu Server 默认进入文字控制台。看到登录提示后,输入安装时创建的用户名和密码。输入密码时屏幕不显示字符属于正常现象。
登录后先确认系统、架构和网络:
cat /etc/os-release
uname -m
ip -br address
ip route
sudo apt update
uname -m 显示 x86_64 时,对应本文的 amd64 包。apt update 能正常访问软件源,说明后续安装软件所需的网络已经基本具备;如果失败,先根据报错检查联网、DNS 或软件源。
四、没有第二台电脑,用 gpm 在本机复制命令
最开始麻烦的地方是:配置和命令已经准备好了,但主机只有文字控制台,无法像在 Xshell 中那样直接粘贴。
我使用的工具叫 gpm,它给 Linux 虚拟控制台提供鼠标选取和粘贴功能。它适用于主机本地的 TTY,也就是接着显示器看到的文字控制台。gpm 手册说明了这套操作方式。
4.1 安装并启动 gpm
在家里的 Ubuntu 实体机上执行:
sudo apt install gpm
sudo systemctl enable --now gpm
sudo systemctl status gpm --no-pager
接上鼠标后,通常可以:
- 鼠标左键拖动:选中文字。
- 鼠标中键,也就是按下滚轮:粘贴。
- 两键鼠标的粘贴方式可能是右键,具体取决于鼠标和 gpm 配置。

4.2 把 U 盘资料复制到自己的用户目录
系统装好后重新插入 U 盘。Server 版不一定自动挂载,所以先查看设备:
lsblk -f
根据容量、文件系统、卷标和挂载点,找到存放 frp-files 的 U 盘分区。
如果已自动挂载,把下面第一行替换成显示出来的实际挂载路径,再复制资料:
USB_MOUNT='/REPLACE_WITH_ACTUAL_USB_MOUNT_PATH'
ls "$USB_MOUNT/frp-files"
mkdir -p "$HOME/frp-files"
cp -r "$USB_MOUNT/frp-files/." "$HOME/frp-files/"
如果没有挂载,可以按下面的方式操作。先把第一行的占位值改成刚才确认的 U 盘分区,例如 /dev/sdb1;实际名称以本机为准。
USB_PARTITION=/dev/REPLACE_WITH_USB_PARTITION
sudo mkdir -p /mnt/usb
sudo mount -o ro "$USB_PARTITION" /mnt/usb
ls /mnt/usb/frp-files
mkdir -p "$HOME/frp-files"
cp -r /mnt/usb/frp-files/. "$HOME/frp-files/"
sudo umount /mnt/usb
上面两种方式按实际挂载情况选择一种。如果 ls 没有找到资料目录,先核对是不是挂载了正确分区,再执行复制。后面的步骤统一从 ~/frp-files 读取文件。
4.3 从命令笔记中选取、粘贴
显示准备好的笔记:
cat "$HOME/frp-files/readme.txt"
如果文件很长,可以只显示一小段:
sed -n '1,20p' "$HOME/frp-files/readme.txt"
显示结束后会回到命令提示符。用鼠标框选屏幕上需要的命令,按中键粘贴,检查后执行。下一段可以把行号改成 21,40。
这里有几个实际操作细节:
- 一次选一条或一小段,避免长命令在屏幕上折行后漏选。
- 留意末尾换行:粘贴带换行的内容,可能直接执行。
- systemd 服务文件中的
[Unit]、[Service]等内容要写进文件,不是直接当作命令执行。 - gpm 复制的是控制台已经显示的文字,不能直接读取手机或另一台电脑的剪贴板。
如果身边有另一台能连到实体机的电脑,安装好 SSH 后就可以用 Xshell 等工具连接实体机的局域网 IP,直接编辑文件、粘贴命令。 gpm 是这次本机操作时用到的办法。
五、先确认实体机的 SSH 服务可用
frp 负责转发连接,真正接受登录的是 OpenSSH Server。所以配置 frpc 前,先把实体机的 SSH 服务准备好。
在家里的 Ubuntu 实体机上执行:
sudo apt install openssh-server
sudo systemctl enable --now ssh
sudo ss -lntp 'sport = :22'
ssh "$USER"@127.0.0.1
首次连接本机会提示确认主机指纹,核对后继续,使用这台 Ubuntu 的登录凭据。进入本机的 SSH 会话后,执行 exit 返回原来的控制台。
如果本机 SSH 都连接不上,先解决 SSH 安装、监听或认证问题,再往下配置 frp。Ubuntu 的 SSH 服务名称是 ssh,相关安装和配置见 Ubuntu OpenSSH 文档。
六、在公网云服务器上配置 frps
这一节的命令都在云服务器上执行。可以提前在准备资料时用 Xshell 完成;如果在家操作,也可以从实体机通过 SSH 登录云服务器后执行。注意不要把两台机器的终端混在一起。
本文的云服务器也按 Linux + systemd 编写。先把 frp_0.71.0_linux_amd64.tar.gz 和填好 Token 的 frps.toml 上传到云服务器当前登录用户的家目录,例如通过 Xshell 配套的文件传输工具或 scp 上传。
6.1 解压并放置配置
sudo tar -xzf "$HOME/frp_0.71.0_linux_amd64.tar.gz" -C /opt
sudo install -m 600 "$HOME/frps.toml" /opt/frp_0.71.0_linux_amd64/frps.toml
sudo chmod 755 /opt/frp_0.71.0_linux_amd64/frps
frps.toml 内容如下,Token 需要替换成自己的随机长字符串:
bindPort = 7000
auth.method = "token"
auth.token = "REPLACE_WITH_YOUR_LONG_RANDOM_TOKEN"
本文统一使用 7000 作为 frp 连接端口,客户端的 serverPort 必须与服务端的 bindPort 保持一致。
Token 的配置方式见 frp 官方身份认证说明。这里使用 TOML 语法,不能把旧 INI 教程中的 [common]、server_addr 等写法混进来。
6.2 放行必要的端口
在云服务器安全组中,按这条 TCP 通道放行:
| 入站端口 | 协议 | 来源和用途 |
|---|---|---|
7000 |
TCP | 允许家里实体机的出口地址连接 frps |
8088 |
TCP | 允许需要远程登录实体机的客户端地址访问 |
来源地址按实际网络设置;家里宽带公网出口地址可能变化。如果云服务器启用了系统防火墙,也要添加对应规则。安全组和系统防火墙都需要检查。
如果云服务器使用 UFW,先查看状态:
sudo ufw status
仅在 UFW 已启用、且确实需要添加规则时,替换下面的来源占位值后执行:
sudo ufw allow from YOUR_HOME_PUBLIC_IP to any port 7000 proto tcp
sudo ufw allow from YOUR_SSH_CLIENT_PUBLIC_IP to any port 8088 proto tcp
如果用的是其他防火墙,就使用该系统对应的规则管理方式。云服务器原有的管理 SSH 规则仍要保留。
这里的 8088 是 TCP SSH 转发端口,在浏览器地址栏打开它无法代替 SSH 测试。家里的路由器也不需要为这个方案另做入站端口映射,实体机通过 frpc 主动连接云服务器。
6.3 校验配置,设置开机自启
先检查配置文件:
sudo /opt/frp_0.71.0_linux_amd64/frps verify -c /opt/frp_0.71.0_linux_amd64/frps.toml
verify 用于配置预检查,不代表网络和代理已经连通。用法见 frp 配置校验文档。
创建服务文件:
sudo nano /etc/systemd/system/frps.service
写入以下内容:
[Unit]
Description=FRP Server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/frp_0.71.0_linux_amd64/frps -c /opt/frp_0.71.0_linux_amd64/frps.toml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
在 nano 中按 Ctrl + O → 回车 → Ctrl + X 保存并退出。
然后加载服务并启动:
sudo systemctl daemon-reload
sudo systemctl enable --now frps
sudo systemctl status frps --no-pager
sudo journalctl -u frps -n 50 --no-pager
状态应显示 active (running),日志中不应有配置、认证或端口监听错误。此时还没有客户端连接,不代表已经能通过 8088 登录实体机。
这套服务文件沿用我的配置笔记,以 root 运行;配置文件通过 install -m 600 限制读取权限。systemd 管理 frp 的方式也可以参考 frp 官方说明。
七、回到家里的实体机,配置 frpc
接下来的命令都在家里的 Ubuntu 实体机上执行。如果刚才通过 SSH 进入了云服务器,先 exit 回到实体机终端。
7.1 解压文件并复制客户端配置
sudo tar -xzf "$HOME/frp-files/frp_0.71.0_linux_amd64.tar.gz" -C /opt
sudo install -m 600 "$HOME/frp-files/frpc-tengxunyun.toml" /opt/frp_0.71.0_linux_amd64/frpc-tengxunyun.toml
sudo chmod 755 /opt/frp_0.71.0_linux_amd64/frpc
这里统一使用从 U 盘复制出来的 ~/frp-files 目录,避免前一步把文件放在一个位置,后一步又从另一个位置移动文件。
frpc-tengxunyun.toml 内容如下:
serverAddr = "YOUR_VPS_PUBLIC_IP"
serverPort = 7000
auth.method = "token"
auth.token = "REPLACE_WITH_YOUR_LONG_RANDOM_TOKEN"
[[proxies]]
name = "home-ssh-tengxun"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 8088
逐项核对:
serverAddr:云服务器公网 IP,不是家里主机的局域网 IP。serverPort:和云服务器的bindPort一致,这里是7000。auth.token:和这台云服务器的 Token 完全一致。localIP:这里 SSH 与 frpc 在同一台实体机上,所以填写127.0.0.1。localPort:实体机的 SSH 监听端口,这里是22。remotePort:云服务器对外提供的 SSH 转发端口,这里是8088。
同一个 frps 上,不同代理应使用不同名称;同一个监听地址上的 TCP 端口也不能被重复占用。如果需要修改复制后的配置:
sudo nano /opt/frp_0.71.0_linux_amd64/frpc-tengxunyun.toml
7.2 检查配置并设置开机自启
sudo /opt/frp_0.71.0_linux_amd64/frpc verify -c /opt/frp_0.71.0_linux_amd64/frpc-tengxunyun.toml
sudo nano /etc/systemd/system/frpc-tengxunyun.service
服务文件内容:
[Unit]
Description=FRP Client - Tencent Cloud
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/opt/frp_0.71.0_linux_amd64/frpc -c /opt/frp_0.71.0_linux_amd64/frpc-tengxunyun.toml
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
ExecStart 中的程序和配置路径,都必须与前面实际放置的文件一致。Restart=always 表示进程退出后由 systemd 尝试重启;通过 systemctl stop 主动停止时不会因此立刻拉起。
network-online.target 用于启动顺序配合,不等于保证云服务器永远可达,具体含义见 systemd 网络启动说明。
保存后执行:
sudo systemctl daemon-reload
sudo systemctl enable --now frpc-tengxunyun
sudo systemctl status frpc-tengxunyun --no-pager
sudo journalctl -u frpc-tengxunyun -n 50 --no-pager
除了看到 active (running),还要查看日志中是否成功登录 frps、成功启动 SSH 代理。仅有进程在运行,不能说明端口已经可用。
需要持续观察时:
sudo journalctl -u frpc-tengxunyun -f
按 Ctrl + C 退出日志查看,不会停止服务。没有使用 --no-pager 的状态页通常按 q 退出;Ctrl + Z 会挂起当前命令,不适合当成退出键。
八、自测:先连通,再验证重启
8.1 先从实体机做一次通道自测
这一步是可选的快速检查。如果第六节给 8088 限制了来源,先在云安全组和已启用的防火墙中,临时允许家里网络的公网出口地址访问 TCP 8088;给 7000 放行同一个地址并不会自动放行 8088。不方便调整规则时,可以直接进行下一节的外部测试。
在家里的实体机上,通过云服务器入口连接回来:
ssh -p 8088 YOUR_HOME_UBUNTU_USER@YOUR_VPS_PUBLIC_IP
把用户名替换成安装 Ubuntu 时创建的用户,IP 替换成云服务器公网 IP。如果能登录,并且 hostname 显示的是家里实体机的名称,说明这条转发路径已经能完成 SSH 登录。完成后用 exit 退出。
8.2 再从外部网络测试
本机回连可以先检查通道,外部网络测试则用来验证真正的远程使用场景。
如果当时没有另一台电脑,可以用手机 SSH 客户端,关闭 Wi-Fi 后通过移动网络测试;之后有电脑可用时,再用 Xshell 等工具连接。
| 连接项 | 填写内容 |
|---|---|
| 协议 | SSH |
| 主机 | 云服务器公网 IP |
| 端口 | 8088 |
| 用户名 | 家里 Ubuntu 的用户名 |
| 密码或密钥 | 家里 Ubuntu 对应用户的 SSH 登录凭据 |
首次连接时,对照实体机上的 SSH 主机指纹确认身份;如果安全组限制了来源地址,也要允许这次外部测试使用的公网出口地址。Token 无需填入 Xshell。
8.3 检查开机自启
先在实体机上确认服务已设为开机启动:
sudo systemctl is-enabled frpc-tengxunyun
应返回 enabled。然后在方便重启时执行:
sudo reboot
系统和网络恢复后,再从外部连接一次。若失败,回到实体机查看本次开机日志:
sudo journalctl -u frpc-tengxunyun -b -n 100 --no-pager
云服务器端同样检查 systemctl is-enabled frps。如果需要验证云服务器重启后的恢复情况,选择不影响该服务器其他业务的时间再测试。
这几项检查各自说明不同的事情:
| 检查 | 能说明什么 |
|---|---|
verify 通过 |
配置通过程序的预检查 |
| 服务运行、代理注册成功 | frp 进程和代理启动情况正常 |
| 外部 SSH 登录成功 | 当前外部网络能够通过通道访问实体机 |
| 实体机重启后再次登录成功 | 实体机这一端的开机恢复流程有效 |
九、可选:再增加一条阿里云通道
我整理的资料里还包含阿里云配置。理解第一条通道后,第二条通道的做法相同:同一个 frpc 程序,用不同的 TOML 文件和 systemd 服务,分别连接两台云服务器。
示例对应关系如下:
| 通道 | 云服务器 frps 端口 | 云服务器 SSH 转发端口 | 实体机配置文件 |
|---|---|---|---|
| 腾讯云 | 7000 |
8088 |
frpc-tengxunyun.toml |
| 阿里云 | 7000 |
18022 |
frpc-aliyun.toml |
首先在第二台云服务器按第六节部署 frps,但将它的配置改为:
bindPort = 7000
auth.method = "token"
auth.token = "REPLACE_WITH_ALIYUN_RANDOM_TOKEN"
第二台服务器的安全组、已启用的系统防火墙,也要对应允许 TCP 7000 和 18022。两台云服务器可以使用各自独立的 Token,同一条通道的两端要一致。
然后准备家里实体机的 frpc-aliyun.toml:
serverAddr = "YOUR_ALIYUN_PUBLIC_IP"
serverPort = 7000
auth.method = "token"
auth.token = "REPLACE_WITH_ALIYUN_RANDOM_TOKEN"
[[proxies]]
name = "home-ssh-aliyun"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 18022
把它放进实体机的 ~/frp-files 后,执行:
sudo install -m 600 "$HOME/frp-files/frpc-aliyun.toml" /opt/frp_0.71.0_linux_amd64/frpc-aliyun.toml
sudo /opt/frp_0.71.0_linux_amd64/frpc verify -c /opt/frp_0.71.0_linux_amd64/frpc-aliyun.toml
sudo nano /etc/systemd/system/frpc-aliyun.service
写入:
[Unit]
Description=FRP Client - Aliyun
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/opt/frp_0.71.0_linux_amd64/frpc -c /opt/frp_0.71.0_linux_amd64/frpc-aliyun.toml
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
保存后启动并查看。最后一条是从实体机回连第二台云服务器的自测命令,同样需要第二台服务器的 TCP 18022 允许家里公网出口地址;也可以把这条测试命令放到已获准的外部客户端执行。
sudo systemctl daemon-reload
sudo systemctl enable --now frpc-aliyun
sudo systemctl status frpc-aliyun --no-pager
sudo journalctl -u frpc-aliyun -n 50 --no-pager
ssh -p 18022 YOUR_HOME_UBUNTU_USER@YOUR_ALIYUN_PUBLIC_IP
这样就有两个可以手动选择的远程入口。它们不是自动切换的高可用方案,也没有自动合并成一条连接。
十、遇到问题,按连接顺序排查
我会按这个顺序查:实体机 SSH → frpc 配置和进程 → frps → 云端口 → 外部 SSH 登录。
| 现象 | 优先检查 |
|---|---|
本机 ssh 127.0.0.1 失败 |
是否安装 OpenSSH Server,22 端口是否监听,账号凭据是否正确 |
| frpc 连不上 frps | 云服务器 IP、serverPort 与 bindPort 是否对应;控制端口是否放行 |
| 日志出现认证失败 | 当前这条通道两端的 Token 是否一致,服务是否读了正确的 TOML |
| 代理名冲突或端口被占用 | 是否重复启动了 frpc,另一个代理是否使用了相同名称或 remotePort |
| 服务运行但外部连接超时 | 代理是否注册成功;安全组和系统防火墙是否允许转发端口及当前来源 |
| 外部连接被拒绝 | 云端转发端口是否监听,frpc 是否在线,本地 SSH 是否运行 |
SSH 提示 Permission denied |
是否使用实体机账号,密码或密钥是否正确,SSH 是否允许该认证方式 |
| 服务报文件不存在或无法执行 | ExecStart 路径、程序执行权限、压缩包架构是否正确 |
| 改了配置没有变化 | 是否改的是服务正在读取的文件,修改后是否重启了对应服务 |
| 重启后失联 | 自启是否启用,实体机网络是否恢复,本次开机日志有什么错误 |
改 TOML 后,先 verify,再重启对应服务。例如实体机主通道:
sudo /opt/frp_0.71.0_linux_amd64/frpc verify -c /opt/frp_0.71.0_linux_amd64/frpc-tengxunyun.toml
sudo systemctl restart frpc-tengxunyun
sudo journalctl -u frpc-tengxunyun -n 50 --no-pager
如果修改的是 .service 文件,需要先执行 sudo systemctl daemon-reload,再重启对应服务。不要在 systemd 已经管理同一配置时,再手动启动一个相同的 frpc 进程。
十一、配置完成后,我会保留哪些东西
这次实践里,最有用的准备工作是:把后面要用到的文件和命令,提前放进 U 盘。 在只有主机本地控制台可用的时候,一份路径、文件名和端口都对齐的笔记,可以减少很多反复输入。
我会保留下面几类资料,方便以后重装或迁移:
- 使用过的 Ubuntu 版本和 frp 压缩包版本。
- 每条通道对应的云服务器、控制端口、转发端口。
- frps/frpc 的 TOML 配置和 systemd 服务文件。
- 查看状态、查看日志、重启服务和自测连接的命令。
公开分享时,把真实公网 IP、Token、账号及密钥信息脱敏;自己保存的配置则妥善保管。通道长期使用时,使用普通用户和可靠的 SSH 登录凭据,优先配置密钥登录,并按实际来源限制云端 SSH 转发端口的访问范围。SSH 密钥配置可参考 Ubuntu OpenSSH 文档。
整个过程串起来,就是:先让实体机能上网、SSH 可用,再让 frpc 连上 frps,最后验证外网访问和开机恢复。 如果身边没有第二台电脑,就先用 U 盘加 gpm 完成本机配置;等第一条通道连通后,后续维护就可以通过熟悉的 SSH 工具继续操作了。

浙公网安备 33010602011771号