vpn-rotate-skill
Bypass API rate limits by rotating VPN servers. Works with any OpenVPN-compatible VPN (ProtonVPN, NordVPN, Mullvad, etc.). Automatically rotates to new server every N requests for fresh IPs. Use for high-volume scraping, government APIs, geo-restricted data.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Bypass API rate limits by rotating VPN servers. Works with any OpenVPN-compatible VPN (ProtonVPN, NordVPN, Mullvad, etc.). Automatically rotates to new server every N requests for fresh IPs. Use for high-volume scraping, government APIs, geo-restricted data.
How to use
Zainstaluj OpenVPN na swoim systemie (na Linuksie: sudo apt install openvpn). Pobierz pliki konfiguracyjne .ovpn od swojego dostawcy VPN i umieść je w katalogu ~/.vpn/servers/.
Utwórz plik z danymi logowania: echo "twoja_nazwa_użytkownika" > ~/.vpn/creds.txt, a następnie echo "twoje_hasło" >> ~/.vpn/creds.txt. Ustaw uprawnienia: chmod 600 ~/.vpn/creds.txt.
Skonfiguruj dostęp bez hasła dla OpenVPN, uruchamiając: echo "$USER ALL=(ALL) NOPASSWD: /usr/sbin/openvpn, /usr/bin/killall" | sudo tee /etc/sudoers.d/openvpn. Alternatywnie uruchom skrypt setup.sh, który przeprowadzi Cię przez całą konfigurację.
W swoim kodzie Python użyj dekoratora @with_vpn_rotation(rotate_every=10, delay=1.0) nad funkcją, którą chcesz chronić. Skill automatycznie będzie rotować VPN co 10 żądań i uzyskiwać nowe adresy IP.
Możesz też bezpośrednio używać klasy VPN: utwórz instancję vpn = VPN(), połącz się vpn.connect(), sprawdź IP vpn.get_ip(), a następnie rotuj vpn.rotate() przed każdym żądaniem.
Dla bardziej zaawansowanego użytku zastosuj menedżer kontekstu: with vpn.session(): połączenie jest aktywne, a vpn.before_request() obsługuje rotację automatycznie. Po wyjściu z bloku połączenie zostaje zamknięte.