Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

TCP:// 格式的 DNS 服务器无法正常匹配路由 #1143

Closed
digglife opened this issue Jul 15, 2021 · 1 comment
Closed

TCP:// 格式的 DNS 服务器无法正常匹配路由 #1143

digglife opened this issue Jul 15, 2021 · 1 comment

Comments

@digglife
Copy link
Contributor

你正在使用哪个版本的 V2Ray?

V2Ray 4.40.1 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.16.5 linux/arm64)
A unified platform for anti-censorship.

你的使用场景是什么?

在 DNS 服务器配置中,使用 tcp://host:port 以实现 DNS Over TCP,同时通过路由转发 DNS 流量。

当值为 tcp://host:port 的形式,如 tcp://8.8.8.8:53,V2Ray 会使用 DNS over TCP 进行查询,可使用非标准端口。(4.40.0+)

你看到的异常现象是什么?

针对 tcp://8.8.8.8:53 的路由无法正常匹配生效。

比如,即便我在路由中有一条规则针对 8.8.8.8 的 流量走代理 Outbound,此路由也会被忽略。

你期待看到的正常表现是怎样的?

针对 DNS 的路由能正常匹配。

请附上你的配置

以下配置经过简化,但测试过可以重现问题。

{
    "log": {
        "loglevel": "debug"
    },
    "dns": {
        "servers": [
            "tcp://8.8.8.8:53"
        ]
    },
    "routing": {
        "domainStrategy": "IPOnDemand",
        "rules": [
            {
                "type": "field",
                "ip": [
                    "8.8.8.8"
                ],
                "outboundTag": "proxy"
            }
        ]
    },
    "inbounds": [
        {
            "listen": "0.0.0.0",
            "port": 10080,
            "protocol": "socks",
            "settings": {
                "auth": "noauth",
                "udp": false
            },
            "streamSettings": {
                "sockopt": {}
            },
            "sniffing": {
                "enabled": true,
                "destOverride": [
                    "http",
                    "tls"
                ]
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "settings": {
                "domainStrategy": "UseIP"
            },
            "streamSettings": {
                "sockopt": {
                    "mark": 255
                }
            },
            "tag": "direct"
        },
        {
            "protocol": "vmess",
            "settings": {
                "vnext": [
                    {
                        "address": "xxx.xxx.xxx.xxx",
                        "port": 8888,
                        "users": [
                            {
                                "id": "uuid",
                                "alterId": 32,
                                "security": "auto",
                                "level": 1
                            }
                        ]
                    }
                ]
            },
            "streamSettings": {
                "sockopt": {
                    "mark": 255
                }
            },
            "tag": "proxy"
        }
    ]
}

服务端配置:

本问题与服务端无关。

客户端配置:

本问题与客户端配置无关

请附上出错时软件输出的错误日志

8.8.8.8 未匹配到任何路由。

2021/07/16 04:18:04 [Info] [2378305334] proxy/socks: TCP Connect request to tcp:108.160.170.33:80
2021/07/16 04:18:04 [Info] [2378305334] app/dispatcher: sniffed domain: www.google.com
2021/07/16 04:18:04 [Debug] app/dns: domain www.google.com will use the first DNS: [TCP//8.8.8.8:53]
2021/07/16 04:18:04 [Debug] app/dns: TCP//8.8.8.8:53 querying DNS for: www.google.com.
2021/07/16 04:18:04 [Info] app/dispatcher: default route for tcp:8.8.8.8:53
@Loyalsoldier
Copy link
Contributor

Fixed by #1144

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

No branches or pull requests

2 participants