2016-01-17 06:16:36 +01:00
|
|
|
Requirements
|
|
|
|
============
|
|
|
|
|
|
|
|
Client side Requirements
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
- sudo, or root access on your client machine.
|
|
|
|
(The server doesn't need admin access.)
|
|
|
|
- Python 2.7 or Python 3.5.
|
|
|
|
|
2016-01-17 08:07:52 +01:00
|
|
|
|
|
|
|
Linux with NAT method
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Supports:
|
|
|
|
|
|
|
|
* IPv4 TCP
|
|
|
|
* IPv4 DNS
|
|
|
|
|
|
|
|
Requires:
|
|
|
|
|
|
|
|
* iptables DNAT, REDIRECT, and ttl modules.
|
|
|
|
|
|
|
|
|
|
|
|
Linux with TPROXY method
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Supports:
|
|
|
|
|
|
|
|
* IPv4 TCP
|
2016-09-04 18:54:12 +02:00
|
|
|
* IPv4 UDP (requires ``recvmsg`` - see below)
|
|
|
|
* IPv6 DNS (requires ``recvmsg`` - see below)
|
2016-01-17 08:07:52 +01:00
|
|
|
* IPv6 TCP
|
2016-09-04 18:54:12 +02:00
|
|
|
* IPv6 UDP (requires ``recvmsg`` - see below)
|
|
|
|
* IPv6 DNS (requires ``recvmsg`` - see below)
|
2016-01-17 06:16:36 +01:00
|
|
|
|
2016-01-17 07:58:36 +01:00
|
|
|
.. _PyXAPI: http://www.pps.univ-paris-diderot.fr/~ylg/PyXAPI/
|
|
|
|
|
|
|
|
Full UDP or DNS support with the TPROXY method requires the ``recvmsg()``
|
2016-09-04 18:54:12 +02:00
|
|
|
syscall. This is not available in Python 2, however it is in Python 3.5 and
|
|
|
|
later. Under Python 2 you might find it sufficient to install PyXAPI_ in
|
|
|
|
order to get the ``recvmsg()`` function. See :doc:`tproxy` for more
|
|
|
|
information.
|
2016-01-17 07:58:36 +01:00
|
|
|
|
2016-01-17 06:16:36 +01:00
|
|
|
|
2016-03-03 00:35:45 +01:00
|
|
|
MacOS / FreeBSD / OpenBSD
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Method: pf
|
|
|
|
|
2016-01-17 08:07:52 +01:00
|
|
|
Supports:
|
|
|
|
|
|
|
|
* IPv4 TCP
|
|
|
|
* IPv4 DNS
|
2016-10-28 01:37:48 +02:00
|
|
|
* IPv6 TCP
|
|
|
|
* IPv6 DNS
|
2016-01-17 08:07:52 +01:00
|
|
|
|
|
|
|
Requires:
|
|
|
|
|
|
|
|
* You need to have the pfctl command.
|
|
|
|
|
2016-01-20 10:55:10 +01:00
|
|
|
Windows
|
|
|
|
~~~~~~~
|
|
|
|
|
|
|
|
Not officially supported, however can be made to work with Vagrant. Requires
|
|
|
|
cmd.exe with Administrator access. See :doc:`windows` for more information.
|
|
|
|
|
2016-01-17 08:07:52 +01:00
|
|
|
|
2016-01-17 06:16:36 +01:00
|
|
|
Server side Requirements
|
|
|
|
------------------------
|
2015-12-05 04:40:26 +01:00
|
|
|
Server requirements are more relaxed, however it is recommended that you use
|
2016-01-17 06:16:36 +01:00
|
|
|
Python 2.7 or Python 3.5.
|
|
|
|
|
|
|
|
|
|
|
|
Additional Suggested Software
|
|
|
|
-----------------------------
|
|
|
|
|
|
|
|
- You may want to use autossh, available in various package management
|
2016-10-29 15:15:02 +02:00
|
|
|
systems.
|
2016-10-28 01:37:48 +02:00
|
|
|
- If you are using systemd, sshuttle can notify it when the connection to
|
2016-10-29 15:15:02 +02:00
|
|
|
the remote end is established and the firewall rules are installed. For
|
|
|
|
this feature to work you must configure the process start-up type for the
|
|
|
|
sshuttle service unit to notify, as shown in the example below.
|
2016-10-28 01:37:48 +02:00
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
:emphasize-lines: 6
|
|
|
|
|
|
|
|
[Unit]
|
|
|
|
Description=sshuttle
|
|
|
|
After=network.target
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=notify
|
|
|
|
ExecStart=/usr/bin/sshuttle --dns --remote <user>@<server> <subnets...>
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|