ssh

SSH 远程

Ubuntu

Posted by LXG on July 18, 2025

友善NanoPi_R6C

ToDesk 远程控制安装

ToDesk-Linux版本下载


pi@NanoPi-R6C:~$ sudo apt install curl

pi@NanoPi-R6C:~$ curl -o todesk-v4.7.2.0-arm64.zip http://rk3588image.wif.ink/R6C/todesk-v4.7.2.0-arm64.zip

pi@NanoPi-R6C:~$ unzip todesk-v4.7.2.0-arm64.zip

目前在RK3588 Ubuntu版本上无法正常远程控制

串口登陆


sudo minicom -D /dev/ttyUSB0 -b 1500000

NanoPi-R6C login: pi
Password: pi
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 6.1.57 aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings

Last login: Tue May 14 03:45:45 UTC 2024 on ttyFIQ0
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

pi@NanoPi-R6C:~$ 

adb 安装


pi@NanoPi-R6C:~$ sudo apt update

pi@NanoPi-R6C:~$ sudo apt install adb

pi@NanoPi-R6C:~$ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
K5SAMAK490000763AJ      device

ssh 安装


pi@NanoPi-R6C:~$ pi@NanoPi-R6C:~$ sudo apt install openssh-server

lxg@lxg:~$ ssh pi@192.168.1.142
The authenticity of host '192.168.1.142 (192.168.1.142)' can't be established.
ED25519 key fingerprint is SHA256:XDHx38PPWrxw6SQKf+MQokvVXBrs+uRF+McsUkESsSY.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.142' (ED25519) to the list of known hosts.
pi@192.168.1.142's password: pi
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 6.1.99 aarch64)
--------------------------------------
Last login: Fri Jul 18 10:20:20 2025
pi@NanoPi-R6C:~$ 

frp 常见用途

用途 示例 说明
✅ SSH远程登录 ssh 到内网主机 经典用途,可远程维护设备
✅ HTTP/HTTPS访问 内网 Web 服务暴露给公网 支持自定义域名、TLS
✅ 远程桌面 RDP、VNC、Wayland、X11 用于 Windows/Linux 桌面远程访问
✅ 数据库访问 MySQL、PostgreSQL、Redis等 暴露数据库端口供远程连接(注意安全)
✅ 文件服务 FTP、SFTP、Samba(SMB) 可搭配 GUI 工具实现文件共享
✅ 摄像头访问 RTSP、HTTP、ONVIF 视频流转发,适合远程监控
✅ API 调试 内网开发环境开放 REST API 手机或公网测试本地服务
✅ 内网Web控制台 HomeAssistant、NAS、OpenWrt 浏览器远程控制家用或嵌入式设备
✅ IoT 协议转发 MQTT 等 常用于嵌入式物联网终端的远程数据通信

frpc

frpc 是 frp(Fast Reverse Proxy) 的客户端程序,是一个专门用于内网穿透的工具

frpc 是客户端,用来把内网服务(如本地网页、SSH、VNC 等)映射到公网服务器上,从而实现外网访问内网设备。

ssh_frpc_2

frps

frps 是 frp(Fast Reverse Proxy)项目中的 服务端组件,用于在公网服务器(阿里云)上运行,接收来自内网客户端 frpc 的连接,实现内网穿透。

RustDesk对比FRP

对比维度 RustDesk FRP(Fast Reverse Proxy)
功能定位 图形化远程控制工具 内网穿透 / 端口映射工具
使用方式 图形客户端 + 远程桌面控制 配置 frpcfrps
是否需要公网 IP ❌ 不需要,支持打洞与中继 ❌ 不需要,通过服务端中转
图像/键鼠控制 ✅ 支持远程桌面、文件、剪贴板等 ❌ 不支持(只能穿透服务端口)
访问服务(如 SSH/Web) ❌ 不支持 ✅ 可穿透 SSH、HTTP、VNC 等
打洞机制 自研 UDP 打洞 + 中继服务器 支持 xtcpstcp,但成功率有限
开源组件 rustdesk, hbbs, hbbr frps, frpc
服务端配置难度 中等,需要部署 hbbs/hbbr 简单,1个 frps 即可
带宽占用 高(远控图像) 低(仅数据流转发)
多人访问 支持多用户,客户端带账号管理 需手动配置多个端口或使用 dashboard
安全性 端到端加密,客户端验证、权限控制 支持 token + stcp/xtcp 加密
自托管能力 ✅ 强,支持自建完整远控体系 ✅ 强,可全自定义控制服务访问
适合谁 想“向日葵/ToDesk”远控类功能的人 想访问“内网 SSH/Web/API 等服务”的人

frp 的配置

frp配置文件-github


frp_0.63.0_linux_arm64$ tree
.
├── frpc           # 客户端bin程序
├── frpc.toml
├── frps           # 服务端bin程序
├── frps.toml
└── LICENSE

服务端frps.ini


[common]
bind_port = 7000             # frps 与 frpc 通信使用的端口(frpc 连接这个端口)
dashboard_port = 7500        # 仪表盘(Web UI)端口,可通过浏览器查看连接状态
dashboard_user = admin       # 仪表盘登录用户名
dashboard_pwd = admin        # 仪表盘登录密码
vhost_http_port = 80         # 用于将 frpc 映射的 HTTP 服务暴露在 frps 的 80 端口上
vhost_https_port = 443       # 用于将 frpc 映射的 HTTPS 服务暴露在 frps 的 443 端口上

./frps -c frps.ini

客户端frpc.ini


[common]
server_addr = x.x.x.x         # 公网服务器IP或域名
server_port = 7000            # 和 frps.ini 一致

# 用于客户端和服务端之间身份验证的 token(要和 frps.ini 中的 token 一致)
token = ***

# 示例 1:SSH 远程内网Linux
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000            # 你远程访问时用的端口:ssh -p 6000 公网IP

./frps -c frpc.ini

远程登陆

ssh -p 6000 hostname@server_addr