Release notes now moved to https://github.com/sshuttle/sshuttle/releases/
These are the old release notes.
- IPv6 support in nft method.
- Intercept DNS requests sent by systemd-resolved.
- Set default tmark.
- Fix python2 server compatibility.
- Python 3.9 support.
- 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.
- Drop testing of Python 3.5
- 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
- Ask setuptools to require Python 3.5 and above.
- Add missing import.
- Fix formatting typos in usage docs
- 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.
- Errors in python long_documentation.
- 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'.
- Python 2.6 support.
- Python 2.7 support.
- 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).
- doas support as replacement for sudo on OpenBSD.
- Added ChromeOS section to documentation (#262)
- Add --no-sudo-pythonpath option
- 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.
- Add homebrew instructions.
- Route traffic by linux user.
- Add nat-like method using nftables instead of iptables.
- 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).
- Remove Python 2.6 from automatic tests.
- 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.
The "I should have done a git pull" first release.
- Order first by port range and only then by swidth
- 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).
- 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.
- Fix readthedocs versioning.
- Don't crash on ENETUNREACH.
- Various bug fixes.
- Improvements to BSD and OSX support.
- 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.
- Accidentally switched LGPL2 license with GPL2 license in 0.77.1 - now fixed.
- Use semantic versioning. http://semver.org/
- Update GPL 2 license text.
- New release to fix PyPI.
- Various bug fixes.
- Fix Documentation.
- Add fix for MacOS X issue.
- Add support for OpenBSD.
- Add option to disable IPv6 support.
- Update documentation.
- Move documentation, including man page, to Sphinx.
- Use setuptools-scm for automatic versioning.
- Revert change that broke sshuttle entry point.
- Add CHANGES.rst file.
- Numerous bug fixes.
- Python 3.5 fixes.
- PF fixes, especially for BSD.