Kürzlich musste ich ein git Repository auf GitHub über einen nur-IPv6 Server klonen, den ich bei meinem Lieblingshoster Hetzner gemietet habe. Leider musste ich feststellen, dass GitHub immer noch kein IPv6 unterstützt.
Meine Umgehung war einen WireGuard VPN mit einem meiner dual-stack server einzurichten. Eine Alternative hätte auch sein können Tor zu installieren um anonym herunterzuladen.
Da ich bei weitem nicht der einzige Nutzer von nur-IPv6 Servern bin, der Repositories von GitHub herunterladen möchte, habe ich mich dazu entschieden einen öffentlichen Proxyserver anzubieten, der benutzt werden kann um auf GitHub von IPv6 Netzwerken zuzugreifen, bis GitHub native IPv6 Unterstützung hinzufügt. Dieser Proxy ist nur auf IPv6 verfügbar, um IPv4 Nutzer davon abzuhalten diesen Proxy zu verwenden und unnötig Ressourcen zu verschwenden, da diese bereits direkt von GitHub klonen können.
Also wie funktioniert es? Lass uns annehmen, dass du mein PHP Chat Skript, welches ich unter https://github.com/DanWin/le-chat-php veröffentlicht habe, klonen möchtest. Normalerweise würde das Klonen so funktionieren:git clone https://github.com/DanWin/le-chat-php
Wegen DOS Angriffen habe ich den https-Proxy eingestellt. Wenn du über ssh klonen willst, kannst du dies wie folgt machen:git clone git@github-ipv6-proxy.danwin1210.de:DanWin/le-chat-php
Diejenigen, die den Proxy permanent nutzen möchten, und/oder über https clonen möchten, sollten folgendes zu /etc/hosts hinzufügen:
2a01:4f8:c010:d56::2 github.com 2a01:4f8:c010:d56::3 api.github.com 2a01:4f8:c010:d56::4 codeload.github.com 2a01:4f8:c010:d56::6 ghcr.io 2a01:4f8:c010:d56::7 pkg.github.com npm.pkg.github.com maven.pkg.github.com nuget.pkg.github.com rubygems.pkg.github.com 2a01:4f8:c010:d56::8 uploads.github.com 2606:50c0:8000::133 objects.githubusercontent.com www.objects.githubusercontent.com release-assets.githubusercontent.com gist.githubusercontent.com repository-images.githubusercontent.com camo.githubusercontent.com private-user-images.githubusercontent.com avatars0.githubusercontent.com avatars1.githubusercontent.com avatars2.githubusercontent.com avatars3.githubusercontent.com cloud.githubusercontent.com desktop.githubusercontent.com support.github.com 2606:50c0:8000::154 support-assets.githubassets.com opengraph.githubassets.com github-registry-files.githubusercontent.com github-cloud.githubusercontent.com
Dank DeLegacy IPv6 RPZ sind einige der Adressen oben nun offizielle GitHub IPv6 Adressen, die noch nicht in deren DNS Zone veröffentlicht wurden.
Einmal hinzugefügt, kannst du normal klonen, ohne irgend welche Änderungen: git clone https://github.com/DanWin/le-chat-php
All dies ist mit der folgenden nginx Konfiguration auf einem Dual-Stack Server gemacht:
stream {
server {
listen [2a01:4f8:c010:d56::2]:22 fastopen=100 ipv6only=on;
proxy_pass github.com:22;
}
server {
listen [2a01:4f8:c010:d56::2]:443 fastopen=100 ipv6only=on;
proxy_pass github.com:443;
}
server {
listen [2a01:4f8:c010:d56::3]:443 fastopen=100 ipv6only=on;
proxy_pass api.github.com:443;
}
server {
listen [2a01:4f8:c010:d56::4]:443 fastopen=100 ipv6only=on;
proxy_pass codeload.github.com:443;
}
server {
listen [2a01:4f8:c010:d56::6]:443 fastopen=100 ipv6only=on;
proxy_pass ghcr.io:443;
}
server {
listen [2a01:4f8:c010:d56::7]:443 fastopen=100 ipv6only=on;
proxy_pass pkg.github.com:443;
}
server {
listen [2a01:4f8:c010:d56::8]:443 fastopen=100 ipv6only=on;
proxy_pass uploads.github.com:443;
}
}
Bei weiteren Fragen schreib mir.