之前买的Jetson Nano闲置了,于是准备放在家里当服务器用。因为家里是移动的网,不好申请公网IP,所以用 SakuraFrp 的内网穿透,把 个人博客 迁移到了Nano上,顺便部署了 Code-Server 方便随时随地用平板敲代码。

1.安装 Code-Server

从 Github 上把 Code-Server 的文件下载下来,因为 Nano 是 arm64 架构,所以选择 code-server-X.X.X-linux-arm64.tar.gz 的压缩包

GitHub - coder/code-server: VS Code in the browser

把下载下来的压缩包传到 Nano 上想要的位置后使用下方命令解压,注意替换版本号

tar -zxvf code-server-X.X.X-linux-arm64.tar.gz

进入解压出来的文件夹,找到 bin 目录,进入该目录后使用命令启动 Code-Server

./code-server

在启动后程序会自动生成一个配置文件,可进入其中对配置进行修改

sudo vi ~/.config/code-server/config.yaml

其中 bind-addr 是 主机IP地址 : 端口号,IP地址可以写 0.0.0.0 , auth 保持默认,也就是使用密码登入,密码可在下方 password 处修改,cert 用于填写 SSL 证书地址以开启https加密,如果不开启的话会无法使用剪切板等功能,因为没有相关需求,所以 cert 保持默认的 false

bind-addr: IP地址:端口号
auth: password
password: 访问密码
cert: false

保存完成后重启 Code-Server 服务,在浏览器输入 Nano 的 IP 地址 :端口号,即可进入

2.设置 Code-Server 服务后台运行

因为是在终端启动的服务,所以终端一但关闭程序就停止运行了,可以使用 screen 让程序在后台保持运行

安装 screen

sudo apt-get install screen

安装完成后使用命令开启一个名为 code 的 screen 会话

screen -S code

在会话中进入 bin 文件夹,重新开启 Code-Server 服务

./code-server

开启后按 Ctrl+a+d 可保持服务运行并退出会话,使用下方命令可恢复会话

screen -x code

也可以使用查询命令查看已开启的会话

screen -ls

3.部署相关开发环境

Code-server 和 VSCode 一样只是一个空壳,需要自己安装相关环境和插件

  • 安装 Java 开发环境

sudo apt install default-jresudo apt install default-jdk

使用命令查看是否安装成功

java -versionjavac -version

Java 环境搭建完成后进入 Code-server 的扩展下载页面下载 Extension for Java 扩展,里面包含了 多个扩展,可以免去自己配置调试环境的麻烦。

jetson nano B1 安装 OPENCV_服务器

  • 安装 C/C++ 开发环境

sudo apt install build-essential gdbsudo apt install cmake

使用命令查看是否安装成功

gcc --versiong++ --versiongdb --versioncmake --version

我使用的是微软官方的 C/C++ 扩展,一样可以免去繁琐的配置过程,但是在下载界面无法直接搜索到,需要下载后安装

Releases · microsoft/vscode-cpptools (github.com)

此处选择 cpptools-linux-aarch64.vsix 版本下载,下载后在扩展界面选择从 VSIX 安装即可

jetson nano B1 安装 OPENCV_运维_02

Jetson Nano 自带了 Python 的开发环境,但在 Code-Server 中还需要配置才能直接进行运行和调试,同样可以安装相关插件

jetson nano B1 安装 OPENCV_运维_03

本人在运行该扩展的过程中会出现未知错误,且调试运行功能无法正常使用,故选择安装 Code Runner 插件,该插件可直接运行大部分编程语言编写的程序,但没有调试功能,如果个人有能力的话也可以尝试自行配置

jetson nano B1 安装 OPENCV_Code_04

4. 使用域名进行内网穿透

该功能的实现必须先具有一个已备案的域名,域名的申请此处不详细说明

进入 SakuraFrp 选择节点创建HTTP隧道,隧道名和备注可自己填写,本地 IP 填写 127.0.0.1 ,端口填写之前在 Code-Server 配置文件中配置的端口,在绑定域名处填入自己的域名,HTTP 用户名和密码可留空

jetson nano B1 安装 OPENCV_Code_05

下载穿透软件并安装,安装和使用步骤在官方文档中有详细描述

安装、使用教程 (natfrp.com)

软件下载 | SakuraFrp (natfrp.com)

按照文档中的步骤进行配置即可使用域名访问 Nano 上的 Code-Server,使用宝塔面板理论上可以简化 Code-Server 网站的搭建过程,但本人在使用时发现在 Nano 重启后 Code-Server 的端口会被宝塔占用,目前没有找到解决方法。

HTTP(S) 穿透 (natfrp.com)

帮助文档 - Sakura Frp (natfrp.com)