outbound/naive attempts IPv6 UDP connection to [2001:4860:4860::8888]:443 despite strategy: ipv4_only
### Operating system
iOS
### System version
26.4.2
### Installation type
sing-box for iOS Graphical Client
### If you are using a graphical client, please provide the version of the client.
1.14.0-alpha.18
### Version
```shell
```
### Description
The `naive` outbound spontaneously attempts a UDP connection to `[2001:4860:4860::8888]:443` (Google IPv6 DNS address), even though:
- Global `dns.strategy` is set to `ipv4_only`
- All `AAAA` queries are rejected via DNS rules
- `domain_resolver` is explicitly set on the naive outbound
- No IPv6 route exists on the device
This is not traffic routed into the naive outbound from inbound — it appears to be internal behavior of the naive outbound itself, triggered during or after establishing an outbound TCP connection.
Switching the default outbound from `naive` to `anytls` eliminates the error entirely, confirming this is specific to the naive outbound implementation.
## Relevant Configuration
{
"dns": {
"strategy": "ipv4_only",
"servers": [
{
"tag": "hosts_fix",
"type": "hosts",
"predefined": {
"dns.alidns.com": ["223.5.5.5", "223.6.6.6"],
"cloudflare-dns.com": ["1.1.1.1", "1.0.0.1"]
}
},
{
"type": "https",
"tag": "alidns",
"server": "dns.alidns.com",
"domain_resolver": "hosts_fix",
"detour": "DIRECT",
"path": "/dns-query"
},
{
"type": "fakeip",
"tag": "fakeip",
"inet4_range": "198.18.0.0/15"
}
],
"rules": [
{
"query_type": ["AAAA", "SVCB", "HTTPS", "PTR"],
"action": "reject"
}
]
},
"outbounds": [
{
"type": "naive",
"tag": "Naive",
"server": "example.com",
"server_port": 443,
"username": "user",
"password": "pass",
"domain_resolver": "alidns",
"udp_over_tcp": {
"enabled": true,
"version": 2
},
"quic": false,
"tls": {
"enabled": true,
"server_name": "example.com"
}
}
]
}
### Reproduction
1. Set dns.strategy to ipv4_only
2. Add a DNS rule to reject all AAAA queries
3. Configure a naive outbound with domain_resolver pointing to a direct DNS server
4. Enable udp_over_tcp on the naive outbound
5. Use the naive outbound as the default proxy
6. Browse normally for a few minutes
Result: ERROR outbound/naive[Naive]: open UDP connection to [2001:4860:4860::8888]:443: connect: no route to host appears repeatedly in logs.
### Logs
```shell
DEBUG outbound/naive[Naive]: open UDP connection to [2001:4860:4860::8888]:443
ERROR outbound/naive[Naive]: open UDP connection to [2001:4860:4860::8888]:443: dial en0 (24): dial udp [2001:4860:4860::8888]:443: connect: no route to host
DEBUG outbound/naive[Naive]: open TCP connection to 123.456.78.9:443
```
### Supporter
- [x] I am a [sponsor](https://github.com/sponsors/nekohasekai/)
### Integrity requirements
- [x] 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.
- [x] 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.
- [x] 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.
- [x] 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.
关闭于 2026-05-04 1 条评论