ser2net¶
Serve a serial port over TCP, so a rig's CAT port can be reached from another machine
- Version recorded: 4.6.4
- Categories:
rig-control,serial-terminals - Upstream: https://github.com/cminyard/ser2net
What it does¶
A daemon that connects TCP (or UDP, or a telnet session) on one side to a serial device on the other, configured in /etc/ser2net.yaml: one connection per port, naming the listening address and port, the device and its baud rate and framing. A program anywhere on the network that opens the TCP port is talking to the serial device.
Why you would want it¶
To reach a radio's CAT port, a TNC, a GPS or a rotator controller from a different machine: the radio stays in the shack with a small computer beside it, and the logging or digital-modes machine is elsewhere. It is the transport half of a remote station. For CAT specifically, running rigctld on the machine with the radio and pointing programs at it over the network is usually the better answer, because every hamlib program speaks it and it serialises access; ser2net is for software that wants a raw serial port, or a device hamlib does not know. It is an alternative to socat pipelines and to a USB-over-IP link.
Before it will work¶
The serial device (use its /dev/serial/by-id/ path) and its baud rate from the radio's menu, written as a connection in /etc/ser2net.yaml (man ser2net.yaml), then sudo systemctl restart ser2net. The program on the far end needs a way to open a TCP serial port: many take a host and port directly; others need a virtual serial device on the client side (socat with a pty, for example). The rig-control guide's rule applies unchanged -- exactly one program opens the radio's port, and here that program is ser2net.
How it installs¶
- apt:
ser2net
Known problems¶
Installing the package enables and starts ser2net.service, and the shipped configuration listens on loopback ports 2000, 2001, 3000 and 3001 for /dev/ttyS0 and /dev/ttyS1 (read from the Debian 13 .deb and measured in a container, 2026-09-30). The unit names no User=, so ser2net runs as root, and any account on the machine can reach those two serial ports through it without being in dialout. Inspect it with systemctl status ser2net and ss -ltnp; edit /etc/ser2net.yaml to remove the examples you do not use, or sudo systemctl disable --now ser2net until you need it; sudo apt-get purge ser2net removes the service and the file. Never listen on a public address: ser2net has no encryption, and a CAT port on the network is the transmitter's controls. Keep it on 127.0.0.1, a LAN you control or a VPN. Whether hamlib and the logging programs work well over it with a real radio is unmeasured here, as is its behaviour across a lossy link.
Keeping it current¶
- probe: apt policy
- strategy: apt_upgrade
Where to get help with the software itself¶
Corey Minyard. GitHub issues on the repository above; the manual pages ser2net(8) and ser2net.yaml(5) are the reference for the configuration.
Source: catalog/packages/ser2net.yaml