家里的老电脑想重新利用有什么好办法呢?

网上技术文章天天讲“旧电脑怎么发挥余热”:装个轻量 Linux、关动画、换 LXDE/XFCE、把内存压到极致……看起来很对。

但现实往往是:你只要打开浏览器,羸弱的硬件面对现代网页,全部白搭。

  • 一堆站点强依赖现代 JS、ES2020+、WebAssembly、Service Worker
  • HTTPS/TLS 协议栈升级,老系统握手直接失败
  • 前端框架把“首屏渲染”做成了“跑一个小型应用”
  • 老机器 CPU/内存/GPU 任意一项短板,体验就直接崩盘

在Github上找到了一个项目,他换了个思路:别让旧电脑跑现代网页,让一台“服务端机器”跑现代 Chromium,把画面以图片流的方式传给旧浏览器显示,旧机器只负责输入鼠标键盘。

这个方案就是:Browservice。(github.com)


0. 效果预览

这是在windows 2000 Advanced Server+IE6下打开知乎的截图,完美渲染

可以看见有两层地址栏,IE自己的地址栏是服务端的地址,网页中的地址栏是真实地址

当然在win11+EDGE下也可以跑

win11+edge使用browservice打开百度,毫无压力,但是暂时还不太确定这么做有什么意义??

官网说可以看YouTube视频,但是国内视频平台似乎不行

听歌也没声音,但是能看见播放进度条前进和歌词滚动的动效,非常丝滑

http://bd.kuwo.cn/mpage/pcbaiduhz/phoneDown.html?version=ar759 (二维码自动识别)

browservice是在服务器端用现代浏览器把网页渲染好,然后以图片形式发给客户端,让古董浏览器也可以解析,所以总是能够看见正在下载图片

一长串网址后面的几个数字鼠标移动时会变,猜测是坐标,用来检测鼠标点击返回给服务端

既然是图片,当然可以通过调低质量来节约带宽和旧客户端那本来就可怜的CPU

图片质量调到最低(数值范围10-100,最高为PNG),全糊版知乎

这次是用win2000+火狐狸12.0(win2000支持的最后版本)+browservice访问淘宝,也可以正常打开

但是CPU占用有点高(只给虚拟机分配了1个vCPU)

Win2000逛淘宝也还行,就是动态内容太多,翻译成图片了打开也吃力了





1. Browservice 是什么?

Browservice 不能把 HTML/CSS 变成老浏览器能懂的东西。它干的事更“粗暴”:

  • 服务端跑一个现代 Chromium(通过 CEF),把网页渲染成图像(PNG/JPEG)
  • 客户端用一个极老的浏览器(IE4/IE5/IE6/IE8,老 Firefox/Chrome 都行)打开一个网页应用
  • 客户端每隔一段时间拉取最新图像,并把鼠标键盘事件回传给服务端
  • 于是你在 IE6 上“像远程桌面一样”操作现代网页,但本质是浏览器画面流 + 事件回传

好处:旧机不需要跑现代 JS,也不需要支持现代 TLS(甚至可以完全不接公网)。


2. 为什么这比“装轻量 Linux”更有效?

因为轻量系统解决的是“系统开销”,解决不了现代网页的计算量

现代网页的重负担主要来自浏览器层:

  • JS 执行
  • DOM/布局/重绘
  • 字体渲染、图片解码、视频解码
  • 复杂的网络安全栈

把旧机的系统换成再轻,也只是让浏览器“死得慢一点”。而 Browservice 是直接把最重的部分(浏览器渲染 + JS)搬到服务器上,让旧机只做“显示器 + 键鼠”。


3. 我的目标:内网折腾,新版Windows 当服务端,旧 Windows 当客户端

我这次选择的是:

  • 服务端:Windows(10/11 或 Windows Server 都行),官方也支持Linux做服务端
  • 客户端:旧 Windows(XP/7 甚至更老)
  • 场景:内网、复古折腾、老机不出网

Browservice 官方也强调:服务端/客户端之间连接默认不加密,必须在可信网络里用,或者自己用反代/隧道做安全封装。(github.com)

