Skip to content

集成通用代理工具(sing-box)在Qubes OS | mirror of https://git.sr.ht/~qubes/proxy

License

Notifications You must be signed in to change notification settings

hexstore/qubes-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qubes Proxy

这是一个在Qubes OS中安装代理网络工具(sing-box)的方案,旨在帮助Qubes OS用户在严重网络审查环境下突破封锁,让Qubes OS拥有连接Tor网络的能力。

该项目主仓库在sourcehut上,并镜像在GitHub

工作原理

它基于Qubes OS的隔离机制,提供一个网络服务盒子,巧妙的利用了Qubes OS的全局DNS IP(10.139.1.1和10.139.1.2)作为tun设备的IP,并让流量经过它,为其它应用或服务盒子提供代理网络。

使用场景

它可以工作在这些场景下,也许您有自己的方案!

  • sys-net <- sys-firewall <- sys-proxy <- AppVM(s)
  • sys-net <- sys-proxy <- sys-firewall <- AppVM(s)

前提条件

  • Qubes OS
  • 代理服务帐号

安装

这里创建一个代理盒子,它被命名为sys-proxy,然后从GitHub下载sing-box的二进制文件。

[user@dom0 ~]$ qvm-create sys-proxy --class AppVM --label blue
[user@dom0 ~]$ qvm-prefs sys-proxy provides_network true
[user@dom0 ~]$ qvm-prefs sys-proxy autostart true
[user@dom0 ~]$ qvm-prefs sys-proxy memory 500
[user@dom0 ~]$ qvm-prefs sys-proxy maxmem 500

接下来将安装sing-box到/rw/usrlocal/bin目录,配置文件sing-box.json被安装到/rw/bind-dirs/etc/sing-box目录, 守护运行配置文件sing-box.service被安装到/rw/bind-dirs/etc/systemd/system目录。

完成安装之后,您需要更改/rw/bind-dirs/etc/sing-box.json中的outbounds为自己的代理服务, 更多配置信息请参照sing-box configuration

[user@dom0 ~]$ qvm-start sys-proxy
[user@dom0 ~]$ qrexec-client -W -d sys-proxy user:'sh <(curl --proto "=https" -tlsv1.2 -SfL https://git.sr.ht/~qubes/proxy/blob/main/install.sh)'

来到这一步,将要重启sys-proxy盒子。

[user@dom0 ~]$ qvm-shutdown --wait sys-proxy
[user@dom0 ~]$ qvm-start sys-proxy

确认sys-proxy盒子确认代理服务的运行状态。

[user@dom0 ~]$ qrexec-client -W -d sys-proxy root:'journalctl -ft sing-box'

最后,将应用或服务盒子的netvm配置为sys-proxy,以下示例将sys-whonix的网络配置为sys-proxy,即sys-proxy作为sys-whonix前置代理。

[user@dom0 ~]$ qvm-prefs sys-whonix netvm sys-proxy

贡献

您在使用这个项目的过程中发现任何问题或疑问,可以随时创建ticket,我们将会尽快解答。另外,您有任何改进方案,欢迎提交一个patch

相关