Skip to content

Enabling Hijack -> DNS Server creates duplicate dns-in inbound and fails to load config #1295

@WaiterGin

Description

@WaiterGin

Operating system

Windows

System version

10 and 11

Installation type

zip

Version

1.1.1

Description

Summary

On Windows, enabling Routing Settings -> Hijack -> DNS Server causes ThroneCore to fail to load the generated config with:

duplicate inbound tag: dns-in

It appears Throne already generates a built-in DNS inbound, and enabling DNS Server creates another inbound with the same tag dns-in, which makes sing-box reject the config.


Actual result

ThroneCore fails to start and shows:

LoadConfig return error
duplicate inbound tag: dns-in

From the error output, the generated config contains two inbounds with the same tag:

{"listen":"127.0.0.1","listen_port":5533,"tag":"dns-in","type":"direct"}
{"listen":"127.0.0.1","listen_port":53,"tag":"dns-in","type":"direct"}

So the config generator creates duplicate inbound tags.


Expected result

Enabling Hijack -> DNS Server should not generate duplicate inbound tags.

If Throne already has a built-in DNS inbound, it should either:

  • reuse the existing dns-in
  • generate a different tag for the extra DNS inbound
  • or avoid creating a second DNS inbound entirely

Additional details

Current related settings observed locally:

  • core_dns_in_port = 5533
  • direct_dns = localhost
  • remote_dns = tls://8.8.8.8

This suggests Throne already has an internal DNS inbound on port 5533, and enabling DNS Server adds another one on port 53 using the same tag dns-in.

This looks like a config generation bug rather than a user configuration error.



问题概述

在 Windows 上,启用 Routing Settings -> Hijack -> DNS Server 后,ThroneCore 无法加载生成的配置,并报错:

duplicate inbound tag: dns-in

看起来 Throne 本身已经生成了一个内置的 DNS inbound,而开启 DNS Server 后又额外生成了一个同名的 dns-in,导致 sing-box 因 tag 重复而拒绝加载配置。


实际结果

ThroneCore 启动失败,并提示:

LoadConfig return error
duplicate inbound tag: dns-in

从报错中可以看到,生成的配置里同时存在两个相同 tag 的 inbound:

{"listen":"127.0.0.1","listen_port":5533,"tag":"dns-in","type":"direct"}
{"listen":"127.0.0.1","listen_port":53,"tag":"dns-in","type":"direct"}

也就是说,配置生成器创建了两个同名的 dns-in


期望结果

启用 Hijack -> DNS Server 时,不应生成重复的 inbound tag。

如果 Throne 已经内置了一个 DNS inbound,则应当:

  • 复用已有的 dns-in
  • 或给新增的 DNS inbound 使用不同的 tag
  • 或者避免重复创建第二个 DNS inbound

补充信息

本地观察到的相关设置如下:

  • core_dns_in_port = 5533
  • direct_dns = localhost
  • remote_dns = tls://8.8.8.8

这说明 Throne 很可能本来就已经有一个内部 DNS inbound 监听在 5533,而启用 DNS Server 后,又在 53 端口新增了另一个同名 dns-in

因此这更像是配置生成逻辑的问题,而不是用户配置错误。

Reproduction

  1. Start Throne
  2. Enable TUN mode
  3. Open Routing Settings -> Hijack
  4. Keep the default/simple DNS settings
  5. Enable DNS Server
  6. Apply config / restart service

  1. 启动 Throne
  2. 启用 TUN 模式
  3. 打开 Routing Settings -> Hijack
  4. 保持默认/简易 DNS 设置
  5. 启用 DNS Server
  6. 应用配置或重启服务

Logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions