之前买的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-jre
sudo apt install default-jdk
使用命令查看是否安装成功
java -version
javac -version
Java 环境搭建完成后进入 Code-server 的扩展下载页面下载 Extension for Java 扩展,里面包含了 多个扩展,可以免去自己配置调试环境的麻烦。
- 安装 C/C++ 开发环境
sudo apt install build-essential gdb
sudo apt install cmake
使用命令查看是否安装成功
gcc --version
g++ --version
gdb --version
cmake --version
我使用的是微软官方的 C/C++ 扩展,一样可以免去繁琐的配置过程,但是在下载界面无法直接搜索到,需要下载后安装
Releases · microsoft/vscode-cpptools (github.com)
此处选择 cpptools-linux-aarch64.vsix 版本下载,下载后在扩展界面选择从 VSIX 安装即可
Jetson Nano 自带了 Python 的开发环境,但在 Code-Server 中还需要配置才能直接进行运行和调试,同样可以安装相关插件
本人在运行该扩展的过程中会出现未知错误,且调试运行功能无法正常使用,故选择安装 Code Runner 插件,该插件可直接运行大部分编程语言编写的程序,但没有调试功能,如果个人有能力的话也可以尝试自行配置
4. 使用域名进行内网穿透
该功能的实现必须先具有一个已备案的域名,域名的申请此处不详细说明
进入 SakuraFrp 选择节点创建HTTP隧道,隧道名和备注可自己填写,本地 IP 填写 127.0.0.1 ,端口填写之前在 Code-Server 配置文件中配置的端口,在绑定域名处填入自己的域名,HTTP 用户名和密码可留空
下载穿透软件并安装,安装和使用步骤在官方文档中有详细描述
按照文档中的步骤进行配置即可使用域名访问 Nano 上的 Code-Server,使用宝塔面板理论上可以简化 Code-Server 网站的搭建过程,但本人在使用时发现在 Nano 重启后 Code-Server 的端口会被宝塔占用,目前没有找到解决方法。
Comments NOTHING