我正在将一台旧笔记本电脑改装成基本上只是我其他一些计算机的终端。大多数情况下,我只需要通过 ssh 登录到我的计算机,并且可以使用任何基于 CLI 的操作系统来完成此操作。
如果这就是我所需要的,我只需安装 Debian 就可以了。但我还有几台具有内置的基于浏览器的界面的计算机,例如 TrueNAS 计算机。我有一台 Fedora 机器,它也有一个“驾驶舱”。我可以安装一个桌面环境 GUI,然后只需在浏览器中打开界面,事实上我目前就这样做了,而且效果很好。但整个桌面环境对于我的需要来说似乎太过分了。
那么,我可以访问基于浏览器的界面,但又尽可能保持接近纯 CLI 系统的最简单/最轻便/最快的方式是什么?
在做出决定之前,我想测试一下我会使用的实际应用程序。我通过终端访问网页的最常用工具是carbonyl - 我运行二进制文件而不是docker容器,“优势”甚至是现代网页的工作。您在顶部看到的选项卡不是我的浏览器,而是我的终端窗口。
据我所知,它不需要完整的 DE,它完全基于 frambuffer
它还有一些正在进行中的工作 - 需要 ctrl-c 来关闭窗口,没有选项卡,并且它只有一个勉强起作用的地址栏,但它闪耀的地方,它闪耀。
可以选择使用基于文本的 Web 浏览器Lynx。
根据您需要的功能,它可能仍然可以工作,但显然图像和潜在的许多 HTML5 和 javascript 功能都已不再可用。如果您只需要查看纯文本网站,那么它至少可以发挥作用。
另一种现代选项是Browsh,它接收适当的网页并将其呈现为文本,以便在 ssh 等 CLI 工具中显示。它适用于低带宽情况,并且需要一台安装了 Firefox 的完整桌面的服务器,但可以想象,查看它的计算机可能只是 CLI。
它不是。即使对于 SSH 来说,它也可能比任何替代方案(替代方案并不多)更高效,但它几乎是浏览器的唯一选择——实际上它们都是 X11 程序,因此您需要在 X11 显示服务器上运行它们,这意味着运行 Xorg。
请记住,这是 Linux – 实际的桌面环境不需要是完整的 3D 加速 KDE 或 GNOME;您可以手动组装一个基本环境,其中包括一个窗口管理器,例如 Openbox(或者 twm 或 Fvwm,如果您希望它看起来更复古)和一些 Xterm 窗口。
尽管现在,Linux 对大多数(甚至是旧的)图形控制器使用内核模式设置,这意味着初始化 Xorg 只需要不到一秒的时间,因为 GPU 已经配置完毕,而不像过去 Xorg 本身必须从头开始。也就是说,很可能在大部分时间和
startx
需要时都停留在控制台中,在不再需要时退出 Xorg。但是,我不建议这样做;Linux 内核的内置控制台速度慢且效率低(以及其他问题),对于日常使用来说可能是最糟糕的选择。您将从 xfce4-terminal 或 Xterm 或类似的东西上获得更好的 SSH 体验。
但无论如何,是浏览器——而不是 GUI 的其余部分!– 将是效率最低的部分。现代浏览器和网络应用程序都很大;您可以尝试 Ladybird,因为它即将可用,但尝试在现代 Firefox 或 SeaMonkey 中加载大型 JavaScript 驱动的 GUI 可能会消耗您 80% 的电池电量。尝试用 Xorg 之外的其他东西来做这件事不会有太大改变。
(我的意思是,您可能可以一直使用“终端”设置,并将笔记本电脑用作VNC终端来连接到另一台计算机上运行的浏览器...)
您可以使用另一个具有 GUI 界面和浏览器的系统,利用终端系统上的 SSH 隧道作为代理。首先,在终端系统上设置 SSH 服务/守护进程。
这个问题并不完全清楚为什么你想要设置一个 CLI 系统来访问你的其他计算机,所以你远程连接到它是合理的,所以为了论证,让我们假设这种方法对你来说是有意义的用例。如果没有,也许其他人会发现它有帮助。
为此,您的客户端需要支持设置转发。我将使用 SSH 命令行实用程序作为示例。
一种选择是设置单个端口进行转发,例如
ssh -L LOCAL_PORT:HOST:HOST_PORT [USER@]SSH_SERVER
,并将浏览器连接到http://localhost:LOCAL_PORT
。对于 HTTP,您需要端口 80,对于 HTTPS,需要端口 443。请注意,如果是 HTTPS,浏览器将因域名错误而拒绝证书,但您仍然可以继续。或者,如果您的客户端支持,您可以使用动态转发来设置 SOCKS 代理,例如
ssh -D LOCAL_PORT [USER@]SSH_SERVER
. 然后配置您的系统或浏览器以使用该本地端口作为 SOCKS 代理。使用此方法,浏览器将接受有效的 HTTPS 证书。输入原始 URL,就像从终端系统(SSH 主机)浏览时输入的一样。