Change log

Release notes now moved to https://github.com/sshuttle/sshuttle/releases/

These are the old release notes.

1.0.5 - 2020-12-29

Added

  • IPv6 support in nft method.

  • Intercept DNS requests sent by systemd-resolved.

  • Set default tmark.

  • Fix python2 server compatibility.

  • Python 3.9 support.

Fixed

  • Change license text to LGPL-2.1

  • Fix #494 sshuttle caught in infinite select() loop.

  • Include sshuttle version in verbose output.

  • Add psutil as dependency in setup.py

  • When subnets and excludes are specified with hostnames, use all IPs.

  • Update/document client’s handling of IPv4 and IPv6.

  • Update sdnotify.py documentation.

  • Allow no remote to work.

  • Make prefixes in verbose output more consistent.

  • Make nat and nft rules consistent; improve rule ordering.

  • Make server and client handle resolv.conf differently.

  • Fix handling OSError in FirewallClient#__init__

  • Refactor automatic method selection.

Removed

  • Drop testing of Python 3.5

1.0.4 - 2020-08-24

Fixed

  • Allow Mux() flush/fill to work with python < 3.5

  • Fix parse_hostport to always return string for host.

  • Require -r/–remote parameter.

  • Add missing package in OpenWRT documentation.

  • Fix doc about –listen option.

  • README: add Ubuntu.

  • Increase IP4 ttl to 63 hops instead of 42.

  • Fix formatting in installation.rst

1.0.3 - 2020-07-12

Fixed

  • Ask setuptools to require Python 3.5 and above.

  • Add missing import.

  • Fix formatting typos in usage docs

1.0.2 - 2020-06-18

Fixed

  • Leave use of default port to ssh command.

  • Remove unwanted references to Python 2.7 in docs.

  • Replace usage of deprecated imp.

  • Fix connection with @ sign in username.

1.0.1 - 2020-06-05

Fixed

  • Errors in python long_documentation.

1.0.0 - 2020-06-05

