Skip to content

[Bug]: Xray-core VLESS+TUN 模式下 Moonlight 串流连接失败 (RTSP handshake failed: -1) #5845

Open

Description

@codexss

完整性要求

  • 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我读完了 issue 模板中的所有注释,确保填写符合要求。
  • 我提供了完整的配置文件和日志,而不是出于自己的判断只给出截取的部分。
  • 我搜索了 issues, 没有发现已提出的类似问题。
  • 问题在 Release 最新的版本上可以成功复现

描述

在使用 Xray-core 的 TUN 模式进行组网时,Moonlight 客户端无法成功连接到 Host 端进行串流。

具体症状:Moonlight 能够发现主机,但在点击开始串流时,报错 RTSP handshake failed: Error -1。

对比测试:

在相同网络环境下,切换为 Clash Party 的 TUN 模式,串流功能完全正常。

已确认防火墙和端口转发规则已正确配置(TCP 48010, UDP 48000, UDP 48010)。

初步结论:排除防火墙、网络连通性或应用本身的问题,怀疑是 Xray-core 在处理 Moonlight 的 RTSP 握手协议或相关 UDP 流量转发时存在某种不兼容。

经过进一步测试,发现问题似乎与 VLESS 协议的具体实现 有关,而非纯粹的 TUN 问题:

  • VMESS+xhttp/ws (TUN mode): Moonlight 串流 完全正常。
  • VLESS+xhttp/ws (TUN mode): Moonlight 报错 RTSP handshake failed: Error -1。

重现方式

设备1为【局域网A】下面PC开启sunshine作为串流服务端
设备2为【局域网A】下面软路由开启Xray作为xray服务端
设备3为【外部网络B】作为xray客户端,使用tun入口指静态路由PC到xray网卡转发组网,用moonlight连接PC串流

客户端配置

Details

