Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于文档中对sniffing和Tor的描述问题 #3357

Closed
2 tasks done
CodingMoeButa opened this issue May 13, 2024 · 12 comments
Closed
2 tasks done

关于文档中对sniffing和Tor的描述问题 #3357

CodingMoeButa opened this issue May 13, 2024 · 12 comments

Comments

@CodingMoeButa
Copy link

CodingMoeButa commented May 13, 2024

完整性要求

  • 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我搜索了issues,没有发现已提出的类似问题。

版本

No response

描述

文档中说“当使用 Tor 浏览器……需要关闭 "sniffing" 才能正常使用。”,测试发现仅关闭“destOverride”或者开启RouteOnly即可。

重现方式

{
  "log": {
    "access": "",
    "error": "",
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "socks",
      "port": 10808,
      "listen": "0.0.0.0",
      "protocol": "socks",
      "sniffing": {
        "enabled": true,
        "routeOnly": false
      },
      "settings": {
        "auth": "noauth",
        "udp": true,
        "allowTransparent": false
      }
    },
    {
      "tag": "http",
      "port": 10809,
      "listen": "0.0.0.0",
      "protocol": "http",
      "sniffing": {
        "enabled": true,
        "routeOnly": false
      },
      "settings": {
        "auth": "noauth",
        "udp": true,
        "allowTransparent": false
      }
    },
    {
      "tag": "api",
      "port": 10813,
      "listen": "127.0.0.1",
      "protocol": "dokodemo-door",
      "settings": {
        "udp": false,
        "address": "127.0.0.1",
        "allowTransparent": false
      }
    }
  ],
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "example.com",
            "method": "chacha20-ietf-poly1305",
            "ota": false,
            "password": "anonymous",
            "port": 10800,
            "level": 1
          }
        ]
      },
      "streamSettings": {
        "network": "tcp"
      },
      "mux": {
        "enabled": false,
        "concurrency": -1
      }
    },
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "block",
      "protocol": "blackhole",
      "settings": {
        "response": {
          "type": "http"
        }
      }
    }
  ],
  "stats": {},
  "api": {
    "tag": "api",
    "services": [
      "StatsService"
    ]
  },
  "policy": {
    "system": {
      "statsOutboundUplink": true,
      "statsOutboundDownlink": true
    }
  },
  "dns": {
    "hosts": {
      "dns.google": "8.8.8.8",
      "proxy.example.com": "127.0.0.1"
    },
    "servers": [
      {
        "address": "223.5.5.5",
        "domains": [
          "geosite:cn",
          "geosite:geolocation-cn"
        ],
        "expectIPs": [
          "geoip:cn"
        ]
      },
      "1.1.1.1",
      "8.8.8.8",
      "https://dns.google/dns-query"
    ]
  },
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "domainMatcher": "mph",
    "rules": [
      {
        "type": "field",
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api"
      },
      {
        "type": "field",
        "port": "0-65535",
        "outboundTag": "proxy"
      }
    ]
  }
}

日志

No response

@chise0713
Copy link
Contributor

问题是不打开相应的 destOverride,这个协议也不会被嗅探。

@Fangliding
Copy link
Member

Fangliding commented May 13, 2024

