GitHub IPv6 proxy'si

🇹🇷
🇨🇿
🇩🇪
🇬🇧
🇧🇷
🇷🇺
🇺🇦
🇨🇳
+

Recently I had to clone a git repository on GitHub via an IPv6 only server that I rented at my favourite hosting provider Hetzner. Unfortunately I realized that GitHub still does not support IPv6.

Geçici çözümüm, çift yığınlı sunucularımdan biriyle bir WireGuard VPN kurmaktı. Anonim olarak indirmek için Tor'u yüklemek bir alternatif olabilirdi.

GitHub'dan havuz indirmek isteyen yalnızca IPv6 sunucusuna sahip tek kullanıcı olmadığım için, GitHub yerel IPv6 desteği sağlayana kadar bir IPv6 ağında GitHub'a erişmek için kullanılabilecek bir genel proxy sunucusu sağlamaya karar verdim. Proxy, IPv4 kullanıcılarının zaten doğrudan GitHub'dan klonlayabildikleri için gereksiz kaynakları kullanmalarını önlemek için yalnızca IPv6'da mevcuttur.

https proxy'min etki alanım için verilen bir ssl sertifikası sunduğunu unutmayın, bu da trafiğinizin şifresini çözüp yeniden şifrelediğim anlamına gelir (ve potansiyel olarak inceleyebilirim, ancak yapmıyorum). Geçersiz bir ssl sertifikası uyarısı alacağınız için gereklidir, aksi takdirde + github, kabul ettikten sonra varsayılan bağlantı noktasına yönlendirir. Daha kalıcı bir çözüm için aşağıya bakın, bu daha gizlilik dostudur.

Peki nasıl çalışıyor? https://github.com/DanWin/le-chat-php'de yayınladığım PHP Sohbet komut dosyasını klonlamak istediğimizi varsayalım. Normalde depoyu klonlamak şöyle görünür:
git clone https://github.com/DanWin/le-chat-php
Bir IPv6 bağlantısında, proxy hizmetimi şu şekilde kullanabilirsiniz:
git clone https://danwin1210.de:1443/DanWin/le-chat-php
Ve ssh ile klonlamak isterseniz, bunu şu şekilde de yapabilirsiniz:
git clone git@github-ipv6-proxy.danwin1210.de:DanWin/le-chat-php

Proxy'yi daha kalıcı olarak kullanmak ve/veya ben trafiğinizi yeniden şifrelemeden doğrudan GitHub ile konuşmak isteyenler /etc/hosts'a şunu eklemelidir:

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::5 objects.githubusercontent.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

Eklendikten sonra, herhangi bir değişiklik yapmadan her zamanki gibi klonlayabilirsiniz:

git clone https://github.com/DanWin/le-chat-php

Tüm bunlar, çift yığınlı bir sunucuda aşağıdaki nginx yapılandırmasıyla yapılır:

http {
	server {
		listen [::]:1443 fastopen=100 backlog=2048 ipv6only=on ssl http2 default_server;
		location = /robots.txt {
			return 200 'User-agent: *
Disallow:';
		}
		location / {
			proxy_pass https://github.com;
			proxy_set_header Host "github.com";
		}
	}
}
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::5]:443 fastopen=100 ipv6only=on;
		proxy_pass objects.githubusercontent.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;
	}
}

If there are any further questions, contact me.