Skip to content

Commit c02b93e

Browse files
committed
nft IPv6 documentation (and other minor doc updates)
Update docs to indicate that IPv6 is supported with the nft method. - Adds nft into the requirements.rst file. - Update description of what happens when a hostname is used in a subnet. - Add ipfw to list of methods. - Indicate that --auto-nets does not work with IPv6. Previously this was only mentioned in tproxy.rst - Clarify that we try to use "python3" on the server before trying "python".
1 parent 6d86e44 commit c02b93e

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

docs/manpage.rst

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,18 @@ Options
3737
netmask), and 0/0 ('just route everything through the
3838
VPN'). Any of the previous examples are also valid if you append
3939
a port or a port range, so 1.2.3.4:8000 will only tunnel traffic
40-
that has as the destination port 8000 of 1.2.3.4 and
40+
that has as the destination port 8000 of 1.2.3.4 and
4141
1.2.3.0/24:8000-9000 will tunnel traffic going to any port between
4242
8000 and 9000 (inclusive) for all IPs in the 1.2.3.0/24 subnet.
43-
It is also possible to use a name in which case the first IP it resolves
44-
to during startup will be routed over the VPN. Valid examples are
45-
example.com, example.com:8000 and example.com:8000-9000.
43+
A hostname can be provided instead of an IP address. If the
44+
hostname resolves to multiple IPs, all of the IPs are included.
45+
If a width is provided with a hostname that the width is applied
46+
to all of the hostnames IPs (if they are all either IPv4 or IPv6).
47+
Widths cannot be supplied to hostnames that resolve to both IPv4
48+
and IPv6. Valid examples are example.com, example.com:8000,
49+
example.com/24, example.com/24:8000 and example.com:8000-9000.
4650

47-
.. option:: --method <auto|nat|nft|tproxy|pf>
51+
.. option:: --method <auto|nat|nft|tproxy|pf|ipfw>
4852

4953
Which firewall method should sshuttle use? For auto, sshuttle attempts to
5054
guess the appropriate method depending on what it can find in PATH. The
@@ -64,9 +68,9 @@ Options
6468
You can use any name resolving to an IP address of the machine running
6569
:program:`sshuttle`, e.g. ``--listen localhost``.
6670

67-
For the tproxy and pf methods this can be an IPv6 address. Use this option
68-
with comma separated values if required, to provide both IPv4 and IPv6
69-
addresses, e.g. ``--listen 127.0.0.1:0,[::1]:0``.
71+
For the nft, tproxy and pf methods this can be an IPv6 address. Use
72+
this option with comma separated values if required, to provide both
73+
IPv4 and IPv6 addresses, e.g. ``--listen 127.0.0.1:0,[::1]:0``.
7074

7175
.. option:: -H, --auto-hosts
7276

@@ -92,6 +96,10 @@ Options
9296
are taken automatically from the server's routing
9397
table.
9498

99+
This feature does not detect IPv6 routes. Specify IPv6 subnets
100+
manually. For example, specify the ``::/0`` subnet on the command
101+
line to route all IPv6 traffic.
102+
95103
.. option:: --dns
96104

97105
Capture local DNS requests and forward to the remote DNS
@@ -122,9 +130,9 @@ Options
122130

123131
.. option:: --python
124132

125-
Specify the name/path of the remote python interpreter.
126-
The default is just ``python``, which means to use the
127-
default python interpreter on the remote system's PATH.
133+
Specify the name/path of the remote python interpreter. The
134+
default is to use ``python3`` (or ``python``, if ``python3``
135+
fails) in the remote system's PATH.
128136

129137
.. option:: -r <[username@]sshserver[:port]>, --remote=<[username@]sshserver[:port]>
130138

@@ -221,7 +229,8 @@ Options
221229

222230
.. option:: --disable-ipv6
223231

224-
If using tproxy or pf methods, this will disable IPv6 support.
232+
Disable IPv6 support for methods that support it (nft, tproxy, and
233+
pf).
225234

226235
.. option:: --firewall
227236

docs/requirements.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ Requires:
2020

2121
* iptables DNAT, REDIRECT, and ttl modules.
2222

23+
Linux with nft method
24+
~~~~~~~~~~~~~~~~~~~~~
25+
Supports
26+
27+
* IPv4 TCP
28+
* IPv4 DNS
29+
* IPv6 TCP
30+
* IPv6 DNS
31+
32+
Requires:
33+
34+
* nftables
2335

2436
Linux with TPROXY method
2537
~~~~~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)