一、它到底是什么

入门

平时我们上网,都是点开一个带窗口的浏览器,看到的是图片、视频、按钮。Carbonyl 做的事情很特别:它把完整的 Chromium(就是 Chrome 浏览器的开源版本)塞进了黑底白字的终端里。

终端就是程序员敲命令的那个文字窗口,只能显示字符,没有图形界面。Carbonyl 会把网页的画面转成字符画出来,所以你在终端里也能看到网页长什么样、甚至能播放视频。

它最大的价值在于:不需要图形界面也能上网。比如你租的服务器只有命令行、或者你正通过 SSH(一种远程登录服务器的方式)连着一台机器,照样能打开网页。

Carbonyl 项目封面

它支持 WebGL、音视频播放、动画等大部分网页能力,启动不到一秒,空闲时几乎不占 CPU。

二、装之前先想清楚用哪种方式

入门

Carbonyl 官方给了三条路,难度从低到高。零基础建议直接用 Docker,其次是 npm,最后才考虑下载二进制包。

Docker 是一种把软件和它需要的运行环境打包成"集装箱"的工具,你只要拉下这个集装箱就能跑,不用自己装依赖。这是最省事的方式。

npm 是 JavaScript 的软件包管理器,类似手机上的应用商店,一条命令就能把工具装到系统里。前提是你电脑上已经装过 Node.js(npm 会跟着它一起装好)。

二进制包就是别人已经编译好的可执行文件,下载解压就能用,但要自己处理系统依赖。

Linux 上如果不走 Docker,Carbonyl 需要和 Chromium 完全相同的系统依赖库,缺一个都启动不了。

三、用 Docker 一条命令跑起来

入门

前置条件:电脑上装好 Docker。Windows 和 macOS 可以去 Docker 官网下载 Docker Desktop,Linux 用包管理器安装 docker。装好后确认能用:

docker --version

能看到版本号就说明没问题。然后直接运行下面这条命令,它会自动下载镜像并打开网页:

docker run --rm -ti fathyb/carbonyl https://youtube.com

参数含义很简单:--rm 表示退出后自动清理容器,-ti 表示分配一个可交互的终端(不加的话画面可能显示异常),最后的网址就是你要打开的页面。

把网址换成任何你想访问的地址都行,比如 https://github.com。想退出时,按终端提示的快捷键或直接 Ctrl+C。

四、用 npm 安装到本机

进阶 · 推荐细读

前置条件:需要 Node.js(建议 16 以上版本)。在终端输入 node -v 能打印出版本号即可,没有的话先去 Node.js 官网装一个。

装好 Node.js 后,全局安装 Carbonyl:

npm install --global carbonyl

--global 的意思是装到系统全局,这样在任何目录下都能直接敲 carbonyl 命令。安装完成后验证一下:

carbonyl --version

接着就能像用普通浏览器一样打开网页:

carbonyl https://github.com

终端里会逐行"画"出 GitHub 首页。加载完成后,可以用键盘的方向键滚动页面,用 Tab 键在链接之间跳转,回车打开当前选中的链接。

如果终端窗口太小,画面会挤在一起。建议把终端窗口拉大一些,显示效果会好很多。

五、下载二进制包直接运行

进阶 · 推荐细读

如果你不想装 Docker 也不想装 Node.js,可以去 GitHub 的 Releases 页面下载对应系统的压缩包。官方提供四个版本:

  • macOS amd64:给 Intel 芯片的 Mac
  • macOS arm64:给 M 系列芯片的 Mac
  • Linux amd64:给普通 64 位 Linux 服务器
  • Linux arm64:给 ARM 架构的 Linux(比如部分云服务器)

下载后解压,进入目录执行:

./carbonyl https://example.com

注意:Linux 下这种方式要求系统已经装齐 Chromium 的全部依赖库,否则会报缺少 .so 文件之类的错误。遇到这种情况,还是回头用 Docker 更省心。

六、几个容易踩的坑

深入 · 老手可选

中文显示成方块或乱码。 这是因为终端字体不支持中文,或者编码不是 UTF-8。解决办法是换一个带中文字形的等宽字体(比如 Sarasa Mono、更纱黑体),并确认终端编码设置为 UTF-8。

通过 SSH 连接时画面不动。 SSH 会话默认的终端类型可能不兼容。可以尝试在连接前设置 export TERM=xterm-256color,或者换用支持 256 色的终端工具。

全屏模式用不了。 这是官方明确列出的已知限制,目前 Carbonyl 还不支持网页进入全屏。遇到需要全屏的网页(比如某些在线视频),只能在小窗口里看。

另外注意:Carbonyl 是浏览器,不是下载工具。它只是把网页渲染出来给你看,不会帮你把网页内容存成文件。

七、把它融进日常和脚本

深入 · 老手可选

Carbonyl 一个很实用的场景是远程查看内网网页。比如你有一台只能 SSH 登录的服务器,上面跑着一个只监听本机的 Web 服务,就可以在服务器上执行:

carbonyl http://localhost:8080

这样不用折腾端口转发,直接在终端里就能看到页面长什么样。

如果你经常需要截图或做网页渲染,也可以把它写进 shell 脚本里批量调用,只不过要注意它本身是交互式的,适合人工查看而非无人值守的定时任务。

想长期使用,建议把常用的网址做成一个简单的 shell 别名,比如 alias yt='carbonyl https://youtube.com',敲一个词就能打开。

项目信息

项目 值
仓库 fathyb/carbonyl
语言 Rust
Star 19,502
Fork 584
主页 无

参考链接

延伸阅读

想继续探索?这些同领域的教程可能也适合你: