SagerNet / SagerNet/sing-box

无法找到quic流量的进程

Open
#2,558 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Go
Stars
38.2k
Forks
4.6k
Avg merge
19d 15h
Merged PRs (30d)
1

Description

操作系统

Windows

系统版本

Windows 11 专业版 24H2 26100.3037

安装类型

sing-box 原始命令行程序

如果您使用图形客户端程序,请提供该程序版本。

No response

版本
sing-box version 1.12.0-alpha.4

Environment: go1.23.5 windows/amd64
Tags: with_gvisor,with_quic,with_dhcp,with_wireguard,with_ech,with_utls,with_reality_server,with_acme,with_clash_api
Revision: cf89b24a2ca2b9550ee6bb87051821e17fcfb384
CGO: disabled
描述

可以找到tcp流量的进程,但无法找到udp流量(如:quic流量)的进程

Image

重现方式

.\sing-box.exe run -c .\config.json运行sing-box,浏览器访问https://www.twitch.tv/

点击展开配置文件
{
  "log": {
    "level": "debug"
  },
  "dns": {
    "servers": [
      {
        "type": "https",
        "tag": "dns-remote",
        "detour": "udp-proxy",
        "server": "1.1.1.1",
        "server_port": 443
      },
      {
        "type": "udp",
        "tag": "dns-direct",
        "detour": "direct",
        "server": "223.5.5.5",
        "server_port": 53
      },
      {
        "type": "fakeip",
        "tag": "dns-fake",
        "inet4_range": "198.18.0.0/15",
        "inet6_range": "fc00::/18"
      }
    ],
    "rules": [
      {
        "rule_set": "geosite-cn",
        "server": "dns-direct"
      },
      {
        "query_type": [
          "A",
          "AAAA"
        ],
        "server": "dns-fake",
        "rewrite_ttl": 1
      },
      {
        "inbound": "tun-in",
        "server": "dns-remote",
        "strategy": "ipv4_only"
      }
    ]
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "mtu": 9000,
      "address": [
        "172.18.0.1/30",
        "fdfe:dcba:9876::1/126"
      ],
      "auto_route": true,
      "strict_route": true,
      "stack": "gvisor",
      "endpoint_independent_nat": true
    }
  ],
  "outbounds": [
    {
      "type": "selector",
      "tag": "proxy",
      "outbounds": [
        "hy2-out"
      ],
      "default": "hy2-out",
      "interrupt_exist_connections": true
    },
    {
      "type": "hysteria2",
      "tag": "hy2-out",
      "server": "",
      "server_ports": "",
      "password": "",
      "tls": {
        "enabled": true,
        "server_name": "",
        "certificate": ""
      }
    },
    {
      "type": "direct",
      "tag": "direct"
    }
  ],
  "route": {
    "rules": [
      {
        "inbound": "tun-in",
        "action": "sniff"
      },
      {
        "protocol": "dns",
        "action": "hijack-dns"
      },
      {
        "process_name": "msedge.exe",
        "outbound": "proxy"
      },
      {
        "rule_set": [
          "geosite-cn",
          "geoip-cn"
        ],
        "outbound": "direct"
      }
    ],
    "rule_set": [
      {
        "type": "remote",
        "tag": "geosite-cn",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/refs/heads/sing/geo/geosite/cn.srs",
        "download_detour": "proxy",
        "update_interval": "24h0m0s"
      },
      {
        "type": "remote",
        "tag": "geoip-cn",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/refs/heads/sing/geo/geoip/cn.srs",
        "download_detour": "proxy",
        "update_interval": "24h0m0s"
      }
    ],
    "final": "proxy",
    "auto_detect_interface": true,
    "default_domain_resolver": "dns-direct"
  },
  "experimental": {
    "cache_file": {
      "enabled": true,
      "store_fakeip": true
    },
    "clash_api": {
      "external_controller": "[::1]:9090",
      "external_ui": "dashboard",
      "external_ui_download_url": "https://github.com/Zephyruso/zashboard/releases/latest/download/dist.zip",
      "external_ui_download_detour": "proxy"
    }
  }
}
日志
点击展开日志
DEBUG[0030] [1752804689 28.29s] dns: exchange www.twitch.tv. IN A
DEBUG[0030] [4073766195 28.29s] dns: exchange www.twitch.tv. IN AAAA
DEBUG[0030] [1752804689 28.29s] dns: match[3] query_type=[A AAAA] => route(dns-fake,rewrite-ttl=1)
DEBUG[0030] [4073766195 28.29s] dns: match[3] query_type=[A AAAA] => route(dns-fake,rewrite-ttl=1)
DEBUG[0030] [1752804689 28.30s] dns: match[3] => route(dns-fake,rewrite-ttl=1)
DEBUG[0030] [4073766195 28.30s] dns: match[3] => route(dns-fake,rewrite-ttl=1)
DEBUG[0030] [1752804689 28.30s] dns: exchanged www.twitch.tv NOERROR 1
DEBUG[0030] [4073766195 28.30s] dns: exchanged www.twitch.tv NOERROR 1
INFO[0030] [1752804689 28.30s] dns: exchanged A www.twitch.tv. 1 IN A 198.18.0.12
INFO[0030] [4073766195 28.30s] dns: exchanged AAAA www.twitch.tv. 1 IN AAAA fc00::c
INFO[0030] router: found process path: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
DEBUG[0030] router: found fakeip domain: www.twitch.tv.
INFO[0030] [1640848451 0ms] inbound/tun[tun-in]: inbound connection from [fdfe:dcba:9876::1]:2591
INFO[0030] [1640848451 0ms] inbound/tun[tun-in]: inbound connection to [fc00::c]:443
INFO[0030] [1640848451 0ms] router: found process path: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
DEBUG[0030] [1640848451 0ms] router: found fakeip domain: www.twitch.tv.
DEBUG[0030] [1640848451 0ms] router: match[0] inbound=tun-in => sniff
DEBUG[0030] [1640848451 1ms] router: sniffed protocol: tls, domain: www.twitch.tv
DEBUG[0030] [1640848451 1ms] router: match[2] process_name=msedge.exe => route(proxy)
INFO[0030] [1640848451 1ms] outbound/hysteria2[hy2-out]: outbound connection to www.twitch.tv.:443
DEBUG[0031] [4073766195 28.95s] dns: exchange assets.twitch.tv. IN A
DEBUG[0031] [1752804689 28.95s] dns: exchange assets.twitch.tv. IN AAAA
DEBUG[0031] [4073766195 28.95s] dns: match[3] query_type=[A AAAA] => route(dns-fake,rewrite-ttl=1)
DEBUG[0031] [1752804689 28.95s] dns: match[3] query_type=[A AAAA] => route(dns-fake,rewrite-ttl=1)
DEBUG[0031] [4073766195 28.95s] dns: match[3] => route(dns-fake,rewrite-ttl=1)
DEBUG[0031] [1752804689 28.95s] dns: match[3] => route(dns-fake,rewrite-ttl=1)
DEBUG[0031] [4073766195 28.95s] dns: exchanged assets.twitch.tv NOERROR 1
DEBUG[0031] [1752804689 28.95s] dns: exchanged assets.twitch.tv NOERROR 1
INFO[0031] [4073766195 28.95s] dns: exchanged A assets.twitch.tv. 1 IN A 198.18.0.13
INFO[0031] [1752804689 28.95s] dns: exchanged AAAA assets.twitch.tv. 1 IN AAAA fc00::d
INFO[0031] router: failed to search process: process not found for 172.18.0.1:53728
DEBUG[0031] router: found fakeip domain: assets.twitch.tv.
INFO[0031] [2422728965 0ms] inbound/tun[tun-in]: inbound packet connection from 172.18.0.1:53728
INFO[0031] [2422728965 0ms] inbound/tun[tun-in]: inbound packet connection to 198.18.0.13:443
INFO[0031] [2422728965 0ms] router: failed to search process: process not found for 172.18.0.1:53728
DEBUG[0031] [2422728965 0ms] router: found fakeip domain: assets.twitch.tv.
DEBUG[0031] [2422728965 0ms] router: match[0] inbound=tun-in => sniff
DEBUG[0031] [2422728965 0ms] router: sniffed packet protocol: quic, client: chromium
INFO[0031] [2422728965 0ms] outbound/hysteria2[hy2-out]: outbound packet connection to assets.twitch.tv.:443
支持我们
完整性要求
  • 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我保证提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
  • 我保证提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器、TUN、图形界面客户端或者其他闭源软件。
  • 我保证提供了完整的配置文件与日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by running .\sing-box.exe run -c .\config.json on Windows and compare the logged TCP and UDP/QUIC process lookups. Done means the reproducible UDP/QUIC traffic can identify its originating process rather than logging that the process was not found.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.