Operating system
Linux
System version
ASUS TUF-AX5400 router, ASUSWRT-Merlin firmware
Linux 4.1.52 (armv7l, 32-bit)
Installation type
Original sing-box Command Line
Version
sing-box version 1.14.0
Environment: go1.26.7 linux/arm
Tags: with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale,with_ccm,with_ocm,with_cloudflared,with_usbip,with_openvpn,with_openconnect,badlinkname,tfogo_checklinkname0
Revision: 0b8995879f29a9b98ee027bc17b75e101445b238
CGO: disabled
(unmodified official release: sing-box-1.14.0-linux-armv7.tar.gz)
Description
On this device, the UDP listener of a direct inbound is closed immediately at startup; only the TCP listener remains (verified with netstat). The same happens with the documented hijack-dns setup (direct "dns-in" inbound + route rule {"inbound":["dns-in"],"action":"hijack-dns"}).
Result: transparent DNS hijack via iptables REDIRECT (udp dport 53 -> the direct inbound) stops working for LAN clients - UDP DNS gets no response, so the whole network loses UDP DNS while TCP keeps working.
Reproduction
- Unpack
sing-box-1.14.0-linux-armv7.tar.gz on the device (kernel 4.1.52, armv7l).
- Run:
sing-box run -c config.json
netstat -lnt shows TCP :1054 LISTEN; netstat -lnu shows no UDP :1054 socket.
config.json (complete, minimal, no TUN / no remote server):
{
"log": { "level": "warn" },
"inbounds": [
{ "type": "direct", "tag": "dns-in", "listen": "::", "listen_port": 1054 }
],
"outbounds": [ { "type": "direct", "tag": "d" } ]
}
The documented hijack-dns configuration pattern (direct dns-in inbound + route rule {"inbound":["dns-in"],"action":"hijack-dns"}, dns server type local) produces the same result on port 1055.
Logs
# uname -a
Linux TUF-AX5400-0368 4.1.52 #1 SMP PREEMPT Wed Jun 10 00:57:46 UTC 2026 armv7l ASUSWRT-Merlin
# sing-box run -c config.json
ERROR[0000] inbound/direct[dns-in]: udp listener closed: raw read: recvmmsg: function not implemented
# netstat -lnt | grep 1054
tcp 0 0 :::1054 :::* LISTEN
# netstat -lnu | grep 1054
(no output)
Supporter
Integrity requirements
Operating system
Linux
System version
ASUS TUF-AX5400 router, ASUSWRT-Merlin firmware
Linux 4.1.52 (armv7l, 32-bit)
Installation type
Original sing-box Command Line
Version
Description
On this device, the UDP listener of a direct inbound is closed immediately at startup; only the TCP listener remains (verified with netstat). The same happens with the documented hijack-dns setup (direct "dns-in" inbound + route rule
{"inbound":["dns-in"],"action":"hijack-dns"}).Result: transparent DNS hijack via iptables REDIRECT (udp dport 53 -> the direct inbound) stops working for LAN clients - UDP DNS gets no response, so the whole network loses UDP DNS while TCP keeps working.
Reproduction
sing-box-1.14.0-linux-armv7.tar.gzon the device (kernel 4.1.52, armv7l).sing-box run -c config.jsonnetstat -lntshows TCP :1054 LISTEN;netstat -lnushows no UDP :1054 socket.config.json (complete, minimal, no TUN / no remote server):
{ "log": { "level": "warn" }, "inbounds": [ { "type": "direct", "tag": "dns-in", "listen": "::", "listen_port": 1054 } ], "outbounds": [ { "type": "direct", "tag": "d" } ] }The documented hijack-dns configuration pattern (direct dns-in inbound + route rule
{"inbound":["dns-in"],"action":"hijack-dns"}, dns server typelocal) produces the same result on port 1055.Logs
Supporter
Integrity requirements