summaryrefslogtreecommitdiff
path: root/doc/man/gnunet-nat.1
blob: 1a99d60fe521795ff9711de5ee672ad97d490d8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
.\" This file is part of GNUnet.
.\" Copyright (C) 2001-2019 GNUnet e.V.
.\"
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.3 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
.\" copy of the license is included in the file
.\" ``FDL-1.3''.
.\"
.\" A copy of the license is also available from the Free Software
.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
.\"
.\" Alternately, this document is also available under the General
.\" Public License, version 3 or later, as published by the Free Software
.\" Foundation.  A copy of the license is included in the file
.\" ``GPL3''.
.\"
.\" A copy of the license is also available from the Free Software
.\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
.\"
.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
.\"
.Dd October 26, 2018
.Dt GNUNET-NAT 1
.Os
.Sh NAME
.Nm gnunet-nat
.Nd
interact with the NAT service
.Sh SYNOPSIS
.Nm
.Op Fl b Ar ADDRESS | Fl \-bind= Ns Ar ADDRESS
.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
.Op Fl e Ar ADDRESS | Fl \-external= Ns Ar ADDRESS
.Op Fl i Ar ADDRESS | Fl \-in= Ns Ar ADDRESS
.Op Fl r Ar ADDRESS | Fl \-remote= Ns Ar ADDRESS
.Op Fl S Ar NAME | Fl \-section= Ns Ar NAME
.Op Fl s | \-stun
.Op Fl t | \-tcp
.Op Fl u | \-udp
.Op Fl W | \-watch
.Sh DESCRIPTION
This tool allows testing various NAT traversal functions, as well as attempting auto-configuration.
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl b Ar ADDRESS | Fl \-bind= Ns Ar ADDRESS
Assume that the service is (locally) bound to ADDRESS.
.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
Use the configuration file FILENAME.
.It Fl e Ar ADDRESS | Fl \-external= Ns Ar ADDRESS
Assume that ADDRESS is the globally visible address of the peer.
.It Fl i Ar ADDRESS | Fl \-in= Ns Ar ADDRESS
Assuming we are listening at ADDRESS for connection reversal requests.
.It Fl r Ar ADDRESS | Fl \-remote= Ns Ar ADDRESS
Ask the peer at ADDRESS for connection reversal, using the local address for the target address of the reversal.
.It Fl S Ar NAME | Fl \-section= Ns Ar NAME
Name of section in configuration file to use for additional options.
.It Fl 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.
.It Fl t | \-tcp
Use TCP.
.It Fl u | \-udp
Use UDP.
.It Fl W | \-watch
Watch for connection reversal requests.
.El
.Sh EXAMPLES
.Ss Basic examples
.Pp
.Dl # gnunet-nat -i 0.0.0.0:8080 -u
.Pp
We are bound to "0.0.0.0:8080" on UDP and want to obtain all applicable IP addresses.
.Pp
.Dl # gnunet-nat -i '[::0]':8080 -t
.Pp
We are bound to "::0" on port 8080 on TCP and want to obtain all applicable IP addresses.
.Pp
.Dl # gnunet-nat -i 127.0.0.1:8080 -u
.Pp
We are bound to "127.0.0.1:8080" on UDP and want to obtain all applicable IP addresses:
.Ss ICMP-based NAT traversal
.Pp
.Dl # gnunet-nat -Wt -i 192.168.178.12:8080
.Pp
Watch for connection reversal request (you must be bound to NAT range or to wildcard, 0.0.0.0), only works for IPv4:
.Pp
.Dl # gnunet-nat -t -r 1.2.3.4:8080 -i 2.3.4.5:8080
.Pp Initiate connection reversal request from peer at external IPv4 address 1.2.3.4, while we are running ourselves at 2.3.4.5:8080 (must use IPv4 addresses):
.Pp
.Dl # gnunet-nat -t -r 1.2.3.4:8080 -i 0.0.0.0:8080
.Pp
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:
.Ss Manual hole punching
.Pp
.Dl # gnunet-nat -t -p AUTO:8080
.Pp
Assume manually punched NAT, but determine external IP automatically:
.Ss STUN-based XXX:
.Pp
.Dl # gnunet-nat FIXME -s
.Pp
XXX
.Sh SEE ALSO
.Xr gnunet-transport 1
.sp
The full documentation for gnunet is maintained as a Texinfo manual.
If the
.Xr info 1
and gnunet programs are properly installed at your site, the command
.Pp
.Dl info gnunet
.Pp
should give you access to the complete handbook,
.Pp
.Dl info gnunet-c-tutorial
.Pp
will give you access to a tutorial for developers.
.sp
Depending on your installation, this information is also available in
.Xr gnunet 7 and
.Xr gnunet-c-tutorial 7 .
.\".Sh HISTORY
.\".Sh AUTHORS
.Sh BUGS
Report bugs by using
.Lk https://bugs.gnunet.org
or by sending electronic mail to
.Aq Mt gnunet-developers@gnu.org .