Ubuntu 22.04 Electron SSR Troubleshoot

安装Electron SSR很简单,下载好deb文件安装就可以。

1
sudo dpkg -i electron-ssr.deb

由于Electron-SSR作者已经删除了这个项目的仓库,故目前只有Fork来的备份可用。

https://github.com/qingshuisiyuan/electron-ssr-backup

Readme这一部分只提到了libsodium等少量依赖,于是直接执行安装命令时dpkg提示有依赖问题。所以,安装所必要的依赖:

1
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module gconf2 gconf-service libappindicator1 libssl-dev libsodium-dev

实际上apt提供了自动解决依赖问题的选项:

1
sudo apt --fix-broken install

在安装需要依赖的deb包后执行即可解决依赖问题。

Electron-ssr在解决依赖问题后成功运行,可以正常显示图形界面,订阅、更新节点。但无论怎么调整Ubuntu的网络设置都无法魔法上网。查看electron-ssr的.config目录发现其后端使用的是python版本的ssr,调取错误日志发现其竟然提示没有安装Python。

怎么可能没有Python?Ubuntu肯定自带Python。经过排查发现:

  • 输入python3可以正常调用python3.10
  • 输入python会提示未知命令
  • electron-ssr默认调用的是python而不是python3

上网一查才发现,Ubuntu自22.04版本开始不再将Python加入$PATH。故手动创建symlink:

1
sudo ln -s /usr/bin/python3 /usr/bin/python

再度打开Electron SSR测试,发现可以正常魔法上网,问题解决。

Ubuntu22.04 在中国开启Electron SSR后正常访问www.google.com

别忘了将Ubuntu网络设置中的代理设置调成自动。

可以学到什么?

不带版本号调用python命令是一个坏实践,以后应当避免这种行为。