ROAMSWITCH · UNINSTALL

卸载 RoamSwitch

RoamSwitch 在删除自身之前,会先撤销它对网络所做的全部更改。只删除应用的话,防火墙规则、网关 ARP 固定和 DNS 覆盖可能会留在系统中,导致网络一直不通。

适用版本
卸载功能包含在 Linux 版 1.10.7 及以后、Mac 版 1.10.5 及以后的版本中。更早的版本没有“卸载”项。

1. 会执行哪些操作

卸载按以下顺序进行。各步骤相互独立,即使某一步失败,其余步骤仍会执行,最后会列出所有结果。

  1. 撤销对网络所做的更改。恢复 Air-Gap 隔离、防火墙规则、VPN 与 Tailscale 终止开关、端口扫描自动封锁、网关 ARP 固定和 DNS 覆盖。在 Mac 上,RoamSwitch 停止的服务(SSH、文件共享、屏幕共享)也会重新启动。
  2. 停止并注销服务。在 Linux 上是 systemd 服务和定时器。在 Mac 上是特权辅助程序及其两个配套服务、登录项和系统扩展(链接防护)。
  3. 删除放置的诱饵文件。删除用于检测勒索软件的隐藏文件和凭据诱饵(如 ~/.aws/credentials)。只处理内容带有 RoamSwitch 标记的文件,位于同一路径的真实文件和符号链接不会被触碰。
  4. 删除安装时添加的配置。在 Linux 上是 apt 钩子、Falco 和 logrotate 的配置文件。在 Mac 上是 npm 和 pnpm 的 shell 别名(只删除这些行)。
  5. 删除程序本身。在 Linux 上通过包管理器(apt、dnf、zypper 或 pacman)删除;若是用 tarball 安装、不受包管理器管理,则直接删除文件。在 Mac 上,应用会被移到废纸篓(不是直接删除,可以取回)。

2. 在 Mac 上

在菜单栏的 RoamSwitch 图标中,选择“🧰 恢复与卸载”→“🗑 卸载 RoamSwitch…”。

确认窗口会显示网关当前的 MAC 地址和受信任的 MAC 地址。如果两者不一致,或无法确认隔离的原因已经消除,就可能正遭受攻击,因此在勾选“我已了解上述风险并继续执行”之前,“卸载”按钮无法点击。如果可以,请先切换到另一个网络(例如手机热点)再执行。

“同时删除设置、历史记录和许可证信息”默认是关闭的。保持关闭时,~/Library/Application Support/RoamSwitch(已隔离的威胁、历史记录)和许可证信息会保留,以后重新安装时可以继续使用。打开后,这些内容以及设置和特权辅助程序保存的全部数据都会被删除。

如果使用过系统扩展(链接防护),系统设置可能会要求你批准将其移除。批准后移除即完成。即使没有要求批准,删除 App 时移除也会被预约,并在下次重启 Mac 时完成。

最后应用会被移到废纸篓,RoamSwitch 随即退出。清倒废纸篓后,应用本体也就彻底删除了。结果会以列表显示,如有失败的项目还会给出原因。

3. 在 Linux 上

从桌面(托盘)操作

在托盘图标中选择“🧰 恢复与卸载”→“🗑 卸载 RoamSwitch…”。确认窗口的逻辑与 Mac 相同(存在风险时需要勾选确认,“同时删除设置、状态和历史记录”默认关闭)。点击“卸载”后会要求输入管理员密码(polkit),完成后应用退出。

从命令行操作

sudo roamswitch uninstall
sudo roamswitch uninstall --purge
sudo roamswitch uninstall --yes

加上 --purge 会同时删除设置、状态和历史记录。加上 --yes 会在没有可疑之处时省略确认提问。两者都不加时,设置和历史记录会保留。

当网关与受信任的网关不一致,或无法确认隔离的原因已经消除时,会显示警告,在输入 UNINSTALL 之前不会继续。在没有终端的环境(例如脚本)中,除非你接受风险并加上 --force,否则不会做任何更改并以退出码 2 结束。

使用包管理器

sudo apt remove roamswitch
sudo apt purge roamswitch
sudo dnf remove roamswitch
sudo zypper remove roamswitch
sudo pacman -R roamswitch

apt purge 会同时删除设置、状态和历史记录(apt remove 则保留)。使用 dnf、zypper 和 pacman 时,设置和历史记录会保留。

在删除软件包之前,会自动执行与上面相同的网络恢复、服务停止和诱饵文件删除。这条途径不会弹出确认:软件包一旦删除,就没有组件来管理网络了,因此优先避免网络一直不通。若是用 tarball 安装,roamswitch uninstall 会直接删除文件。

apt 仓库配置(/etc/apt/sources.list.d/roamswitch.list)及其签名密钥会保持原样。如果不需要,请手动删除。

4. 保留的内容与不会触碰的内容

  • ClamAV、nftables、Falco、Tailscale、WireGuard 工具等单独安装的软件不会被删除。
  • 位于诱饵文件相同路径、但没有 RoamSwitch 标记的真实文件不会被删除。
  • 设置、状态和历史记录会保留,除非在 Linux 上选择 --purge(apt 则用 apt purge),或在 Mac 上勾选确认窗口中的选项。

5. 卸载后仍无法通信时

第一步就已经撤销了所有可能中断通信的更改。如果仍然无法通信,请重新连接 Wi-Fi 或重新插拔网线,以更新 DHCP 租约。在删除 RoamSwitch 之前,也可以单独运行同样的恢复:Linux 上是 sudo roamswitch emergency-restore,Mac 上是菜单中的“🧰 恢复与卸载”→“🆘 紧急恢复网络…”。