knetstat: checking socket options on Linux
published 2017-06-11
A few weeks ago I was debugging network code, and I needed to check if some sockets were bound with `SO_REUSEADDR` and/or `SO_REUSEPORT`. I researched how I could inspect that, and was surprised to find out that the Linux kernel did not expose those options to userland.
Thankfully, there is a kernel module called knetstat [1] which lets you do this very easily by adding new files into `procfs`. When I found it it only supported TCP, but I needed the information for UDP as well so I contributed the code [2] to support it.
If you write networking code on Linux or just run servers, I encourage you to check it out. It is a nice little tool that can come very handy in some situations, including when you need to check options like `SO_{RCV,SND}BUF`.
1: https://github.com/veithen/knetstat
2: https://github.com/veithen/knetstat/pull/11