About
STUNTMAN is an open source implementation of the STUN protocol (Session Traversal Utilities for NAT) as specified in RFCs 5389,
5769, and 5780.
It also includes backwards compatibility for RFC 3489. Source code distribution includes a high performance STUN server, a client application,
and a set of code libraries for implementing a STUN client within an application.
The current C++ code base compiles using gcc/g++ for most UNIX distributions including Linux, MacOS, BSD, and Solaris. A Windows port via Cygwin is available now.
Stuntman is open source software distributed under the Apache 2.0 License.
Download
Latest stable release: version 1.2.16
Once you download and unpack the source code package, open the README file included in the root of the distribution for instructions on how to compile.
You may need to download the Boost library prior to compiling.
Public STUN server
A STUN service hosting the Stuntman code is being run at stunserver2024.stunprotocol.org (UDP and TCP ports 3478).
To make a STUN binding request and see your public IP addresses, you can click the button below for a quick test.
Mailing list
We have a mailing list for this project at stunprotocol@googlegroups.com. You may join this group or peruse previously posted messages by clicking here.
Features
- WebRTC ready
- UDP and TCP modes with either IPv4 or IPv6
- Flexible "basic" mode supports running on a server with only 1 IP. Allows for responding to port mapping (binding) requests
- Extended "full" mode - supports running on servers with two IP address to facilitate NAT behavior detection in addition to binding requests
- Stun code library and client application implement all NAT detection tests specified in RFC 5780
- Special support for running on Amazon EC2 or similar cloud hosting environment.
Related Software and Protocols
STUN by itself does not solve the NAT Traversal problem for P2P connectivity issues. There are many other technologies to explore when implementing a P2P connectivity solution in software.
- ICE - Interactive Connectivity Establishment. A protocol for establishing direct connectivity once STUN or TURN address candidates are obtained.
- TURN - Traversal Using Relays around NAT. A relay solution and protocol for when direct connectivity can not be established. Can be used in conjunction or seperate from STUN.
- WebRTC - ICE data and video conferencing in web browsers
- Pion - Implementation of WebRTC in the Go programming language
- libnice - libnice is an open-source C source code library that implements the ICE protocol for establishing P2P connectivity.
- JSTUN - JSTUN is an implementation of STUN using Java implemented by Thomas King. JSTUN client libraries are compatible with STUNTMAN server.
- C# Stun Client code - Implemented by by Ivar Lumi. Compatible with STUNTMAN.
- PJNATH - An implementation of ICE for multiple platforms
Contact
Author: John Selbie