
Smart IPv6 Rotator
https://github.com/iv-org/smart-ipv6-rotator- Category
- Cybersecurity
- Rank
- No. 1557Tools index
Previous survey · No. 1536 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- iv-org
- GitHub
- 159 stars
- Date
About
Rotate IPv6 addresses for specific subnets to unblock IPv6-enabled sites (Google by default, customizable for others).
What it does
This one-shot networking utility creates a random address inside your assigned IPv6 range, adds it to a server interface, then installs destination-specific routes that select the new source address. It can discover the interface and gateway automatically or accept both explicitly.
Why it's ranked here
The design is narrow but technically useful. It changes source addressing only for chosen destination ranges, records enough state for cleanup, and rolls back several setup failures. Its value depends heavily on having fully routed IPv6 space and permission to alter Linux networking.
What's good
Automatic gateway and interface discovery reduce routine setup, while explicit overrides handle unusual networks. The tool verifies a fresh address before installing service routes unless cron mode disables that check. Separate cleanup commands remove one configuration or every saved configuration.
Tradeoffs
Normal operation needs root privileges, Python 3.9 or newer, IPv6 connectivity, and a provider that permits arbitrary addresses within a fully routed allocation. The documentation names several major cloud providers as unsuitable. Connectivity checks use plain HTTP, cron mode skips address verification, and no dry-run option exists.
How to use it well
It suits Linux server operators, especially Invidious administrators, who control routed IPv6 space and can schedule periodic one-shot changes through cron. Test interactively before enabling cron, then retain cleanup in upgrade procedures. It does not supply IPv6 connectivity, routed address space, or a general-purpose proxy.
Technical notes+
smart-ipv6-rotator.py delegates to main in smart_ipv6_rotator/__init__.py, where argparse defines run, clean-one, and clean. The run path uses IPv6Network plus random host bits, pyroute2 IPDB and IPRoute objects from smart_ipv6_rotator/const.py, and destination ranges from smart_ipv6_rotator/ranges.py. smart_ipv6_rotator/helpers.py persists SavedRanges records as JSON under /tmp, removes prior routes and addresses, and probes ipv6.icanhazip.com over HTTP. pyproject.toml declares Python 3.9 or newer with requests and pyroute2. Dockerfile installs the local project into a Python slim image, while .github/workflows/build-docker.yml builds Linux amd64 and arm64 images.
Observed
- License
- GNU Affero General Public License, version 3
- Primary language
- Python
- Runtime
- Python 3.9 or newer
- Dependencies
- requests and pyroute2
- Interface
- Command-line interface with run, clean-one, and clean subcommands
- Installation surfaces
- Local Python package installation and a published Quay container image
- Container platforms
- Linux amd64 and Linux arm64/v8
Read from README.md, pyproject.toml, smart-ipv6-rotator.py, smart_ipv6_rotator/const.py, smart_ipv6_rotator/models.py, smart_ipv6_rotator/ranges.py, smart_ipv6_rotator/helpers.py, smart_ipv6_rotator/__init__.py, LICENSE, Dockerfile, .github/workflows/build-docker.yml.
What it can do
Rotate IPv6 addresses for specific subnets
IPv6 subnet configuration → New IPv6 address assignment
Unblock access to IPv6-enabled websites
Blocked website URL → Restored website access
Configure IPv6 rotation for Google services
Google service endpoints → Rotated IPv6 connections to Google
Customize IPv6 rotation for specific websites
Target website configuration → Custom IPv6 rotation rules
Manage IPv6 subnet assignments
IPv6 subnet parameters → Updated subnet configuration
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.