gnunet-nat(1)

gnunet-nat1

Interact with the nat service

Usage

gnunet-nat [{-b ADDRESS | --bind=ADDRESS}] [{-c FILENAME | --config=FILENAME}] [{-e ADDRESS | --external=ADDRESS}] [{-i ADDRESS | --in=ADDRESS}] [{-r ADDRESS | --remote=ADDRESS}] [{-S NAME | --section=NAME}] [{-s | --stun}] [{-t | --tcp}] [{-u | --udp}] [{-W | --watch}]

Overview

This tool allows testing various NAT traversal functions, as well as attempting auto-configuration.

Options

-b ADDRESS | --bind=ADDRESS

Assume that the service is (locally) bound to ADDRESS.

-c FILENAME | --config=FILENAME

Use the configuration file FILENAME.

-e ADDRESS | --external=ADDRESS

Assume that ADDRESS is the globally visible address of the peer.

-i ADDRESS | --in=ADDRESS

Assuming we are listening at ADDRESS for connection reversal requests.

-r ADDRESS | --remote=ADDRESS

Ask the peer at ADDRESS for connection reversal, using the local address for the target address of the reversal.

-S NAME | --section=NAME

Name of section in configuration file to use for additional options.

-s | --stun

Enable processing of STUN requests. Will try to read UDP packets from the bind address and handle the packets if they are STUN packets. Will only work with UDP.

-t | --tcp

Use TCP.

-u | --udp

Use UDP.

-W | --watch

Watch for connection reversal requests.

Examples

Basic examples

# gnunet-nat -i 0.0.0.0:8080 -u

We are bound to "0.0.0.0:8080" on UDP and want to obtain all applicable IP addresses.

# gnunet-nat -i '[::0]':8080 -t

We are bound to "::0" on port 8080 on TCP and want to obtain all applicable IP addresses.

# gnunet-nat -i 127.0.0.1:8080 -u

We are bound to "127.0.0.1:8080" on UDP and want to obtain all applicable IP addresses:

ICMP-based NAT traversal

# gnunet-nat -Wt -i 192.168.178.12:8080

Watch for connection reversal request (you must be bound to NAT range or to wildcard, 0.0.0.0), only works for IPv4:

# gnunet-nat -t -r 1.2.3.4:8080 -i 2.3.4.5:8080
# gnunet-nat -t -r 1.2.3.4:8080 -i 0.0.0.0:8080

Initiate connection reversal request from peer at external IPv4 address 1.2.3.4, and let the kernel fill in whatever IPv4 address we happen to have:

Manual hole punching

# gnunet-nat -t -p AUTO:8080

Assume manually punched NAT, but determine external IP automatically:

STUN-based XXX:

# gnunet-nat FIXME -s

XXX

Releases

Unchanged in 3 releases since Debian 11 (Bullseye).

  1. 11–13

Bugs

Report bugs by using https://bugs.gnunet.org or by sending electronic mail to ⟨[email protected]⟩.

From gnunet 0.20.0-7 in Debian 13 (Trixie). Parsed by carta from the page's mdoc source.