Added

  • Python 3.8 support.

  • sshpass support.

  • Auto sudoers file (#269).

  • option for latency control buffer size.

  • Docs: FreeBSD’.

  • Docs: Nix’.

  • Docs: openwrt’.

  • Docs: install instructions for Fedora’.

  • Docs: install instructions for Arch Linux’.

  • Docs: ‘My VPN broke and need a solution fast’.

Removed

  • Python 2.6 support.

  • Python 2.7 support.

Fixed

  • Remove debug message for getpeername failure.

  • Fix crash triggered by port scans closing socket.

  • Added “Running as a service” to docs.

  • Systemd integration.

  • Trap UnicodeError to handle cases where hostnames returned by DNS are invalid.

  • Formatting error in CHANGES.rst

  • Various errors in documentation.

  • Nftables based method.

  • Make hostwatch locale-independent (#379).

  • Add tproxy udp port mark filter that was missed in #144, fixes #367.

  • Capturing of local DNS servers.

  • Crashing on ECONNABORTED.

  • Size of pf_rule, which grew in OpenBSD 6.4.

  • Use prompt for sudo, not needed for doas.

  • Arch linux installation instructions.

  • tests for existing PR-312 (#337).

  • Hyphen in hostname.

  • Assembler import (#319).

0.78.5 - 2019-01-28

Added

  • doas support as replacement for sudo on OpenBSD.

  • Added ChromeOS section to documentation (#262)

  • Add –no-sudo-pythonpath option

Fixed

  • Fix forwarding to a single port.

  • Various updates to documentation.

  • Don’t crash if we can’t look up peername

  • Fix missing string formatting argument

  • Moved sshuttle/tests into tests.

  • Updated bandit config.

  • Replace path /dev/null by os.devnull.

  • Added coverage report to tests.

  • Fixes support for OpenBSD (6.1+) (#282).

  • Close stdin, stdout, and stderr when using syslog or forking to daemon (#283).

  • Changes pf exclusion rules precedence.

  • Fix deadlock with iptables with large ruleset.

  • docs: document –ns-hosts –to-ns and update –dns.

  • Use subprocess.check_output instead of run.

  • Fix potential deadlock condition in nft_get_handle.

  • auto-nets: retrieve routes only if using auto-nets.

0.78.4 - 2018-04-02

Added

  • Add homebrew instructions.

  • Route traffic by linux user.

  • Add nat-like method using nftables instead of iptables.

Changed

  • Talk to custom DNS server on pod, instead of the ones in /etc/resolv.conf.

  • Add new option for overriding destination DNS server.

  • Changed subnet parsing. Previously 10/8 become 10.0.0.0/8. Now it gets parsed as 0.0.0.10/8.

  • Make hostwatch find both fqdn and hostname.

  • Use versions of python3 greater than 3.5 when available (e.g. 3.6).

Removed

  • Remove Python 2.6 from automatic tests.

Fixed

  • Fix case where there is no –dns.

  • [pf] Avoid port forwarding from loopback address.

  • Use getaddrinfo to obtain a correct sockaddr.

  • Skip empty lines on incoming routes data.

  • Just skip empty lines of routes data instead of stopping processing.

  • [pf] Load pf kernel module when enabling pf.

  • [pf] Test double restore (ipv4, ipv6) disables only once; test kldload.

  • Fixes UDP and DNS proxies binding to the same socket address.

  • Mock socket bind to avoid depending on local IPs being available in test box.

  • Fix no value passed for argument auto_hosts in hw_main call.

  • Fixed incorrect license information in setup.py.

  • Preserve peer and port properly.

  • Make –to-dns and –ns-host work well together.

  • Remove test that fails under OSX.

  • Specify pip requirements for tests.

  • Use flake8 to find Python syntax errors or undefined names.

  • Fix compatibility with the sudoers file.

  • Stop using SO_REUSEADDR on sockets.

  • Declare ‘verbosity’ as global variable to placate linters.

  • Adds ‘cd sshuttle’ after ‘git’ to README and docs.

  • Documentation for loading options from configuration file.

  • Load options from a file.

  • Fix firewall.py.

  • Move sdnotify after setting up firewall rules.

  • Fix tests on Macos.

0.78.3 - 2017-07-09

The “I should have done a git pull” first release.

Fixed

  • Order first by port range and only then by swidth

0.78.2 - 2017-07-09

Added

  • Adds support for tunneling specific port ranges (#144).

  • Add support for iproute2.

  • Allow remote hosts with colons in the username.

  • Re-introduce ipfw support for sshuttle on FreeBSD with support for –DNS option as well.

  • Add support for PfSense.

  • Tests and documentation for systemd integration.

  • Allow subnets to be given only by file (-s).

Fixed

  • Work around non tabular headers in BSD netstat.

  • Fix UDP and DNS support on Python 2.7 with tproxy method.

  • Fixed tests after adding support for iproute2.

  • Small refactoring of netstat/iproute parsing.

  • Set started_by_sshuttle False after disabling pf.

  • Fix punctuation and explain Type=notify.

  • Move pytest-runner to tests_require.

  • Fix warning: closed channel got=STOP_SENDING.

  • Support sdnotify for better systemd integration.

  • Fix #117 to allow for no subnets via file (-s).

  • Fix argument splitting for multi-word arguments.

  • requirements.rst: Fix mistakes.

  • Fix typo, space not required here.

  • Update installation instructions.

  • Support using run from different directory.

  • Ensure we update sshuttle/version.py in run.

  • Don’t print python version in run.

  • Add CWD to PYTHONPATH in run.

0.78.1 - 2016-08-06

  • Fix readthedocs versioning.

  • Don’t crash on ENETUNREACH.

  • Various bug fixes.

  • Improvements to BSD and OSX support.

0.78.0 - 2016-04-08

  • Don’t force IPv6 if IPv6 nameservers supplied. Fixes #74.

  • Call /bin/sh as users shell may not be POSIX compliant. Fixes #77.

  • Use argparse for command line processing. Fixes #75.

  • Remove useless –server option.

  • Support multiple -s (subnet) options. Fixes #86.

  • Make server parts work with old versions of Python. Fixes #81.

0.77.2 - 2016-03-07

  • Accidentally switched LGPL2 license with GPL2 license in 0.77.1 - now fixed.

0.77.1 - 2016-03-07

  • Use semantic versioning. http://semver.org/

  • Update GPL 2 license text.

  • New release to fix PyPI.

0.77 - 2016-03-03

  • Various bug fixes.

  • Fix Documentation.

  • Add fix for MacOS X issue.

  • Add support for OpenBSD.

0.76 - 2016-01-17

  • Add option to disable IPv6 support.

  • Update documentation.

  • Move documentation, including man page, to Sphinx.

  • Use setuptools-scm for automatic versioning.

0.75 - 2016-01-12

  • Revert change that broke sshuttle entry point.

0.74 - 2016-01-10

  • Add CHANGES.rst file.

  • Numerous bug fixes.

  • Python 3.5 fixes.

  • PF fixes, especially for BSD.