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
-bADDRESS |--bind=ADDRESS-
Assume that the service is (locally) bound to ADDRESS.
-cFILENAME |--config=FILENAME-
Use the configuration file FILENAME.
-eADDRESS |--external=ADDRESS-
Assume that ADDRESS is the globally visible address of the peer.
-iADDRESS |--in=ADDRESS-
Assuming we are listening at ADDRESS for connection reversal requests.
-rADDRESS |--remote=ADDRESS-
Ask the peer at ADDRESS for connection reversal, using the local address for the target address of the reversal.
-SNAME |--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).