Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# 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.