stunclient(1) command line app for the STUN protocol


stunclient [OPTIONS] server [port]


stunclient attempts to discover the local host's own external IP address, obtain a port mapping, and optionally discover properties of the Network Address Translator (NAT) between the host and the the server.


The following options are supported.

--mode MODE
--localaddr INTERFACE
--localport PORTNUMBER
--family IPVERSION
--protocol PROTO
--verbosity LOGLEVEL

Details of each option and parameters are as follows.


The server parameter is the IP address or FQDN of the remote server to perform the binding tests with. It is the only required parameter.

   *   *   *   *   *


The port parameter is an optional parameter that can follow the server parameter. The default is 3478 for UDP and TCP.

   *   *   *   *   *

--mode MODE

Where MODE is either "basic" or "full". "basic" mode is the default and indicates that the client should perform a STUN binding test only. "full" mode indicates that the client should attempt to diagnose NAT behavior and filtering methodologies if the server supports this mode. The NAT filtering test is only supported for UDP.

   *   *   *   *   *


The value for this option may the name of an interface (such as "eth0" or "lo"). Or it may be one of the available IP addresses assigned to a network interface present on the host (such as ""). The interface chosen will be the preferred address for sending and receiving responses with the remote server. The default is to let the system decide which address to send on and to listen for responses on all addresses (INADDR_ANY).

   *   *   *   *   *

--localport PORTNUM

PORTNUM is a value between 1 to 65535. This is the UDP or TCP port that the primary and alternate interfaces listen on as the primary port for binding requests. If not specified, a randomly available port chosen by the system is used.

   *   *   *   *   *

--family IPVERSION

IPVERSION is either "4" or "6" to specify the usage of IPV4 or IPV6. If not specified, the default value is "4".

   *   *   *   *   *

--protocol PROTO

PROTO is either "udp" or "tcp". "udp" is the default if this parameter is not specified

   *   *   *   *   *

--verbosity LOGLEVEL

Sets the verbosity of the logging level. 0 is the default (minimal output and logging). 1 shows slightly more. 2 and higher shows even more.

   *   *   *   *   *

--help Prints this help page


stunclient 3478
Performs a simple binding test request with the server listening at ""
stunclient --mode full --localport 9999
Performs a full set of UDP NAT behavior tests from local port 9999 to the server listening at IP Address (port 3478)
stunclient --protocol tcp
Performs a simple binding test using TCP to server listening on the default port of 3478 at


john selbie ([email protected])