{
    "log": {
        "loglevel": "debug"
    },
    "inbounds": [
        {
            "protocol": "tun",
            "settings": {
                "name": "XRAY"
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "vless",
            "settings": {
                "address": "example.com",
                "port": 80,
                "id": "uuid",
                "encryption": "none"
            },
            "streamSettings": {
                "network": "xhttp",
                "xhttpSettings": {
                    "host": "example.com",
                    "path": "/path"
                }
            }
        }
    ]
}

服务端配置

Details

{
    "log": {
        "loglevel": "debug"
    },
    "inbounds": [
        {
            "tag": "VLESS",
            "port": 80,
            "protocol": "vless",
            "settings": {
                "clients": [
                    {
                        "id": "uuid"
                    }
                ],
                "decryption": "none"
            },
            "streamSettings": {
                "network": "xhttp",
                "xhttpSettings": {
                    "path": "/path"
                }
            }
        }
    ],
    "outbounds": [
        {
            "tag": "DIRECT",
            "protocol": "direct"
        }
    ]
}

客户端日志

Details

Xray 26.2.6 (Xray, Penetrates Everything.) a64ad7a (go1.26.1 windows/amd64)
A unified platform for anti-censorship.
2026/03/26 11:11:01.801838 Using default config:  D:\Xray\config.json
2026/03/26 11:11:01.809236 [Info] infra/conf/serial: Reading config: &{Name:D:\Xray\config.json Format:json}
2026/03/26 11:11:01.810839 [Debug] app/log: Logger started
2026/03/26 11:11:01.815320 Failed to find matching adapter name: 找不到元素。 (Code 0x00000490)
2026/03/26 11:11:01.898278 Using existing driver 0.14
2026/03/26 11:11:01.909281 Creating adapter
2026/03/26 11:11:01.986850 [Info] proxy/tun: XRAY created
2026/03/26 11:11:01.990506 [Info] proxy/tun: XRAY up
2026/03/26 11:11:02.002876 [Warning] core: Xray 26.2.6 started
2026/03/26 11:11:05.605534 [Info] [2121884602] proxy/tun: processing from udp:198.18.0.2:10004 to udp:255.255.255.255:10004
2026/03/26 11:11:05.605534 [Info] [2121884602] app/dispatcher: default route for udp:255.255.255.255:10004
2026/03/26 11:11:05.606064 [Debug] [2121884602] transport/internet/splithttp: XMUX: creating xmuxClient because xmuxClients is empty
2026/03/26 11:11:05.606064 [Info] [2121884602] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.605534 from udp:198.18.0.2:10004 accepted udp:255.255.255.255:10004
2026/03/26 11:11:05.606064 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.609011 [Info] [2815879389] proxy/tun: processing from udp:198.18.0.2:64938 to udp:255.255.255.255:22222
2026/03/26 11:11:05.609518 [Info] [2815879389] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.609665 [Debug] [2815879389] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 1
2026/03/26 11:11:05.609665 [Info] [2815879389] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.609665 [Info] [3058140010] proxy/tun: processing from udp:198.18.0.2:64939 to udp:255.255.255.255:22222
2026/03/26 11:11:05.609665 [Info] [3058140010] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.609665 [Debug] [3058140010] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 2
2026/03/26 11:11:05.610239 [Info] [2934262146] proxy/tun: processing from udp:198.18.0.2:64940 to udp:255.255.255.255:22222
2026/03/26 11:11:05.610239 [Info] [2934262146] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.610239 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.610239 [Info] [3959121543] proxy/tun: processing from udp:198.18.0.2:64941 to udp:255.255.255.255:22222
2026/03/26 11:11:05.610239 [Info] [3959121543] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.610239 [Info] [3058140010] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.610239 [Debug] [3959121543] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 3
2026/03/26 11:11:05.610239 [Info] [3959121543] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.609665 from udp:198.18.0.2:64938 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.610239 [Info] [692762648] proxy/tun: processing from udp:198.18.0.2:64942 to udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 from udp:198.18.0.2:64939 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 from udp:198.18.0.2:64940 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 from udp:198.18.0.2:64941 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 from udp:198.18.0.2:64942 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 from udp:198.18.0.2:64943 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 [Info] [692762648] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.610745 [Debug] [692762648] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 4
2026/03/26 11:11:05.610745 [Info] [2934262146] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.610745 [Info] [692762648] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.610745 [Info] [1542112731] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.610745 [Debug] [692762648] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.610745 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.611789 from udp:198.18.0.2:64945 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.611789 from udp:198.18.0.2:64946 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.611789 from udp:198.18.0.2:64947 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.611789 [Info] [3207079402] proxy/tun: processing from udp:198.18.0.2:64945 to udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 [Info] [3207079402] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 from udp:198.18.0.2:64948 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 from udp:198.18.0.2:64949 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 [Info] [378215206] proxy/tun: processing from udp:198.18.0.2:64946 to udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 [Info] [378215206] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 [Debug] [3207079402] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 6
2026/03/26 11:11:05.612306 from udp:198.18.0.2:64950 accepted udp:255.255.255.255:22222
2026/03/26 11:11:05.612306 [Info] [3207079402] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.612840 [Info] [378215206] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.612840 [Info] [2591938055] proxy/tun: processing from udp:198.18.0.2:64947 to udp:255.255.255.255:22222
2026/03/26 11:11:05.612840 [Info] [2591938055] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.613629 [Debug] [2591938055] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 7
2026/03/26 11:11:05.613629 [Info] [2591938055] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.613629 [Debug] [378215206] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.613629 [Debug] [3207079402] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.614134 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.614134 [Info] [119133653] proxy/tun: processing from udp:198.18.0.2:64948 to udp:255.255.255.255:22222
2026/03/26 11:11:05.614134 [Info] [119133653] app/dispatcher: default route for udp:255.255.255.255:22222
2026/03/26 11:11:05.614134 [Debug] [119133653] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 8
2026/03/26 11:11:05.614134 [Info] [119133653] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.614134 [Info] [1715837997] proxy/tun: processing from udp:198.18.0.2:64949 to udp:255.255.255.255:22222
2026/03/26 11:11:05.614134 [Debug] [49986401] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 10
2026/03/26 11:11:05.614134 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.614984 [Info] [1218362274] proxy/tun: processing from udp:198.18.0.2:64952 to udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 [Info] [1218362274] app/dispatcher: default route for udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 from udp:198.18.0.2:64952 accepted udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 from udp:198.18.0.2:64953 accepted udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 from udp:198.18.0.2:64954 accepted udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 from udp:198.18.0.2:64955 accepted udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 from udp:198.18.0.2:64956 accepted udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 from udp:198.18.0.2:64957 accepted udp:255.255.255.255:3289
2026/03/26 11:11:05.614984 [Debug] [1218362274] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 11
2026/03/26 11:11:05.615489 [Info] [4031497506] proxy/tun: processing from udp:198.18.0.2:64953 to udp:255.255.255.255:3289
2026/03/26 11:11:05.615489 [Info] [4031497506] app/dispatcher: default route for udp:255.255.255.255:3289
2026/03/26 11:11:05.615489 [Info] [1218362274] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.615489 [Info] [2584207610] proxy/tun: processing from udp:198.18.0.2:64954 to udp:255.255.255.255:3289
2026/03/26 11:11:05.615489 [Info] [2584207610] app/dispatcher: default route for udp:255.255.255.255:3289
2026/03/26 11:11:05.615489 [Debug] [4031497506] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 12
2026/03/26 11:11:05.615489 [Info] [4031497506] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.615489 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.616013 [Debug] [2584207610] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 13
2026/03/26 11:11:05.616013 [Info] [2800749558] proxy/tun: processing from udp:198.18.0.2:64955 to udp:255.255.255.255:3289
2026/03/26 11:11:05.616013 [Info] [2800749558] app/dispatcher: default route for udp:255.255.255.255:3289
2026/03/26 11:11:05.616013 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.616013 [Info] [2584207610] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:05.616013 [Info] [3639748223] proxy/tun: processing from udp:198.18.0.2:64956 to udp:255.255.255.255:3289
2026/03/26 11:11:05.616013 [Debug] [2800749558] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 14
2026/03/26 11:11:05.616013 [Info] [3639748223] app/dispatcher: default route for udp:255.255.255.255:3289
2026/03/26 11:11:05.624085 [Info] [49986401] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.624617 [Info] [378215206] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.624617 [Info] [2584207610] proxy/vless/outbound: tunneling request to udp:255.255.255.255:3289 via example:80
2026/03/26 11:11:05.624617 [Info] [119133653] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.625233 [Info] [2815879389] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.625233 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.625737 [Info] [3959121543] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.626269 [Debug] [378215206] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.626269 [Info] [958476226] proxy/vless/outbound: tunneling request to udp:255.255.255.255:3289 via example:80
2026/03/26 11:11:05.626269 [Debug] [119133653] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.626269 [Debug] [2584207610] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.626269 [Info] [2121884602] proxy/vless/outbound: tunneling request to udp:255.255.255.255:10004 via example:80
2026/03/26 11:11:05.626269 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.626934 [Info] [1715837997] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.627439 [Info] [2934262146] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.627575 [Debug] [958476226] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.627575 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.627575 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.627575 [Info] [3058140010] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.628081 [Debug] [1715837997] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628081 [Debug] [2934262146] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628081 [Info] [2591938055] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.628081 [Info] [4031497506] proxy/vless/outbound: tunneling request to udp:255.255.255.255:3289 via example:80
2026/03/26 11:11:05.628081 [Debug] [3058140010] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628081 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628614 [Info] [1218362274] proxy/vless/outbound: tunneling request to udp:255.255.255.255:3289 via example:80
2026/03/26 11:11:05.628720 [Info] [1542112731] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.628720 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628720 [Info] [3639748223] proxy/vless/outbound: tunneling request to udp:255.255.255.255:3289 via example:80
2026/03/26 11:11:05.628720 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628720 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.628720 [Debug] [3639748223] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.629226 [Info] [2800749558] proxy/vless/outbound: tunneling request to udp:255.255.255.255:3289 via example:80
2026/03/26 11:11:05.629765 [Info] [692762648] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.629765 [Debug] [2800749558] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.629765 [Info] [3207079402] proxy/vless/outbound: tunneling request to udp:255.255.255.255:22222 via example:80
2026/03/26 11:11:05.629765 [Debug] [692762648] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.630281 [Debug] [3207079402] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.655744 [Debug] [2584207610] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.655744 [Debug] [119133653] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.655744 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.655744 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.656767 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.656767 [Debug] [1715837997] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.657819 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.658533 [Debug] [958476226] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.659037 [Debug] [2934262146] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.660042 [Debug] [692762648] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.660042 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.661552 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.665266 [Debug] [2800749558] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.676441 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.687303 [Debug] [1715837997] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.687303 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.688318 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.691756 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.701810 [Debug] [378215206] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.706900 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.729551 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:05.736378 [Debug] [3639748223] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:06.158136 [Info] [4032419897] proxy/tun: processing from tcp:198.18.0.2:37023 to tcp:192.168.0.4:47989
2026/03/26 11:11:06.158136 [Info] [4032419897] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:06.158136 [Debug] [4032419897] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 17
2026/03/26 11:11:06.158136 [Info] [4032419897] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:06.158136 from tcp:198.18.0.2:37023 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:06.158136 [Debug] [4032419897] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:06.166769 [Info] [4032419897] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:06.168871 [Debug] [4032419897] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:06.184364 [Info] [2292671407] proxy/tun: processing from tcp:198.18.0.2:37026 to tcp:192.168.0.4:47984
2026/03/26 11:11:06.184364 [Info] [2292671407] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:06.184364 from tcp:198.18.0.2:37026 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:06.184364 [Debug] [2292671407] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 18
2026/03/26 11:11:06.184871 [Info] [2292671407] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:06.184871 [Debug] [2292671407] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:06.187547 [Info] [2292671407] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:06.195615 [Debug] [2292671407] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:06.226028 [Debug] [2292671407] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.609095 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.624312 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.624312 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.624312 [Debug] [2934262146] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.624820 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.624820 [Debug] [3058140010] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.624820 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625357 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625357 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625498 [Debug] [3639748223] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625498 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625498 [Debug] [119133653] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625498 [Debug] [2800749558] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.625498 [Debug] [2584207610] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.626003 [Debug] [958476226] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:08.639746 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:09.391987 [Info] [1911405660] proxy/tun: processing from tcp:198.18.0.2:60514 to tcp:192.168.0.4:47989
2026/03/26 11:11:09.391987 from tcp:198.18.0.2:60514 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:09.392491 [Info] [1911405660] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:09.392491 [Info] [1911405660] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:09.392491 [Debug] [1911405660] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:09.395148 [Info] [1911405660] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:09.403470 [Debug] [1911405660] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:09.418378 [Info] [428687442] proxy/tun: processing from tcp:198.18.0.2:60517 to tcp:192.168.0.4:47984
2026/03/26 11:11:09.418378 from tcp:198.18.0.2:60517 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:09.418378 [Info] [428687442] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:09.418378 [Info] [428687442] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:09.418378 [Debug] [428687442] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:09.422028 [Info] [428687442] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:09.429729 [Debug] [428687442] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.611903 [Debug] [3058140010] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.611903 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.611903 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.611903 [Debug] [692762648] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.612411 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.612411 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627442 [Debug] [3639748223] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627442 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627953 [Debug] [1715837997] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627953 [Debug] [2584207610] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627953 [Debug] [958476226] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627953 [Debug] [2800749558] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.627953 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.628488 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.628488 [Debug] [119133653] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.642129 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.693702 [Info] [3683717153] proxy/tun: processing from tcp:198.18.0.2:60536 to tcp:192.168.0.4:47984
2026/03/26 11:11:11.693702 [Info] [3683717153] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:11.693702 from tcp:198.18.0.2:60536 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:11.693702 [Info] [3683717153] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:11.694207 [Debug] [3683717153] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.697457 [Info] [3683717153] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:11.705034 [Debug] [3683717153] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.735399 [Debug] [3683717153] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.782743 from tcp:198.18.0.2:60540 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:11.782743 [Info] [3968939133] proxy/tun: processing from tcp:198.18.0.2:60540 to tcp:192.168.0.4:47989
2026/03/26 11:11:11.782743 [Info] [3968939133] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:11.782743 [Info] [3968939133] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:11.782743 [Debug] [3968939133] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.785904 [Info] [3968939133] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:11.808931 [Info] [839003339] proxy/tun: processing from tcp:198.18.0.2:60542 to tcp:192.168.0.4:48010
2026/03/26 11:11:11.808931 [Info] [839003339] app/dispatcher: default route for tcp:192.168.0.4:48010
2026/03/26 11:11:11.808931 [Info] [839003339] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:11.808931 [Debug] [839003339] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:11.808931 from tcp:198.18.0.2:60542 accepted tcp:192.168.0.4:48010
2026/03/26 11:11:11.812551 [Info] [839003339] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:48010 via example:80
2026/03/26 11:11:11.818976 [Debug] [839003339] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:12.522025 [Info] [486743257] proxy/tun: processing from tcp:198.18.0.2:60545 to tcp:192.168.0.4:47989
2026/03/26 11:11:12.522025 [Info] [486743257] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:12.522540 [Debug] [486743257] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 19
2026/03/26 11:11:12.522540 [Info] [486743257] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:12.522025 from tcp:198.18.0.2:60545 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:12.522540 [Debug] [486743257] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:12.526195 [Info] [486743257] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:12.533485 [Debug] [486743257] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:12.547944 from tcp:198.18.0.2:60548 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:12.547944 [Info] [3078036948] proxy/tun: processing from tcp:198.18.0.2:60548 to tcp:192.168.0.4:47984
2026/03/26 11:11:12.547944 [Info] [3078036948] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:12.547944 [Debug] [3078036948] transport/internet/splithttp: XMUX: creating xmuxClient because maxConcurrency was hit, xmuxClients = 20
2026/03/26 11:11:12.547944 [Info] [3078036948] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:12.547944 [Debug] [3078036948] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:12.551718 [Info] [3078036948] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:12.558974 [Debug] [3078036948] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:13.788561 [Debug] [3078036948] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:13.832076 [Info] [4277439040] proxy/tun: processing from tcp:198.18.0.2:60553 to tcp:192.168.0.4:48010
2026/03/26 11:11:13.832076 from tcp:198.18.0.2:60553 accepted tcp:192.168.0.4:48010
2026/03/26 11:11:13.832076 [Info] [4277439040] app/dispatcher: default route for tcp:192.168.0.4:48010
2026/03/26 11:11:13.832076 [Info] [4277439040] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:13.832076 [Debug] [4277439040] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:13.834702 from tcp:198.18.0.2:60555 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:13.834702 [Info] [2503330024] proxy/tun: processing from tcp:198.18.0.2:60555 to tcp:192.168.0.4:47984
2026/03/26 11:11:13.834702 [Info] [2503330024] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:13.835222 [Info] [2503330024] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:13.835222 [Debug] [2503330024] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:13.835222 [Info] [4277439040] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:48010 via example:80
2026/03/26 11:11:13.839986 [Info] [2503330024] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:14.615758 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [3207079402] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [692762648] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [2800749558] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [3058140010] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.616511 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617017 [Debug] [2584207610] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617017 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617017 [Debug] [1715837997] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617017 [Debug] [378215206] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617017 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617618 [Debug] [958476226] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.617618 [Debug] [119133653] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.647105 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:14.677478 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:15.837239 [Debug] [2503330024] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:15.843539 [Info] [1016066969] proxy/tun: processing from tcp:198.18.0.2:60578 to tcp:192.168.0.4:48010
2026/03/26 11:11:15.843539 from tcp:198.18.0.2:60578 accepted tcp:192.168.0.4:48010
2026/03/26 11:11:15.843539 [Info] [1016066969] app/dispatcher: default route for tcp:192.168.0.4:48010
2026/03/26 11:11:15.844087 [Info] [1016066969] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:15.844087 [Debug] [1016066969] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:15.846731 [Info] [1016066969] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:48010 via example:80
2026/03/26 11:11:15.846731 [Debug] [1016066969] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:15.867288 [Debug] [2503330024] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.610066 [Debug] [3058140010] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.610066 [Debug] [692762648] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.610066 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.610573 [Debug] [1542112731] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.610573 [Debug] [2121884602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.625576 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.625576 [Debug] [2584207610] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.625576 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.625576 [Debug] [3207079402] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.625576 [Debug] [2800749558] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.625576 [Debug] [958476226] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.626083 [Debug] [3639748223] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.626083 [Debug] [1715837997] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.626083 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.856786 [Info] [993858793] proxy/tun: processing from udp:198.18.0.2:57659 to udp:192.168.0.4:48000
2026/03/26 11:11:17.856786 from udp:198.18.0.2:57659 accepted udp:192.168.0.4:48000
2026/03/26 11:11:17.856786 from tcp:198.18.0.2:60596 accepted tcp:192.168.0.4:48010
2026/03/26 11:11:17.856786 [Info] [993858793] app/dispatcher: default route for udp:192.168.0.4:48000
2026/03/26 11:11:17.857337 [Info] [2773709730] proxy/tun: processing from tcp:198.18.0.2:60596 to tcp:192.168.0.4:48010
2026/03/26 11:11:17.857337 [Info] [2773709730] app/dispatcher: default route for tcp:192.168.0.4:48010
2026/03/26 11:11:17.857337 [Info] [2773709730] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:17.857337 [Info] [993858793] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:17.857337 [Debug] [2773709730] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.857337 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:17.860373 [Info] [2773709730] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:48010 via example:80
2026/03/26 11:11:17.860373 [Info] [993858793] proxy/vless/outbound: tunneling request to udp:192.168.0.4:48000 via example:80
2026/03/26 11:11:18.363429 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.095239 [Info] [3455034867] proxy/tun: processing from tcp:198.18.0.2:60600 to tcp:192.168.0.4:47989
2026/03/26 11:11:19.095239 [Info] [3455034867] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:19.095239 [Info] [3455034867] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:19.095239 from tcp:198.18.0.2:60600 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:19.097771 [Debug] [3455034867] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.125482 [Info] [3455034867] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:19.125991 [Debug] [3455034867] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.163179 [Info] [2187137435] proxy/tun: processing from tcp:198.18.0.2:60603 to tcp:192.168.0.4:47984
2026/03/26 11:11:19.168489 [Info] [2187137435] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:19.171566 [Info] [2187137435] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:19.181735 [Debug] [2187137435] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.190221 [Info] [2187137435] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:19.191742 [Debug] [2187137435] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.166016 from tcp:198.18.0.2:60603 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:19.208998 [Debug] [2187137435] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.245043 [Debug] [2187137435] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:19.385819 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.630435 [Debug] [2591938055] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [2934262146] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [2815879389] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [4031497506] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [119133653] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [49986401] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [1218362274] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [3639748223] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [3058140010] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Debug] [3959121543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.633925 [Info] [3652884701] proxy/tun: processing from tcp:198.18.0.2:60609 to tcp:192.168.0.4:48010
2026/03/26 11:11:20.633925 [Info] [3652884701] app/dispatcher: default route for tcp:192.168.0.4:48010
2026/03/26 11:11:20.633925 [Info] [3652884701] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:20.633925 [Debug] [3652884701] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.632924 from tcp:198.18.0.2:60609 accepted tcp:192.168.0.4:48010
2026/03/26 11:11:20.645680 [Info] [3652884701] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:48010 via example:80
2026/03/26 11:11:20.652706 [Debug] [3652884701] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:20.895019 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:22.314801 [Info] [1994551781] proxy/tun: processing from tcp:198.18.0.2:60623 to tcp:192.168.0.4:47989
2026/03/26 11:11:22.316403 [Info] [1994551781] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:22.316403 [Info] [1994551781] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:22.316403 [Debug] [1994551781] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:22.315331 from tcp:198.18.0.2:60623 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:22.333263 [Info] [1994551781] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:22.355939 [Info] [2790648165] proxy/tun: processing from tcp:198.18.0.2:60625 to tcp:192.168.0.4:47984
2026/03/26 11:11:22.356994 [Info] [2790648165] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:22.357523 [Info] [2790648165] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:22.357523 [Debug] [2790648165] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:22.357523 [Info] [2790648165] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:22.353267 from tcp:198.18.0.2:60625 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:22.361008 [Debug] [2790648165] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:22.413957 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:22.420176 [Debug] [2790648165] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:23.038920 [Info] [4260136230] proxy/tun: processing from tcp:198.18.0.2:60630 to tcp:192.168.0.4:48010
2026/03/26 11:11:23.087802 [Info] [4260136230] app/dispatcher: default route for tcp:192.168.0.4:48010
2026/03/26 11:11:23.225955 [Info] [4260136230] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:23.226955 [Debug] [4260136230] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:23.227458 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:23.047116 from tcp:198.18.0.2:60630 accepted tcp:192.168.0.4:48010
2026/03/26 11:11:23.257190 [Info] [4260136230] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:48010 via example:80
2026/03/26 11:11:23.279703 [Debug] [4260136230] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:24.324735 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:24.833381 [Debug] [993858793] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:26.202822 [Info] [4159120227] proxy/tun: processing from tcp:198.18.0.2:60639 to tcp:192.168.0.4:47989
2026/03/26 11:11:26.204945 [Info] [4159120227] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:26.209151 [Info] [4159120227] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:26.213470 from tcp:198.18.0.2:60639 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:26.213470 [Debug] [4159120227] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:26.225218 [Info] [4159120227] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:26.229037 [Debug] [4159120227] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:26.265819 [Info] [660171602] proxy/tun: processing from tcp:198.18.0.2:60642 to tcp:192.168.0.4:47984
2026/03/26 11:11:26.273168 [Info] [660171602] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:26.393041 [Info] [660171602] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:26.462556 [Debug] [660171602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:26.474736 [Info] [660171602] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:26.272158 from tcp:198.18.0.2:60642 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:26.699123 [Debug] [660171602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:26.755676 [Debug] [660171602] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:30.034914 [Info] [1638487543] proxy/tun: processing from tcp:198.18.0.2:27011 to tcp:192.168.0.4:47989
2026/03/26 11:11:30.114482 [Info] [1638487543] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:30.149283 [Info] [1638487543] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:30.164703 [Debug] [1638487543] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:30.076422 from tcp:198.18.0.2:27011 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:30.343204 [Info] [1638487543] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:30.383020 [Info] [1524265670] proxy/tun: processing from tcp:198.18.0.2:27013 to tcp:192.168.0.4:47984
2026/03/26 11:11:30.392744 [Info] [1524265670] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:30.406084 [Info] [1524265670] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:30.409118 [Debug] [1524265670] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:30.409748 [Info] [1524265670] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:30.409748 [Debug] [1524265670] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:30.384611 from tcp:198.18.0.2:27013 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:30.426679 [Debug] [1524265670] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:30.454859 [Debug] [1524265670] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:33.756525 [Info] [2015220080] proxy/tun: processing from tcp:198.18.0.2:27019 to tcp:192.168.0.4:47989
2026/03/26 11:11:33.759803 [Info] [2015220080] app/dispatcher: default route for tcp:192.168.0.4:47989
2026/03/26 11:11:33.760876 [Info] [2015220080] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:33.764052 [Debug] [2015220080] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:33.767770 [Info] [2015220080] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47989 via example:80
2026/03/26 11:11:33.756525 from tcp:198.18.0.2:27019 accepted tcp:192.168.0.4:47989
2026/03/26 11:11:33.839246 [Info] [3548541836] proxy/tun: processing from tcp:198.18.0.2:27021 to tcp:192.168.0.4:47984
2026/03/26 11:11:33.840830 [Info] [3548541836] app/dispatcher: default route for tcp:192.168.0.4:47984
2026/03/26 11:11:33.841893 [Info] [3548541836] transport/internet/splithttp: XHTTP is dialing to tcp:example:80, mode packet-up, HTTP version 1.1, host example
2026/03/26 11:11:33.844014 [Debug] [3548541836] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:33.839246 from tcp:198.18.0.2:27021 accepted tcp:192.168.0.4:47984
2026/03/26 11:11:33.847737 [Info] [3548541836] proxy/vless/outbound: tunneling request to tcp:192.168.0.4:47984 via example:80
2026/03/26 11:11:33.878623 [Debug] [3548541836] transport/internet: dialing to tcp:example:80
2026/03/26 11:11:33.913811 [Debug] app/log: Logger closing

服务端日志

略,皆为放行direct日志

Activity

  1. codexss commented on Mar 26, 2026

    @codexss
    Author
  2. changed the title [-][Bug]: Xray-core TUN 模式下 Moonlight 串流连接失败 (RTSP handshake failed: -1)[/-] on Mar 26, 2026
  3. RPRX commented on Mar 26, 2026

    @RPRX
    Member

    VLESS 无 flow 时和 VMess 的 UDP 策略是一样的:53、443 走 connect,其它端口走 XUDP,不是这里的问题

  4. codexss commented on Mar 26, 2026

    @codexss
    Author

    我找Gemini分析了一下,给VLESS添加了mux配置之后就可以正常串流画面了,完整客户端出站配置如下

    
    {
        "log": {
            "loglevel": "warn"
        },
        "inbounds": [
            {
                "protocol": "tun",
                "settings": {
                    "name": "XRAY"
                }
            }
        ],
        "outbounds": [
            {
                "protocol": "vless",
                "settings": {
                    "address": "example.com",
                    "port": 1234,
                    "id": "uuid",
                    "encryption": "none"
                },
                "mux": {
                    "enabled": true
                }
            }
        ]
    }
    
    

    以下是截取的Gemini分析过程

    根本原因:UDP 状态与 Mux (多路复用)
    在 vmess/error.log 中出现了 common/mux: received request 的记录 ,这说明 VMess 在处理 Moonlight 的高频小包(如握手指令)时,通过 Mux 或其内置的缓存机制提供了一定的容错。

    而 VLESS 在不开启 TLS 的情况下,对于 TUN 拦截到的 UDP 流量(255.255.255.255 等广播包或 Moonlight 的探测包)处理非常生硬 。如果 UDP 包在传输中因为 VLESS 缺乏流控而乱序,RTSP 握手就会立即失败。

    要解决 VLESS 无法串流的问题,建议进行以下调整:

    建议:开启 Mux 并确保流控(针对 Moonlight 优化)
    Moonlight 对延迟和包序极度敏感。虽然 VLESS 追求轻量,但在代理复杂协议时,建议在客户端 outbound 开启 mux。

  5. gumiruo commented on Mar 26, 2026

    @gumiruo

    @codexss xhttp什么时候可以不enc搭配vision了?xhttp什么时候不用xmux用mux cool了?

  6. RPRX commented on Mar 27, 2026

    @RPRX
    Member

    @Fangliding 话说 VLESS/VMess 处理 UDP 部分的逻辑不是一样的吗

  7. Fangliding commented on Mar 27, 2026

    @Fangliding
    Member

    这整个xudp逻辑不都是你们写的吗 是在我来之前的事了

  8. codexss commented on Mar 27, 2026

    @codexss
    Author

    今天又尝试了各种协议的搭配,uot+tun的方案不知道为什么我这里moonlight串流的效果还是不太理想,画面冻结、rtsp握手失败,我不确定是不是运营商那边的限制还是什么问题,最终还是用原生wireguard搭配tunnel任意门+finalmask实现流量伪装组网,而且效果很好……
    对了,我也尝试了xray的内置wireguard协议,moonlight也是无法串流画面。(
    如果有需要我可以提供tcpdump抓包文件(

  9. RPRX commented on Mar 29, 2026

    @RPRX
    Member

    又看了下 VLESS 和 VMess 的代码确实是 #5845 (comment) ,你启用 VLESS Encryption 试试

  10. codexss commented on Mar 29, 2026

    @codexss
    Author

    我这边做过测试,客户端侧用xray内核内置的tun+wireguard,服务端xray的内置wireguard服务端,也会报串流失败,感觉已经不只是vless的uot的问题了。

  11. RPRX commented on Mar 29, 2026

    @RPRX
    Member

    你有试过开 VLESS Encryption 吗,因为 VMess 是自带加密的,该不会是运营商把你明文 VLESS 给解析了吧

    WireGuard 的 UDP 正在重构,没有参考价值

  12. reopened this on Mar 29, 2026
  13. codexss commented on Mar 29, 2026

    @codexss
    Author

    版本v26.3.27 复测为以下结果(没有任何其他额外配置)

    VLESS+ENC:rtsp 握手失败❌
    VLESS+ENC+FLOW:rtsp 握手失败❌
    VLESS+ENC+MUX:正常串流✅️
    VMESS裸奔:正常串流✅️

  14. RPRX commented on Mar 30, 2026

    @RPRX
    Member

    这就很奇怪了,因为加了 flow 后所有 UDP 都是走 XUDP 的,按理来说和开了 Mux 没有差别才对,难道说 xudp.go 的代码有问题

    但也不应该啊,如果 xudp.go 的代码有问题,那 VMess 为啥正常,确实挺奇怪的

  15. 7 remaining items

  16. codexss commented on Apr 5, 2026

    @codexss
    Author

    测试了一下这个构建版本 https://github.com/XTLS/Xray-core/actions/runs/24002022425 问题跟之前的一样,也是用vmess就可以进行串流,vless不可以,wg的情况跟上面也一样。

  17. RPRX commented on Apr 6, 2026

    @RPRX
    Member

    如果 VMess 可以、VLESS 不行的话可能真的是 DispatchLink() 的问题了 #5143 @yuhan6665

    还要再研究下

  18. reopened this on Apr 6, 2026
  19. LjhAUMEM commented on Apr 6, 2026

    @LjhAUMEM
    Collaborator

    要不把 vmess 改成 DispatchLink 让他测下

  20. Smoovsky commented on Apr 29, 2026

    @Smoovsky

    又试了另一个配置,加入了服务器C。

    路由器B和服务器C通过TCP+VLESS(有ENC,无MUX),并且通过VLESS Reverse把局域网B反代给了其他连接到服务器C的客户端。
    其他客户端也通过TCP+VLESS(有ENC,无MUX)连接到服务器C,均可使用moonlight串流控制电脑B。

    也就是说在反代的情况下(legacy/vless),OP的问题是没有的(无论是xhttp+vless还是tcp+vless,有无ENC,有无MUX均不影响)。OP遇到的问题只会存在于正向代理的时候。

    ==================================================

    遇到一样的问题,使我原地旋转。

    我这边这样子用是没问题的:

    局域网A

    • 路由器A(作为客户端)
    • 电脑A

    局域网B

    • 路由器B(有公网IP,作为服务端,通过tproxy透明代理作为电脑B的网关)
    • 电脑B

    路由器A通过XHTTP+VLESS(无ENC)连接到路由器B,并且通过legacy reverse(reverse/bridge/portal)将局域网A暴露给局域网B,此时电脑B可以使用moonlight串流正确显示电脑A的画面。这套我已经使用很久了。

    但是如���我从外部网络使用xray-tun(v2raynG,android)/singbox(v2rayN,PC)通过XHTTP+VLESS(无ENC)连到路由器B,并且试图用moonlight串流显示器电脑B的画面,就会报RTSP handshake failed。这个问题就和OP一样。

    我也测试了TUN+VLESS(有ENC)+MUX,可以正常串流(windows/android都正常)。关掉MUX马上报错。

  21. LjhAUMEM commented on Jun 29, 2026

    @LjhAUMEM
    Collaborator

    @codexss @Smoovsky 有空测下 26.6.27 的 hy2, wireguard 吗,与之前测试相比
    hy2 修复了一个 udp frag bug 在 #6041
    wg 重构了一次在 #6287

  22. LjhAUMEM commented on Jun 29, 2026

    @LjhAUMEM
    Collaborator

    怎么还有个 Bray-Core 的 link,这个修改真的有效?

    Image
  23. Lopolin-LP commented on Aug 25, 2026

    @Lopolin-LP

    I've stumbled upon this issue myself now and did a "few" tests myself. I know two projects which use Moonlight: Sunshine and Wolf.

    Here's the results. All devices are Linux and are on the same local network. The client connecting with Moonlight to Sunshine/Wolf is running Xray-core in TUN mode.

    VPN Mode VPN Protocol Other Details Sunshine Wolf
    Off - - ✅ ✅
    On VMess (without anything) - ✅ ❌ (Black screen, Wolf cannot decode packets sent, timeout after 10 seconds)
    On VLESS+XHTTP+REALITY - ❌?* (RTSP Error) ❌ (RTSP Error)
    On VMess (without anything) Client and PC are connected via Netbird ✅ ✅
    On Freedom TUN → Xray-core → Freedom ✅ ❌ (RTSP error)

    * (not yet FULLY tested on my machine™)

    About the "Black screen" issue: I see in my logs that Wolf spams "EVP_DecryptFinal_ex failed". Thrown in this file.

    For wolf specifically I have seen that, whenever there was an RTSP Error, it warned "[RTSP] received packet from unrecognised client: 10.10.10.88"

    The results align with what has been found before. Except the "directly to freedom" test, it's odd it works fine for Sunshine but not for Wolf. It seems to me that Wolf is more strict/fragile in regards to everything.


    Edit: I have not tested this at all but for some reason a connection via VLESS works to Wolf with the same setup as above, with the client being a Windows 10 machine. On that machine in Moonlight, the fields "Remote Address" and "IPv6 Address" are both NULL though (IPv6 because those weren't routed, but Remote Address being unset is interesting).

  24. Smallthing commented on Oct 2, 2026

    @Smallthing

    作为其他vpn可以正常工作而xray不能正常工作 感觉还是需要一个修复方案。

  25. Lopolin-LP commented on Oct 3, 2026

    @Lopolin-LP

    I have an update to my testing from a month ago: TUN definitely causes problems for Wolf, at least on Linux and Android. Routing the connection via Tunnel instead works better and fixes the issue with "Directly to Freedom" not working. I probably should have figured this out way longer ago with the information given here, but it's so badly scattered I did not realize it earlier.

    Anyway, I now have a setup that works properly with Moonlight to Wolf or Sunshine. Though it might be insecure, as it's now doing a VLESS-in-VLESS connection, and I am a complete novice in VPN detection evasion protocol design.

    Here's my potentially insecure setup:

    • The trick is sockopt.dialerProxy and two Outbound and Inbound VLESS configurations, and using Tunnel for Wolf instead of TUN:
      • The first VLESS configuration is the certified™, secure setup, with your REALITY, XHTTP, Flow, or whatever you throw in there.
      • The second VLESS configuration has no encryption, no transport security/method, importantly no flow, but it does have MUX enabled (as a previous commenter pointed out that it only works with MUX).
    • This configuration also needs Freedom setup to allow outbound connections to a loopback address in the 127.0.0.0/8 block. As I have Wolf and the VPN in the same Network, I also need to allow outbound to that IP of the Wolf PC.
    • More about the second VLESS config:
      • Read above again and set the configuration that way. The rest here is just specifics.
      • Client:
        • address is 127.0.0.1
        • port is any free port
        • mux.enabled = true
        • sockopt.dialerProxy = "tag-of-main-vless-config"
      • Server:
        • listen is 127.0.0.1
        • port is the free port
        • Freedom outbound allows 127.0.0.1
    • Most importantly, if you also use a Tunnel, Moonlight must say "Active Address" is the loopback address you used for the Tunnel. As it's accessible via the regular private IP in my VPN setup, it used that one instead of the Tunnel, causing problems because TUN is doing things wrong.

    If you're now confused by this wall of text, that's okay, just read the "minimal" configuration below. It outlines the important parts.

    Client and server config example

    client.jsonc

    {
        "routing": {
            "rules": [
                {
                    // Route Wolf differently
                    "ip": [
                        "192.168.0.120"
                    ],
                    "inboundTag": "tunnel-wolf",
                    "outboundTag": "proxy-wolf"
                },
                {
                    // Block Wolf on direct way due to incompatibilities
                    "ip": [
                        "192.168.0.120"
                    ],
                    "port": "47984,47989,48010,47999,48100,48200",
                    "outboundTag": "block"
                },
                {
                    // Route my home network private IPs through the proxy
                    "ip": [
                        "192.168.0.0/24"
                    ],
                    "outboundTag": "proxy"
                },
                {
                    "ip": [
                        "geoip:private"
                    ],
                    "outboundTag": "direct"
                }
                // ...
            ]
        },
        "inbounds": [
            { // Localhost Wolf
                "listen": "127.0.0.2",
                "port": "47984,47989,48010,47999,48100,48200",
                "protocol": "tunnel",
                "settings": {
                    "allowedNetwork": "tcp,udp",
                    "rewriteAddress": "192.168.0.120"
                },
                "tag": "tunnel-wolf"
            }
        ],
        "outbounds": [
            {
                "protocol": "vless",
                "settings": {
                    "address": "",
                    "port": 443,
                    "id": "", // user@example.com
                    "encryption": "none",
                    "flow": "xtls-rprx-vision"
                },
                "streamSettings": {
                    "network": "raw",
                    "security": "reality",
                    "realitySettings": {
                        // ...
                    }
                },
                "tag": "proxy"
            },
            { // Fix for Wolf
                "protocol": "vless",
                "settings": {
                    "address": "127.0.0.1",
                    "port": 1234,
                    "id": "", // user@example.com
                    "encryption": "none",
                    "flow": ""
                },
                "streamSettings": {
                    "network": "raw",
                    "security": "none",
                    "sockopt": {
                        "dialerProxy": "proxy" // This is important
                    }
                },
                "mux": {
                    "enabled": true // This too
                },
                "tag": "proxy-wolf"
            },
            ,
            {
                "protocol": "freedom",
                "tag": "direct"
            },
            {
                "protocol": "blackhole",
                "tag": "block"
            }
        ]
    }

    server.jsonc

    {
        "routing": {
            "rules": [
                {
                    // Allow specific users to access private home network
                    "ip": ["192.168.0.0/24", "127.0.0.1/32"],
                    "user": ["user@example.com"],
                    "outboundTag": "direct"
                },
                {
                    "ip": ["geoip:private"],
                    "outboundTag": "block"
                }
                // ...
            ]
        },
        "inbounds": [
            { // NOTE: NEW INBOUND
                "listen": "0.0.0.0",
                "port": 443,
                "protocol": "vless",
                "settings": {
                    "clients": [
                        {
                            "id": "",
                            "flow": "xtls-rprx-vision",
                            "email": "user@example.com"
                        }
                    ],
                    "decryption": "none"
                },
                "streamSettings": {
                    "network": "raw",
                    "security": "reality",
                    "realitySettings": {
                        // ...
                    }
                },
                "sniffing": {
                    // Not sure if sniffing can cause issues, but I excluded Private IPs from it
                    "enabled": true,
                    "routeOnly": false,
                    "ipsExcluded": ["geoip:private"],
                    "destOverride": [
                        "http",
                        "tls",
                        "quic"
                    ]
                }
            },
            {
                // Moonlight-only Inbound
                "listen": "127.0.0.1",
                "port": 1234,
                "protocol": "vless",
                "settings": {
                    "clients": [
                        // NOTE: Same clients as in the normal inbound
                        {
                            "id": "",
                            "flow": "",
                            "email": "user@example.com"
                        },
                    ],
                    "decryption": "none"
                },
                "streamSettings": {
                    "network": "raw",
                    "security": "none"
                }
            }
        ],
        "outbounds": [
            {
                "protocol": "freedom",
                "tag": "direct",
                "settings": {
                    "finalRules": [
                            {
                            "action": "allow",
                            "ip": ["192.168.0.0/24", "127.0.0.1/32"]
                        }
                    ]
                }
            },
            {
                "protocol": "blackhole",
                "tag": "block"
            }
        ]
    }

    Please keep in mind that this is still a workaround. In the future, Xray-core should be fixed up to be able to handle this without issues. But this workaround will work for those in need.

  26. RPRX commented on Oct 8, 2026

    @RPRX
    Member

    #6822 与这个问题可能关联不大,总之测一下现在的 main 吧

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions