➡️ 📖 Corresponding wiki
Features
WIREGUARD_MTU
enviromnent variable (#1571)OPENVPN_VERSION=2.6
support- Soft breaking changes:
- Openvpn 2.4 no longer supported
- Control server JSON field names changed
- NordVPN Wireguard support and new API endpoint (#1380)
- Wireguard MTU defaults to 1400 instead of 1420
- Wireguard debug logs log obfuscated keys
- Bump Alpine from 3.17 to 3.18
- Shadowsocks bumped from v0.4.0 to v0.5.0-rc1
Fixes
- AirVPN: allow Airvpn as Wireguard provider
- routing: ip family match function ipv4-in-ipv6 should match ipv6
- HTTP proxy: fix httpproxy.go error message (#1596)
- Netlink:
RouteList
list routes from all tables and does no longer filter by link- use
AddrReplace
instead ofAddrAdd
- Wireguard: delete existing Wireguard link before adding it
Documentation
- Readme: fix Alpine version from 3.17 to 3.18 (#1636)
- Github labels: add problem category labels: Config problem, Routing, IPv6, Port forwarding
Maintenance
Code
internal/routing
:- remove old assigned ip debug log
- unexport
IPIsPrivate
asipIsPrivate
- remove unused
VPNDestinationIP
internal/settings
: usegithub.com/qdm12/gosettings
- remove now unused settings helpers
- remove now unused helpers/messages.go
- use helping functions:
FileExists
,ObfuscateKey
,BoolToYesNo
- use
gosettings/sources/env
functions
internal/netlink
:- IPv6 detection simplified
- Define own types with minimal fields and separate code by OS
- Allow to swap
github.com/vishvananda/netlink
- Add files tagged for each platform
- Create non-implemented files for NOT linux
- Allow development on non-Linux platforms
- Allow to swap
internal/httpproxy
: addTest_returnRedirect
to prevent error wrap ofErrUseLastResponse
internal/settings/secrets
: add test forreadSecretFileAsStringPtr
Dependencies
- Bump github.com/breml/rootcerts from 0.2.10 to 0.2.11 (#1567)
- Bump github.com/stretchr/testify from 1.8.2 to 1.8.4 (#1575, #1633)
- Bump golang.org/x/text from 0.9.0 to 0.10.0 (#1681)
CI
- CI triggers for pull requests to branches other than master
- Bump docker/build-push-action from 4.0.0 to 4.1.1 (#1684)
Development tooling
- Update devcontainer definitions
- Set build tag as
linux
for cross development - Specify
.vscode
recommendations - Linting:
- upgrade to v1.53.2
- add linters
dupword
,paralleltest
,gosmopolitan
,mirror
,tagalign
,zerologlint
andgocheckcompilerdirectives
- add linter
musttag
and fix lint errors (change JSON fields in control server)