UDP listener of direct inbound is closed at startup on armv7 (kernel 4.1.52): recvmmsg: function not implemented
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 38.1k
- Forks
- 4.6k
- Avg merge
- 19d 15h
- Merged PRs (30d)
- 1
Description
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.gzon the device (kernel 4.1.52, armv7l). - Run:
sing-box run -c config.json netstat -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 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
- I am a sponsor
Integrity requirements
- 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.
- 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.
- 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.
- 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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with sing-box run -c config.json using the supplied minimal configuration on the affected armv7/Linux 4.1.52 environment, then trace UDP listener startup after the recvmmsg: function not implemented error. Confirm the change preserves TCP listening and allows the direct inbound, including the documented hijack-dns setup, to receive and respond to UDP traffic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, linux
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100