静看光阴荏苒
不管不顾不问不说也不念

Glance Reddit 403报错解决办法

这问题的本质是Reddit把机房(数据中心)IP给BAN了,和Glance自身没多大关系。

Glance为了解决这个问题,还特地弄出来个request-url-template的配置项,用户可以自己搭建一个HTTP代理,然后把它配置成:

request-url-template: https://your-proxy.com/{REQUEST-URL}

这样就能解决Reddit无法访问的问题,但我实际测试了一下,不太好用哈,所以我自己又想出来一个解决办法:用sing-box和warp。

其实方法类似于我之前写的这篇文章:https://lala.im/9156.html,区别在于之前这篇文章的目的是让客户端解锁,而现在我们要做的是让服务端自身能够解锁。

我首先想到的是直接用sing-box的tun接管机器的所有流量,然后出站配个warp就能解锁Reddit了。但是实际操作下来会发现,机器内的服务就无法访问了,甚至直接失联,ssh都登录不了,看样子并不能像往常一样直接使用默认路由(路由所有流量到tun)然后我就想到只路由部分流量,也就是只把Reddit相关的流量路由到tun,要怎么做呢?

之后我看了一下sing-box的文档,发现从1.10版本起多了这样一个新功能:route_address_set

然后我又通过Google找到了:https://github.com/Loyalsoldier/geoip,里面有geoip:fastly规则,并且支持sing-box的srs格式。Reddit就是用的fastly的cdn,这样一来思路不就有了!首先我们安装sing-box 1.10:

curl -L https://github.com/SagerNet/sing-box/releases/download/v1.10.0-alpha.28/sing-box_1.10.0-alpha.28_linux_amd64.deb -o sing-box_1.10.0-alpha.28_linux_amd64.deb
dpkg -i sing-box_1.10.0-alpha.28_linux_amd64.deb
rm sing-box_1.10.0-alpha.28_linux_amd64.deb

再把wgcf-cli安装一下:

apt -y update
apt -y install zstd 
mkdir wgcf-cli && cd wgcf-cli
curl -L https://github.com/ArchiveNetwork/wgcf-cli/releases/download/v0.3.6/wgcf-cli-linux-64.tar.zstd -o wgcf-cli-linux-64.tar.zstd
tar -xvf wgcf-cli-linux-64.tar.zstd

执行如下命令注册warp账户:

./wgcf-cli register

然后生成sing-box的wireguard配置文件:

./wgcf-cli generate --sing-box

编辑sing-box的配置文件:

nano /etc/sing-box/config.json

写入如下配置:

{
  "log": {
    "level": "info"
  },
  "dns": {
    "servers": [
      {
        "tag": "google",
        "address": "tls://dns.google",
        "address_resolver": "resolver",
        "strategy": "prefer_ipv4"
      },
      {
        "tag": "resolver",
        "address": "1.1.1.1",
        "strategy": "prefer_ipv4",
        "detour": "direct"
      }
    ],
    "rules": [
      {
        "outbound": "any",
        "server": "google"
      }
    ],
    "final": "google"
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "tun0",
      "address": [
        "10.0.0.1/30",
        "fc00::1/126"
      ],
      "auto_route": true,
      "strict_route": true,
      "auto_redirect": true,
      "stack": "mixed",
      "route_address_set": [
        "geoip-fastly",
        "geoip-netflix"
      ],
      "sniff": true
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    },
    {
      "type": "wireguard",
      "tag": "wireguard-out",
      "server": "engage.cloudflareclient.com",
      "server_port": 2408,
      "system_interface": true,
      "interface_name": "wg0",
      "local_address": [
        "172.16.0.2/32",
        "2606:4700:110:87c2:aed7:cd8a:df42:c35/128"
      ],
      "private_key": "hidden",
      "peer_public_key": "hidden",
      "reserved": "nhu8",
      "mtu": 1280
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "rule_set": [
          "geosite-reddit",
          "geosite-netflix"
        ],
        "outbound": "wireguard-out"
      }
    ],
    "rule_set": [
      {
        "type": "remote",
        "tag": "geosite-reddit",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-reddit.srs",
        "download_detour": "direct",
        "update_interval": "7d"
      },
      {
        "type": "remote",
        "tag": "geosite-netflix",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-netflix.srs",
        "download_detour": "direct",
        "update_interval": "7d"
      },
      {
        "type": "remote",
        "tag": "geoip-fastly",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/Loyalsoldier/geoip/release/srs/fastly.srs",
        "download_detour": "direct",
        "update_interval": "7d"
      },
      {
        "type": "remote",
        "tag": "geoip-netflix",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/Loyalsoldier/geoip/release/srs/netflix.srs",
        "download_detour": "direct",
        "update_interval": "7d"
      }
    ],
    "final": "direct",
    "auto_detect_interface": true
  }
}

启动sing-box:

systemctl enable --now sing-box

这样就完美了,机器内的服务不受影响依旧可以正常访问,SSH也能正常连接,Reddit也能解锁了,甚至我用同样的方式把奈飞也解了:

赞(1)
未经允许不得转载:荒岛 » Glance Reddit 403报错解决办法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