下载browservice的windows 64位安装包,目前最新版是0.9.12.2,可以看见项目作者3周前还做了更新

github.com/ttalvitie/br


4. 最小化部署:把所有内容都放在 D:\browservice

假设你已经把 browservice.exe 放在 D:\browservice

4.1 启动脚本(最小可用)

创建:D:\browservice\run\start_browservice.cmd

@echo off
setlocal EnableExtensions

set "BS_HOME=D:\browservice"
set "BS_DATA=%BS_HOME%\data\cefdata"
set "BS_TMP=%BS_HOME%\tmp"

set "BS_LISTEN=0.0.0.0:8080"

if not exist "%BS_DATA%" mkdir "%BS_DATA%"
if not exist "%BS_TMP%"  mkdir "%BS_TMP%"

set "TEMP=%BS_TMP%"
set "TMP=%BS_TMP%"

cd /d "%BS_HOME%"

browservice.exe --vice-opt-http-listen-addr=%BS_LISTEN% --data-dir="%BS_DATA%"
endlocal

两个关键参数:

  • --vice-opt-http-listen-addr=0.0.0.0:8080:允许内网其它机器访问(默认只监听 127.0.0.1)
  • --data-dir=...:把 cookies/cache/会话数据放到你指定目录(否则默认类似隐身模式,停了就丢)

启动后,客户端用旧浏览器访问:

http://<服务端内网IP>:8080/

5. 第一个坑:Windows 沙箱报错 Access denied(0x5)

日志里最扎眼的一条是:

Sandbox cannot access executable D:\browservice\browservice.exe
Access is denied (0x5)

这不是 Browservice 本身的问题,而是 Chromium/CEF 的 Windows 沙箱(AppContainer)对可执行文件访问检查失败。Chromium 侧对应代码会做权限检查,失败就报这个错。(chromium.googlesource.com)

解决办法:给 D:\browservice 目录补上 AppContainer 相关的读/执行权限。

创建fix_acl.cmd

@echo off
setlocal EnableExtensions

set "BS_HOME=D:\browservice"

rem  S-1-15-2-1 = ALL APPLICATION PACKAGES
rem  S-1-15-2-2 = ALL RESTRICTED APPLICATION PACKAGES
icacls "%BS_HOME%" /grant *S-1-15-2-1:(RX) *S-1-15-2-2:(RX) /T >nul 2>&1

if errorlevel 1 (
  echo [WARN] ACL 授权失败,建议以管理员身份运行本脚本。
) else (
  echo [OK] ACL updated for AppContainer sandbox.
)

endlocal

以管理员运行一次后,沙箱错误就消失了。


6. 第二个坑:防火墙阻止内网访问(最小“打洞”)

服务端监听 0.0.0.0:8080 只是第一步,Windows 防火墙默认会挡入站。

我自己定的安全边界是:

  • 只放行 browservice.exe
  • 只放行 TCP/8080
  • 只允许这几个网段访问:
    • 192.168.0.x ~ 192.168.3.x(我自己的内网地址)

PowerShell 命令(管理员)

New-NetFirewallRule `
  -DisplayName "Browservice Inbound TCP 8080 (LAN only)" `
  -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8080 `
  -RemoteAddress "192.168.0.0/22" `
  -Program "D:\browservice\browservice.exe" `
  -Profile Domain,Private
  • 192.168.0.0/22 覆盖 192.168.0.0 ~ 192.168.3.255
  • 绑定到具体程序(D:\browservice\browservice.exe)更安全

7. 最后的感受:这才是“旧电脑发挥余热”的正确打开方式

折腾轻量 Linux 没错,但它解决的是“系统轻”,不是“网页重”。

如果你的目标是:
让一台古董机能访问现代网页、还能保持复古操作手感(IE6、老 Firefox 的 UI),那 Browservice 这种“渲染上移、客户端只显示”的思路,反而是非常工程化、非常有效的解法。

它不是让古董机变强,而是让古董机承认自己只是终端。

编辑于 2026-02-28 · 著作权归作者所有