抱歉是我review看走眼了 回去就改(
只看这句话就行了 这是我写的

Xray只会嗅探 destOverride 中协议的域名用作路由,如果只想进行嗅探用作路由而不想重置目标地址,请在这里添加对应的协议并启用 routeOnly 。

@CodingMoeButa
Copy link
Author

问题是不打开相应的 destOverride,这个协议也不会被嗅探。

你没理解我说的问题。我没说Sniffing会嗅探Tor。这个问题的原因是Tor的TLS的SNI是假的,开启destOverride的情况下Xray会重写目标地址,导致Tor无法使用,关闭“destOverride”或者开启RouteOnly就行了。

@chise0713
Copy link
Contributor

问题是不打开相应的 destOverride,这个协议也不会被嗅探。

你没理解我说的问题。我没说Sniffing会嗅探Tor。这个问题的原因是Tor的TLS的SNI是假的,开启destOverride的情况下Xray会重写目标地址,导致Tor无法使用,关闭“destOverride”或者开启RouteOnly就行了。

我的意思是 sniffing 的 destOverride 选项决定了会被嗅探到的协议,如 http / tls / quic,如果不填相当于没打开 sniffing。

@CodingMoeButa
Copy link
Author

CodingMoeButa commented May 13, 2024

问题是不打开相应的 destOverride,这个协议也不会被嗅探。

你没理解我说的问题。我没说Sniffing会嗅探Tor。这个问题的原因是Tor的TLS的SNI是假的,开启destOverride的情况下Xray会重写目标地址,导致Tor无法使用,关闭“destOverride”或者开启RouteOnly就行了。

我的意思是 sniffing 的 destOverride 选项决定了会被嗅探到的协议,如 http / tls / quic,如果不填相当于没打开 sniffing。

不是这样的吧。Sniffing是嗅探,destOverride是重写,关闭destOverride不会导致Sniffing的关闭,Xray文档中也没提到关闭destOverride会关闭Sniffing。而且v2ray-core和sing-box的文档也是这样的。

我不清楚Xray的源代码,如果关闭destOverride会导致Sniffing的关闭的话,建议维护一下文档。

@chise0713
Copy link
Contributor

问题是不打开相应的 destOverride,这个协议也不会被嗅探。

你没理解我说的问题。我没说Sniffing会嗅探Tor。这个问题的原因是Tor的TLS的SNI是假的,开启destOverride的情况下Xray会重写目标地址,导致Tor无法使用,关闭“destOverride”或者开启RouteOnly就行了。

我的意思是 sniffing 的 destOverride 选项决定了会被嗅探到的协议,如 http / tls / quic,如果不填相当于没打开 sniffing。

不是这样的吧。Sniffing是嗅探,destOverride是重写,关闭destOverride不会导致Sniffing的关闭,Xray文档中也没提到关闭destOverride会关闭Sniffing。而且v2ray-core和sing-box的文档也是这样的。

我不清楚Xray的源代码,如果关闭destOverride会导致Sniffing的关闭的话,建议维护一下文档。

你可以自行测试,文档也写的很清楚

Xray只会嗅探 destOverride 中协议的域名用作路由,如果只想进行嗅探用作路由而不想重置目标地址,请在这里添加对应的协议并启用 routeOnly 。

@CodingMoeButa
Copy link
Author

CodingMoeButa commented May 13, 2024

问题是不打开相应的 destOverride,这个协议也不会被嗅探。

你没理解我说的问题。我没说Sniffing会嗅探Tor。这个问题的原因是Tor的TLS的SNI是假的,开启destOverride的情况下Xray会重写目标地址,导致Tor无法使用,关闭“destOverride”或者开启RouteOnly就行了。

我的意思是 sniffing 的 destOverride 选项决定了会被嗅探到的协议,如 http / tls / quic,如果不填相当于没打开 sniffing。

不是这样的吧。Sniffing是嗅探,destOverride是重写,关闭destOverride不会导致Sniffing的关闭,Xray文档中也没提到关闭destOverride会关闭Sniffing。而且v2ray-core和sing-box的文档也是这样的。
我不清楚Xray的源代码,如果关闭destOverride会导致Sniffing的关闭的话,建议维护一下文档。

你可以自行测试,文档也写的很清楚

Xray只会嗅探 destOverride 中协议的域名用作路由,如果只想进行嗅探用作路由而不想重置目标地址,请在这里添加对应的协议并启用 routeOnly 。

那仅开启Sniffing能嗅探Bittorrent吗?destOverrode里可没有Bittorrent。

当设置了 sniffing 中的 enable 为 true, 还能嗅探出 bittorrent 类型的流量, 然后可以在路由中配置"protocol"项来设置规则处理 BT 流量, 比如服务端用来拦截 BT 流量, 或客户端固定转发 BT 流量到某个 VPS 去等.

destOverride: ["http" | "tls" | "quic" | "fakedns" | "fakedns+others" ]

@chise0713
Copy link
Contributor

@CodingMoeButa

你可以自行测试

并且,Bittorrnet 也不存在 destOverride

@CodingMoeButa
Copy link
Author

CodingMoeButa commented May 13, 2024

@CodingMoeButa

你可以自行测试

并且,Bittorrnet 也不存在 destOverride

你刚才说的 ##3357 (comment) 是“如果不填(destOverride)相当于没打开 sniffing”,这不文档也写了开启Sniffing能嗅探Bittorrent,所以关闭destOverride不会导致Sniffing的关闭,destOverride 选项也不会决定被嗅探到的协议有哪些,只是会重置这些符合协议的请求的地址。我不得不纠正你先前的说法。

@Fangliding
Copy link
Member

Fangliding commented May 13, 2024

不是 这有啥好吵的
开sniffing的情况下 core默认不会拿嗅探到的域名去路由 只有开了 destoverride才会 但是开了之后会把本来发往特定IP的连接重置成域名 所以才有了后来的routeonly选项(没错这个routeonly是后来才有的 因为历史问题才导致了一块逻辑混乱)
至于torrent 这是对应路由里的协议字段 不是domain字段 和destoverride这一块没有关系 不过一直没人用嗅探域名以外的功能 所以有的时候才会说destoverride置空(约等于)关闭sniffing

@chise0713
Copy link
Contributor

@CodingMoeButa

你可以自行测试

并且,Bittorrnet 也不存在 destOverride

你刚才说的 ##3357 (comment) 是“如果不填(destOverride)相当于没打开 sniffing”,这不文档也写了开启Sniffing能嗅探Bittorrent,所以关闭destOverride不会导致Sniffing的关闭,destOverride 选项也不会决定被嗅探到的协议有哪些。我不得不纠正你先前的说法。

朋友,别啃文咬字,我的确表达有误,我应该说:"...如果不填相当于没打开对应协议 sniffing。"

并且,我们讨论的重点是 "destOverride是否会影响 「特定协议 sniffer」 的启用",而不是 #3357 (comment) 这里的 Bittorrent。

但是,我可以回答 #3357 (comment) 中你提出的问题:仅开启 sniffing 且不填入 destOverride 并不会影响 Bittorrent 的嗅探,destOverride 的作用域只在路由和重置目标地址上。

晚安

@CodingMoeButa
Copy link
Author

CodingMoeButa commented May 13, 2024

我只是想提议文档关于Tor的措辞需要修改,没想讨论别的。

我不知道你们之间有“destoverride置空(约等于)关闭sniffing”的说法。毕竟我是项目外人员,我想了解这个软件只能优先去读文档。我刚才很疑惑为什么开发者的说法和文档语义不一致,因为我就是使用了嗅探域名以外的功能,所以才会究根问底。

这是个误会。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants