SagerNet / SagerNet/sing-box

sing-box server accepts non-padded connections

Open
#1,990 0 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Operating system

Linux

System version

Debian 12

Installation type

Original sing-box Command Line

If you are using a graphical client, please provide the version of the client.

Version
sing-box version 1.9.3

Environment: go1.22.3 linux/amd64
Tags: with_gvisor,with_quic,with_dhcp,with_wireguard,with_ech,with_utls,with_reality_server,with_acme,with_clash_api
Revision: 085f60337799afc906069b540a38368968c123e4
CGO: disabled
Description

I noticed that sing-box accepts non-padded connections from XRay-based client v2rayNG, while the documentation says that it should reject any non-padded connections. If a non-padded connection comes from a sing-box based client the server rejects it as expected.

Yes, I understand that sing-box is not meant to be used with XRay-based clients, but this may potentially cause problems with some users who may try to use these clients without understanding.

Reproduction

I started sing-box with such server configuration file (multiplex and padding are enabled):

{
  "log": {
    "level": "trace",
    "output": "box.log",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "dns-remote",
        "address": "tls://1.1.1.1"
      },
      {
        "tag": "dns-block",
        "address": "rcode://success"
      }
    ],
    "rules": [
      {
        "rule_set": [
          "category-ads-all"
        ],
        "server": "dns-block"
      },
      {
        "outbound": "any",
        "server": "dns-remote"
      }
    ]
  },
  "inbounds": [
    {
      "type": "trojan",
      "tag": "trojan-ws-in",
      "listen": "::",
      "listen_port": 443,
      "sniff": true,
      "users": [
        {
          "name": "me",
          "password": "4208da8b-03c7-4303-b3f7-bc6db5fcd3d9"
        }
      ],
      "tls": {
        "enabled": true,
        "server_name": "domain.space",
        "certificate_path": "/etc/letsencrypt/live/domain.space/fullchain.pem",
        "key_path": "/etc/letsencrypt/live/domain.space/privkey.pem"
      },
      "transport": {
        "type": "ws",
        "path": "/14e2d67c-3596-4cb4-85d6-3cd7652f9813"
      },
      "multiplex": {
        "enabled": true,
        "padding": true
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    },
    {
      "type": "block",
      "tag": "block"
    },
    {
      "type": "direct",
      "tag": "IPv4",
      "domain_strategy": "ipv4_only"
    },
    {
      "type": "socks",
      "tag": "warp",
      "server": "127.0.0.1",
      "server_port": 40000
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "rule_set": [
          "category-ads-all"
        ],
        "protocol": "quic",
        "outbound": "block"
      },
      {
        "rule_set": [
          "google"
        ],
        "outbound": "IPv4"
      },
      {
        "rule_set": [
          "geoip-ru",
          "gov-ru"
        ],
        "domain_suffix": [
          ".ru",
          ".su",
          ".ru.com",
          ".ru.net",
          "rutracker.org",
          "habr.com",
          "ntc.party"
        ],
        "domain_keyword": [
          "xn--"
        ],
        "outbound": "warp"
      }
    ],
    "rule_set": [
      {
        "tag": "geoip-ru",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-ru.srs"
      },
      {
        "tag": "gov-ru",
        "type": "remote",
        "format": "binary",
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-category-gov-ru.srs"
      },
      {
        "tag": "google",
        "type": "remote",
        "format": "binary",
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-google.srs"
      },
      {
        "tag": "category-ads-all",
        "type": "remote",
        "format": "binary",
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-category-ads-all.srs"
      }
    ]
  },
  "experimental": {
    "cache_file": {
      "enabled": true,
      "path": "cache.db"
    }
  }
}

Then I tried to connect to the server with v2rayNG:

trojan://4208da8b-03c7-4303-b3f7-bc6db5fcd3d9@domain.space:443?path=%2F14e2d67c-3596-4cb4-85d6-3cd7652f9813&security=tls&alpn=h2&fp=randomized&type=ws&sni=domain.space#test

And it worked.

Logs
Here are the logs of the server while connected with v2rayNG:

+0200 2024-07-28 12:38:16 INFO router: updated default interface ens3, index 2
+0200 2024-07-28 12:38:16 INFO inbound/trojan[trojan-ws-in]: tcp server started at [::]:443
+0200 2024-07-28 12:38:16 INFO sing-box started (0.22s)
+0200 2024-07-28 12:38:33 INFO [3117826606 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:40334
+0200 2024-07-28 12:38:33 INFO [2169309485 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:32903
+0200 2024-07-28 12:38:33 INFO [3117826606 87ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to www.gstatic.com:443
+0200 2024-07-28 12:38:33 DEBUG [3117826606 87ms] router: sniffed protocol: tls, domain: www.gstatic.com
+0200 2024-07-28 12:38:33 DEBUG [3117826606 87ms] router: match[2] rule_set=google => IPv4
+0200 2024-07-28 12:38:33 INFO [3117826606 87ms] outbound/direct[IPv4]: outbound connection to www.gstatic.com:443
+0200 2024-07-28 12:38:33 DEBUG [3117826606 87ms] dns: lookup domain www.gstatic.com
+0200 2024-07-28 12:38:33 DEBUG [3117826606 87ms] dns: match[1] outbound=any => dns-remote
+0200 2024-07-28 12:38:33 INFO outbound/direct[direct]: outbound connection to 1.1.1.1:853
+0200 2024-07-28 12:38:33 INFO [2169309485 69ms] inbound/trojan[trojan-ws-in]: [me] inbound packet connection to 1.1.1.1:53
+0200 2024-07-28 12:38:33 DEBUG [2169309485 69ms] router: sniffed packet protocol: dns
+0200 2024-07-28 12:38:33 DEBUG [2169309485 69ms] router: match[0] protocol=dns => dns-out
+0200 2024-07-28 12:38:33 DEBUG dns: exchange mqtt-mini.facebook.com. IN A
+0200 2024-07-28 12:38:33 DEBUG [3117826606 140ms] dns: exchanged www.gstatic.com NOERROR 149
+0200 2024-07-28 12:38:33 DEBUG [3117826606 140ms] dns: exchanged www.gstatic.com A www.gstatic.com. 149 IN A 142.250.74.99
+0200 2024-07-28 12:38:33 DEBUG [3117826606 140ms] dns: lookup succeed for www.gstatic.com: 142.250.74.99
+0200 2024-07-28 12:38:33 DEBUG dns: exchanged mqtt-mini.facebook.com NOERROR 57
+0200 2024-07-28 12:38:33 INFO dns: exchanged mqtt-mini.facebook.com CNAME mqtt-mini.facebook.com. 57 IN CNAME mqtt-mini.c10r.facebook.com.
+0200 2024-07-28 12:38:33 INFO dns: exchanged mqtt-mini.facebook.com A mqtt-mini.c10r.facebook.com. 57 IN A 31.13.72.34
+0200 2024-07-28 12:38:33 ERROR [3117826606 349ms] inbound/trojan[trojan-ws-in]: process connection from 188.170.83.12:40334: upload: tls: protocol is shutdown
+0200 2024-07-28 12:38:34 INFO [1251131786 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:44875
+0200 2024-07-28 12:38:34 INFO [1251131786 92ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to mqtt-mini.facebook.com:443
+0200 2024-07-28 12:38:34 DEBUG [1251131786 93ms] router: sniffed protocol: tls, domain: mqtt-mini.facebook.com
+0200 2024-07-28 12:38:34 INFO [1251131786 93ms] outbound/direct[direct]: outbound connection to mqtt-mini.facebook.com:443
+0200 2024-07-28 12:38:34 INFO [3599867110 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:58338
+0200 2024-07-28 12:38:34 INFO [3599867110 78ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to www.gstatic.com:443
+0200 2024-07-28 12:38:34 DEBUG [3599867110 78ms] router: sniffed protocol: tls, domain: www.gstatic.com
+0200 2024-07-28 12:38:34 DEBUG [3599867110 78ms] router: match[2] rule_set=google => IPv4
+0200 2024-07-28 12:38:34 INFO [3599867110 78ms] outbound/direct[IPv4]: outbound connection to www.gstatic.com:443
+0200 2024-07-28 12:38:34 ERROR [3599867110 298ms] inbound/trojan[trojan-ws-in]: process connection from 188.170.83.12:58338: upload: tls: protocol is shutdown
+0200 2024-07-28 12:38:36 INFO [946664214 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:62062
+0200 2024-07-28 12:38:36 INFO [2695741017 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:21774
+0200 2024-07-28 12:38:36 INFO [175724227 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:20471
+0200 2024-07-28 12:38:36 INFO [1354859457 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:44460
+0200 2024-07-28 12:38:36 INFO [473977662 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:54694
+0200 2024-07-28 12:38:36 INFO [2542427109 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:11939
+0200 2024-07-28 12:38:36 INFO [3080258261 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:45120
+0200 2024-07-28 12:38:36 INFO [2548579595 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:36649
+0200 2024-07-28 12:38:36 INFO [2933143377 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:44650
+0200 2024-07-28 12:38:36 INFO [946664214 92ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to snaptu-z.facebook.com:443
+0200 2024-07-28 12:38:36 DEBUG [946664214 92ms] router: sniffed protocol: tls, domain: snaptu-z.facebook.com
+0200 2024-07-28 12:38:36 INFO [946664214 92ms] outbound/direct[direct]: outbound connection to snaptu-z.facebook.com:443
+0200 2024-07-28 12:38:36 DEBUG [946664214 92ms] dns: lookup domain snaptu-z.facebook.com
+0200 2024-07-28 12:38:36 DEBUG [946664214 92ms] dns: match[1] outbound=any => dns-remote
+0200 2024-07-28 12:38:36 INFO [175724227 70ms] inbound/trojan[trojan-ws-in]: [me] inbound packet connection to 1.1.1.1:53
+0200 2024-07-28 12:38:36 DEBUG [175724227 70ms] router: sniffed packet protocol: dns
+0200 2024-07-28 12:38:36 DEBUG [175724227 70ms] router: match[0] protocol=dns => dns-out
+0200 2024-07-28 12:38:36 DEBUG dns: exchange snaptu-z.facebook.com. IN A
+0200 2024-07-28 12:38:36 INFO [1354859457 73ms] inbound/trojan[trojan-ws-in]: [me] inbound packet connection to 1.1.1.1:53
+0200 2024-07-28 12:38:36 DEBUG [1354859457 73ms] router: sniffed packet protocol: dns
+0200 2024-07-28 12:38:36 DEBUG [1354859457 73ms] router: match[0] protocol=dns => dns-out
+0200 2024-07-28 12:38:36 DEBUG dns: exchange scontent-arn2-1.xx.fbcdn.net. IN A
+0200 2024-07-28 12:38:36 DEBUG dns: exchanged snaptu-z.facebook.com NOERROR 15
+0200 2024-07-28 12:38:36 INFO dns: exchanged snaptu-z.facebook.com CNAME snaptu-z.facebook.com. 15 IN CNAME fblite-mini.c10r.facebook.com.
+0200 2024-07-28 12:38:36 INFO dns: exchanged snaptu-z.facebook.com A fblite-mini.c10r.facebook.com. 15 IN A 31.13.72.38
+0200 2024-07-28 12:38:36 INFO [2695741017 78ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to snaptu-z.facebook.com:443
+0200 2024-07-28 12:38:36 DEBUG [2695741017 78ms] router: sniffed protocol: tls, domain: snaptu-z.facebook.com
+0200 2024-07-28 12:38:36 INFO [2695741017 78ms] outbound/direct[direct]: outbound connection to snaptu-z.facebook.com:443
+0200 2024-07-28 12:38:36 DEBUG dns: exchanged snaptu-z.facebook.com NOERROR 58
+0200 2024-07-28 12:38:36 INFO dns: exchanged snaptu-z.facebook.com CNAME snaptu-z.facebook.com. 58 IN CNAME fblite-mini.c10r.facebook.com.
+0200 2024-07-28 12:38:36 INFO dns: exchanged snaptu-z.facebook.com AAAA fblite-mini.c10r.facebook.com. 58 IN AAAA 2a03:2880:f10a:86:face:b00c:0:2d16
+0200 2024-07-28 12:38:36 DEBUG [946664214 103ms] dns: lookup succeed for snaptu-z.facebook.com: 31.13.72.38 2a03:2880:f10a:86:face:b00c:0:2d16
+0200 2024-07-28 12:38:36 DEBUG dns: exchanged snaptu-z.facebook.com NOERROR 15
+0200 2024-07-28 12:38:36 INFO dns: exchanged snaptu-z.facebook.com CNAME snaptu-z.facebook.com. 15 IN CNAME fblite-mini.c10r.facebook.com.
+0200 2024-07-28 12:38:36 INFO dns: exchanged snaptu-z.facebook.com A fblite-mini.c10r.facebook.com. 15 IN A 31.13.72.38
+0200 2024-07-28 12:38:36 DEBUG dns: exchanged scontent-arn2-1.xx.fbcdn.net NOERROR 3515
+0200 2024-07-28 12:38:36 INFO dns: exchanged scontent-arn2-1.xx.fbcdn.net A scontent-arn2-1.xx.fbcdn.net. 3515 IN A 31.13.72.12
+0200 2024-07-28 12:38:36 DEBUG [2695741017 95ms] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:21774: upload: read tcp 217.196.107.226:443->188.170.83.12:21774: use of closed network connection | download: raw read: connection reset by peer
+0200 2024-07-28 12:38:36 INFO [473977662 102ms] inbound/trojan[trojan-ws-in]: [me] inbound packet connection to 1.1.1.1:53
+0200 2024-07-28 12:38:36 DEBUG [473977662 102ms] router: sniffed packet protocol: dns
+0200 2024-07-28 12:38:36 DEBUG [473977662 102ms] router: match[0] protocol=dns => dns-out
+0200 2024-07-28 12:38:36 DEBUG dns: exchange graph.facebook.com. IN A
+0200 2024-07-28 12:38:36 DEBUG dns: exchanged graph.facebook.com NOERROR 60
+0200 2024-07-28 12:38:36 INFO dns: exchanged graph.facebook.com CNAME graph.facebook.com. 60 IN CNAME star.c10r.facebook.com.
+0200 2024-07-28 12:38:36 INFO dns: exchanged graph.facebook.com A star.c10r.facebook.com. 60 IN A 31.13.72.8
+0200 2024-07-28 12:38:36 INFO [2542427109 73ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to scontent-arn2-1.xx.fbcdn.net:443
+0200 2024-07-28 12:38:36 DEBUG [2542427109 73ms] router: sniffed protocol: tls, domain: scontent-arn2-1.xx.fbcdn.net
+0200 2024-07-28 12:38:36 INFO [2542427109 73ms] outbound/direct[direct]: outbound connection to scontent-arn2-1.xx.fbcdn.net:443
+0200 2024-07-28 12:38:36 INFO [2933143377 72ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:36 DEBUG [2933143377 73ms] router: sniffed protocol: tls, domain: graph.facebook.com
+0200 2024-07-28 12:38:36 INFO [2933143377 73ms] outbound/direct[direct]: outbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:36 INFO [2548579595 74ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to scontent-arn2-1.xx.fbcdn.net:443
+0200 2024-07-28 12:38:36 DEBUG [2548579595 74ms] router: sniffed protocol: tls, domain: scontent-arn2-1.xx.fbcdn.net
+0200 2024-07-28 12:38:36 INFO [2548579595 74ms] outbound/direct[direct]: outbound connection to scontent-arn2-1.xx.fbcdn.net:443
+0200 2024-07-28 12:38:36 INFO [3080258261 80ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:36 DEBUG [3080258261 80ms] router: sniffed protocol: tls, domain: graph.facebook.com
+0200 2024-07-28 12:38:36 INFO [3080258261 80ms] outbound/direct[direct]: outbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:38 INFO [2678984231 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:54356
+0200 2024-07-28 12:38:38 INFO [1226392480 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:32246
+0200 2024-07-28 12:38:38 INFO [2617920844 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:38035
+0200 2024-07-28 12:38:38 INFO [3004272174 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:48609
+0200 2024-07-28 12:38:39 INFO [2678984231 91ms] inbound/trojan[trojan-ws-in]: [me] inbound packet connection to 31.13.72.12:443
+0200 2024-07-28 12:38:39 DEBUG [2678984231 92ms] router: sniffed packet protocol: quic, domain: scontent-arn2-1.xx.fbcdn.net
+0200 2024-07-28 12:38:39 INFO [2678984231 92ms] outbound/direct[direct]: outbound packet connection
+0200 2024-07-28 12:38:39 INFO [1226392480 72ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to scontent-arn2-1.xx.fbcdn.net:443
+0200 2024-07-28 12:38:39 DEBUG [1226392480 72ms] router: sniffed protocol: tls, domain: scontent-arn2-1.xx.fbcdn.net
+0200 2024-07-28 12:38:39 INFO [1226392480 72ms] outbound/direct[direct]: outbound connection to scontent-arn2-1.xx.fbcdn.net:443
+0200 2024-07-28 12:38:39 INFO [2617920844 72ms] inbound/trojan[trojan-ws-in]: [me] inbound packet connection to 157.240.205.1:443
+0200 2024-07-28 12:38:39 DEBUG [2617920844 72ms] router: sniffed packet protocol: quic, domain: graph.facebook.com
+0200 2024-07-28 12:38:39 INFO [2617920844 72ms] outbound/direct[direct]: outbound packet connection
+0200 2024-07-28 12:38:39 INFO [3004272174 113ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:39 DEBUG [3004272174 113ms] router: sniffed protocol: tls, domain: graph.facebook.com
+0200 2024-07-28 12:38:39 INFO [3004272174 113ms] outbound/direct[direct]: outbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:39 INFO [1378166742 0ms] inbound/trojan[trojan-ws-in]: inbound connection from 188.170.83.12:34184
+0200 2024-07-28 12:38:39 INFO [1378166742 78ms] inbound/trojan[trojan-ws-in]: [me] inbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:39 DEBUG [1378166742 78ms] router: sniffed protocol: tls, domain: graph.facebook.com
+0200 2024-07-28 12:38:39 INFO [1378166742 78ms] outbound/direct[direct]: outbound connection to graph.facebook.com:443
+0200 2024-07-28 12:38:39 DEBUG [946664214 3.53s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:62062: download: raw-read tcp 217.196.107.226:49158->31.13.72.38:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:40 DEBUG [1226392480 1.19s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:32246: download: raw-read tcp 217.196.107.226:54008->31.13.72.12:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:40 DEBUG [3004272174 1.21s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:48609: download: raw-read tcp 217.196.107.226:39122->31.13.72.8:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:40 DEBUG [2933143377 4.28s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:44650: download: raw-read tcp 217.196.107.226:39096->31.13.72.8:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:40 DEBUG [2548579595 4.29s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:36649: download: raw-read tcp 217.196.107.226:54002->31.13.72.12:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:40 DEBUG [2542427109 4.30s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:11939: download: raw-read tcp 217.196.107.226:53988->31.13.72.12:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:40 DEBUG [3080258261 4.30s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:45120: download: raw-read tcp 217.196.107.226:39112->31.13.72.8:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:41 DEBUG [1378166742 2.28s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:34184: download: raw-read tcp 217.196.107.226:39136->31.13.72.8:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:41 DEBUG [1251131786 7.69s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:44875: download: raw-read tcp 217.196.107.226:41872->31.13.72.34:443: use of closed network connection | upload: ws closed: 1000
+0200 2024-07-28 12:38:43 DEBUG [2169309485 10.11s] inbound/trojan[trojan-ws-in]: connection closed: process connection from 188.170.83.12:32903: read destination: read tcp 217.196.107.226:443->188.170.83.12:32903: use of closed network connection | upstream: context canceled
Supporter
Integrity requirements
  • I confirm that I have read the documentation, understand the meaning of all the configuration items I wrote, and did not pile up seemingly useful options or default values.
  • I confirm that I have provided the server and client configuration files and process that can be reproduced locally, instead of a complicated client configuration file that has been stripped of sensitive data.
  • I confirm that I have provided the simplest configuration that can be used to reproduce the error I reported, instead of depending on remote servers, TUN, graphical interface clients, or other closed-source software.
  • I confirm that I have provided the complete configuration files and logs, rather than just providing parts I think are useful out of confidence in my own intelligence.

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

Reproduce the reported setup with the trojan inbound, WebSocket transport, and multiplex padding enabled, then compare the v2rayNG connection with a sing-box client while reviewing the trace logs. Done means the server consistently rejects the non-padded v2rayNG connection as the documentation describes, without breaking padded connections.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.