You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ruakij f34522ef98 | 2 years ago | |
---|---|---|
cmd/app | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
go.mod | 2 years ago | |
go.sum | 2 years ago |
README.md
wg-ipv6-converter
Converts and adds IPv4- to IPv6-Adresses and AllowedIP-Entries for wireguard-interfaces.
1. Overview
The program will convert IPv4-only wireguard-interfaces to IPv6. It converts and adds the Address of the Interface and AllowedIPs-Entries with optional filters.
IPv6-Adresses are generated based on the IPv4-Adress.
Beware: This program needs NET_ADMIN
privileges for setting Adresses and to access the wireguard-daemon.
2. Install
2.1. From Binary
- Download the appripriate binary for your system from the Release-page (or build from sources)
- Save at an appropriate location e.g.
/usr/bin/local/wg-ipv6-converter
- Make executeable:
chmod +x /usr/bin/local/wg-ipv6-converter
2.2. From sources
Clone the repository and compile using go build ./cmd/app
3. Setup
3.1. Environment
Variable | Description | Default |
---|---|---|
INTERFACE * |
Wireguard-Interface Name | |
IPV6_FORMAT |
Format to use for converting v4 to v6 The CIDR-Mask gets translated using 128 - 24 - Mask e.g. 10.0.100.5/16 -> fc12::0a00:6405/96 |
fc12::%02x%02x:%02x%02x/%d |
RECHECK_INTERVAL |
Interval in seconds to recheck AllowedIPs entries in case something changed | 300 |
* Required
3.2. Examples
3.2.1. Netbird
Netbird is at the moment only IPv4-compatible, with this program running where necessary, some basic IPv6-setup can be archieved.
INTERFACE="wt0" ./wg-ipv6-converter
Or using a systemd-service based on the example:
[Unit]
Description=WireGuard IPv6 converter for netbird
BindsTo=netbird.service
[Service]
Type=simple
ExecStart=/usr/local/bin/wg-ipv6-converter
Restart=always
RestartSec=60
StandardOutput=syslog
StandardError=syslog
Environment="INTERFACE=wt0"
[Install]
WantedBy=multi-user.target
4. License
This project is licenced under GPLv3.
See LICENSE for more details.