rax25kb is a multi-port AX.25 KISS bridge that provides flexible connectivity between serial KISS/Extended KISS (XKISS) TNCs and TCP networks, with support for serial-to-serial cross-connections and protocol translation.
Author: Kris Kirby, KE4AHR
Copyright: Copyright (C) 2025-2026 Kris Kirby, KE4AHR
License: GPL-3.0-or-later
- π Multi-Port Support: Up to 10,000 independent cross-connects
- π Protocol Translation: KISS β Extended KISS (XKISS) conversion
- π Serial-to-TCP: Bridge serial TNCs to network applications
- π Serial-to-Serial: Direct TNC-to-TNC connections
- π οΈ PhilFlag Correction: Fixes TASCO modem chipset bugs
- π¦ PCAP Capture: Record AX.25 frames for analysis
- π Frame Parsing: Display KISS and AX.25 information
- π Flexible Logging: Multi-level logging to console and/or file
- π₯οΈ Cross-Platform: Linux, Windows, macOS support
# Clone the repository
git clone https://github.com/ke4ahr/rax25kb.git
cd rax25kb
# Build
cargo build --release
# Install (Linux/macOS)
sudo install -m 755 target/release/rax25kb /usr/local/bin/See INSTALL.md for detailed installation instructions.
# Simple serial to TCP bridge
rax25kb -D /dev/ttyUSB0 -b 9600 -p 8001
# Windows
rax25kb -D COM3 -b 9600 -p 8001
# With configuration file
rax25kb -c /etc/rax25kb/rax25kb.cfg# Single TNC bridge
cross_connect0000.serial_port=/dev/ttyUSB0
cross_connect0000.baud_rate=9600
cross_connect0000.tcp_address=0.0.0.0
cross_connect0000.tcp_port=8001
cross_connect0000.phil_flag=yes
log_level=5
logfile=/var/log/rax25kb.logβββββββββββββββββββββββββββββββββββββββββββ
β rax25kb v1.6.5 β
β β
β βββββββββββββββ βββββββββββββββ β
β βCross-Connectβ βCross-Connectβ β
β β 0000 β β 0001 β β
β β β β β β
β β Serial β β Serial β β
β β β β β β β β
β β TCP β β Serial β β
β βββββββββββββββ βββββββββββββββ β
β β
β Logger, PCAP, Translation β
βββββββββββββββββββββββββββββββββββββββββββ
Connect a KISS TNC to the network:
[KISS TNC] ββ [rax25kb] ββ [TCP Application]
Bridge multiple TNCs:
[TNC 1] ββ [rax25kb:8001]
[TNC 2] ββ [rax25kb:8002]
[TNC 3] ββ [rax25kb:8003]
Protocol conversion:
[KISS TNC Port 0] ββ [rax25kb] ββ [XKISS TNC Port 5]
Direct TNC connections:
[TNC A] ββ [rax25kb] ββ [TNC B]
- INSTALL.md - Installation guide for all platforms
- ARCHITECTURE.md - System architecture and design
- CHANGELOG.md - Version history and changes
- TREE.md - Project file structure
- Man Pages:
man rax25kb,man rax25kb.cfg - Examples: See
doc/examples/for configuration examples
Full documentation available at: https://github.com/ke4ahr/rax25kb/
Each cross-connect is an independent bridge with its own settings:
# Bridge 0: Serial to TCP
cross_connect0000.serial_port=/dev/ttyUSB0
cross_connect0000.baud_rate=9600
cross_connect0000.tcp_address=0.0.0.0
cross_connect0000.tcp_port=8001
cross_connect0000.kiss_port=0
# Bridge 1: Serial to Serial with XKISS
cross_connect0001.serial_port=/dev/ttyUSB1
cross_connect0001.baud_rate=9600
cross_connect0001.xkiss_mode=yes
cross_connect0001.xkiss_port=5
cross_connect0001.serial_to_serial=/dev/ttyUSB0See man rax25kb.cfg or doc/examples/ for more examples.
Usage: rax25kb [OPTIONS]
Serial Port:
-D, --device <dev> Serial port device
-b, --baud-rate <rate> Baud rate (default: 9600)
-s, --stop-bits <1|2> Stop bits (default: 1)
-Q, --parity <n|e|o> Parity (default: none)
Network:
-I, --address <addr> TCP bind address
-p, --port <port> TCP port (default: 8001)
Features:
-n, --phil Enable PhilFlag correction
-k, --kiss Parse KISS frames
-d, --dump Dump frames in hex
-R, --raw-copy Raw transparent mode
Logging:
-l, --logfile <file> Log file path
-L, --log-level <0-9> Log level (default: 5)
Other:
-c <file> Configuration file
-h, --help Show help
- Debian/Ubuntu, Fedora, Arch Linux, and derivatives
- systemd service support
- Standard /dev/ttyUSB*, /dev/ttyACM* devices
- Windows 10 and later
- COM port support (COM1, COM3, etc.)
- Windows service support via NSSM
- macOS 10.15 and later
- /dev/cu.* devices
- launchd service support
- Rust: 1.70.0 or later
- Serial Port: KISS or XKISS compatible TNC
- Operating System: Linux, Windows 10+, or macOS 10.15+
# Debug build
cargo build
# Release build (optimized)
cargo build --release
# Run tests
cargo testCopyright Β© 2025-2026 Kris Kirby, KE4AHR
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Issues: https://github.com/ke4ahr/rax25kb/issues
- Documentation: https://github.com/ke4ahr/rax25kb/
- Source Code: https://github.com/ke4ahr/rax25kb/
Special thanks to:
- The amateur radio community
- TAPR (Tucson Amateur Packet Radio)
- Contributors and testers
- Direwolf: Software TNC/APRS decoder
- soundmodem: Software modem for packet radio
- LinBPQ: BBS and node software
- AGWPE: Packet engine for Windows
Current version: 1.7.3
See CHANGELOG.md for version history and changes.
73 de KE4AHR