+++
title = "乱七八糟:GFS项目考量笔记"
date = 2025-03-18

[taxonomies]
tags = ["乱七八糟"]
+++

前言 最近nekoray项目归档,考量新的singbox前端时发现这个项目不错,不过在Arch linux中运行有一些小问题,这里做个总结。

<!-- more -->

## 安装最新版:

安装gui-for-singbox的时候发现仓库的1.9.2版本release被作者删除,无法安装,于是：

- 在AUR仓库中下载**aur-gui-for-singbox.tar.gz**,解压进入aur-gui-for-singbox目录;
- **更改.SRCINFO文件**,使其版本号为最新;
- **使用makepkg -si构建并安装**这个包,缺少的png图片可以直接下载并放进目录;
- 如果有错误**刷新密钥环**（sudo pacman-key --refresh-keys）;

## 无法打开/无法使用TUN模式:
- 安装成功,进入``/opt/gui-for-singbox``,运行``sudo chown -R your_username:your_group /opt/gui-for-singbox``,使其可以被非root用户启动;
- 执行``sudo setcap cap_net_bind_service,cap_net_admin,cap_dac_override=+ep /opt/gui-for-singbox/your_executable``命令,并在设置-内核中点击盾牌-钥匙图标,使Tun模式可以有特权运行。

## 免密码运行TUN模式:

- 检查 polkit 服务是否正在运行
```bash
systemctl status polkit
```
- 若返回状态为除 active (running) 之外的结果,运行
```bash
sudo systemctl enable --now polkit
```
- 创建 polkit 策略
```bash
sudo vi /etc/polkit-1/rules.d/99-nopassword.rules
```
- 添加以下内容并保存退出
```bash
polkit.addRule(function (action, subject) {
  if (
    (action.id == "org.freedesktop.resolve1.set-domains" ||
      action.id == "org.freedesktop.resolve1.set-default-route" ||
      action.id == "org.freedesktop.resolve1.set-dns-servers") &&
    subject.local &&
    subject.active &&
    subject.isInGroup("wheel")
  ) {
    return polkit.Result.YES;
  }
});
```
- 将当前用户添加至 wheel 组中,注意Debian 与衍生系统需要先创建 wheel 组,然后运行：
```bash
sudo usermod -G wheel 当前用户
```
- 重新加载 polkit 使更改生效
```bash
sudo systemctl restart polkit
```

---
**Done.**