设备部署在局域网中,需要在外部通过ssh去访问它,方便开发调试,可以通过阿里云服务实现远程调试。
1、购买服务
地址:https://swasnext.console.aliyun.com/buy#/

没有什么特殊用途选择最便宜的通用型就够用了,这里的镜像选择自己熟悉的就行,服务将会部署在镜像对应的环境中,后续还需要通过实例终端配置,那个终端环境就对应这里的镜像。地域选择部署地区比较近的地域,要求不是特别高,我就忘记选了,用着也没有什么明显问题。
购买完成后,阿里云服务的控制台会多出一个轻量应用服务器:

2、配置
服务器实例会分配IP地址等:

先点击设置密码,弹出Workbench一键连接,点击登陆实例:

进入系统提示,直接关闭掉下面弹框,这个弹框没用:

在命令端执行下面命令:
python
admin@iZ2z13o2b2qcidZ:~$ cat /etc/os-release | head -n 2
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
防火墙tcp添加如下所示:

下载frps(0.71.0版本):
python
第 1 步:切换到 root 并进入临时目录
sudo -i
cd /tmpserverAddr = "你的云服务器公网IP"
serverPort = 7000
auth.token = "你的Token"
transport.tls.enable = true
[[proxies]]
name = "office-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
第 2 步:查最新版本号并下载
FRP_VERSION=$(curl -s https://api.github.com/repos/fatedier/frp/releases/latest | sed -n 's/.*"tag_name": "v\(.*\)".*/\1/p')
echo "最新版本是: $FRP_VERSION"
wget https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz
生成双方需要的密钥:
python
root@iZ2zeflh13o2b2qcight9dZ:/tmp# openssl rand -base64 24
67SGiQ6GRJmE0FOFvlW7xgxLDc633BX
网页端服务器配置
在网页端服务器,控制终端配置如下:
第 1 步:生成 Token(登录暗号)
python
openssl rand -base64 24
把输出的那串字符(形如 xK9pQ...=)复制保存到记事本,等会儿两边都要用。
第 2 步:写配置文件
python
mkdir -p /etc/frp
nano /etc/frp/frps.toml
在打开的编辑器里粘贴下面内容,把 粘贴Token 换成上一步生成的那串:
python
bindAddr = "0.0.0.0"
bindPort = 7000
auth.token = "67SGiQ6GRJmE0FOFvlW7xgxLDc633BX"
allowPorts = [
{ start = 6000, end = 6999 }
]
操作方法:鼠标右键粘贴(或 Ctrl+Shift+V),然后
- 按
Ctrl+O,再按回车确认文件名 → 保存 - 按
Ctrl+X→ 退出
第 3 步:手动试运行
python
frps -c /etc/frp/frps.toml
看到 frps started successfully 就说明配置正确。此时窗口被占住是正常的,按 Ctrl+C 停掉它(下一步让它在后台常驻)。
第 4 步:注册为系统服务(后台运行 + 开机自启)
python
nano /etc/systemd/system/frps.service
整段原样粘贴,不用改任何内容:
python
[Unit]
Description=frp server service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml
Restart=always
RestartSec=5
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
同样 Ctrl+O 回车保存、Ctrl+X 退出。然后执行:
python
systemctl daemon-reload
systemctl enable --now frps
systemctl status frps --no-pager
最后一条命令的输出里找到这一行:
python
Active: active (running)
看到它(绿色字样)就说明服务端全部搞定。按 q 退出状态画面。
如果想重启云服务器上的 frps
python
systemctl restart frps
systemctl status frps --no-pager
看到 active (running) 后按 q 退出。
装个人电脑的客户端
个人电脑是 Ubuntu 的话,打开终端,先确保它的 SSH 服务在运行:
python
systemctl status ssh --no-pager
# 看到 active (running) → 没问题,按 q 退出。
如果提示 could not be found 或没装 → 执行安装:
python
sudo apt update && sudo apt install -y openssh-server
执行uname -m 显示 x86_64 就继续下面的安装。
第 1 步:下载同版本 FRP(0.71.0)并安装客户端
python
sudo -i
cd /tmp
wget https://github.com/fatedier/frp/releases/download/v0.71.0/frp_0.71.0_linux_amd64.tar.gz
tar -xzf frp_0.71.0_linux_amd64.tar.gz
cp frp_0.71.0_linux_amd64/frpc /usr/local/bin/
chmod +x /usr/local/bin/frpc
frpc --version
最后应打印 0.71.0。
第 2 步:写客户端配置
去阿里云控制台复制你那台服务器的公网 IP(形如 101.x.x.x),然后:
python
mkdir -p /etc/frp
nano /etc/frp/frpc.toml
粘贴下面内容,替换两处:云服务器公网IP 和 你的Token(就是之前 openssl 生成、保存在记事本里的那串):
python
serverAddr = "1XX.XXX.XXX.X5"
serverPort = 7000
auth.token = "67SGiQ6GRJmE0FOFvlW7xgxLDc633BX"
transport.tls.enable = true
[[proxies]]
name = "cpu-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6011
[[proxies]]
name = "cpu-recv"
type = "tcp"
localIP = "2.2.2.2"
localPort = 8000
remotePort = 6012
[[proxies]]
name = "cpu-send"
type = "tcp"
localIP = "2.2.2.2"
localPort = 8001
remotePort = 6013
其中cpu-ssh含义:打电话到云服务器的 7000 总机,对上暗号后,把云服务器的 6000 号房间转接到我自己的 22(SSH)。 Ctrl+O 回车保存,Ctrl+X 退出。
第 3 步:手动试连一次
python
frpc -c /etc/frp/frpc.toml
成功的标志是出现一行类似:
python
login to server success
... start proxy success
看到后按 Ctrl+C 停掉,进入下一步注册后台服务。报错(最常见是 token 不一致、端口不通)。
SSH连接命令如下:
python
ssh -p 6011 用户名@101.XXX.XXX.XXX
第 4 步:注册为系统服务(开机自启)
python
nano /etc/systemd/system/frpc.service
整段粘贴:
python
[Unit]
Description=frp client service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml
第 4 步:注册为系统服务(开机自启)
python
nano /etc/systemd/system/frpc.service
整段粘贴:
python
[Unit]
Description=frp client service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml
Restart=always
RestartSec=5
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
保存退出后执行:
python
systemctl daemon-reload
systemctl enable --now frpc
systemctl status frpc --no-pager
看到 active (running) 就说明公司电脑已经把线挂上了。