The vpn:// share-link fix and the live-Speed-for-sidecar-protocols fix (both shipped a few days ago) never got their changelog bullet despite the fork's own standing rule to always document fork-specific changes here. Also documents the bin/-preservation fix on install.sh, shipped today and proposed upstream as MHSanaei/3x-ui#6152. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
18 KiB
English | فارسی | العربية | 中文 | Español | Русский | Türkçe
Bu, 3X-UI'nin kişisel bir çatallamasıdır (fork) — Xray-core için geliştirilmiş, açık kaynaklı bir web kontrol panelidir — ve tek bir büyük ekleme içerir: VLESS, VMess, Trojan ve diğerleriyle aynı seviyede birinci sınıf bir protokol olarak yerel (native) AmneziaWG desteği. 3X-UI'nin zaten yaptığı her şey (çoklu protokol destekli gelen bağlantılar, kullanıcı başına trafik hesaplama, abonelikler, çoklu düğüm, Telegram botu) değişmeden kalır ve orijinal projedeki gibi çalışmaya devam eder.
Bu fork, yazarının kendi yönlendiricileri ve kişisel sunucuları üzerinde çalışması için oluşturulmuştur; orijinal projenin yerini almayı veya onunla rekabet etmeyi amaçlamaz. Genel amaçlı paneli arıyorsanız MHSanaei/3x-ui adresine gidin — aşağıdaki her şey yalnızca bu fork'un farklarını belgelemektedir.
Important
Bu proje yalnızca kişisel kullanım için tasarlanmıştır. Lütfen yasadışı amaçlar için veya üretim (production) ortamında kullanmayın.
Bu fork'ta ne farklı: AmneziaWG
AmneziaWG, DPI tabanlı protokol parmak izi çıkarmayı yenmek için tasarlanmış bir gizleme (obfuscation) katmanı (çöp paketler, rastgele dolgu, sihirli başlıkların yeniden yazılması) ekleyen bir WireGuard varyantıdır — aynı tünel, ama artık hat üzerinde bir tünel gibi görünmeyen bir tünel.
- Yerel (native), Docker değil. AmneziaWG, host üzerinde gerçek bir çekirdek arabirimi olarak çalışır;
awg-quick/awgile açılıp kapatılır — size yerel birwg0arabirimi kazandıran aynı DKMS çekirdek modülü yaklaşımı. Ayrıcalıklı bir sidecar konteynerine gerek yoktur. - Birinci sınıf bir protokol. Bir AmneziaWG gelen bağlantısı, diğerleriyle aynı
Inboundtablosunda yaşar; bu sayede toplu işlemleri (bulk operations), QR kodu/yapılandırma indirme modalını ve abonelik bağlantılarını hiçbir ek çaba olmadan kazanır — öğrenilecek yeni bir şey yoktur. - Tam AmneziaWG 2.0 gizlemesi — Jc/Jmin/Jmax (çöp paketler), S1–S4 (paket dolgusu), H1–H4 (sihirli başlıklar) ve I1 imza paketi; her biri gelen bağlantı başına düzenlenebilir ve tek tıkla rastgeleleştirme düğmesine sahiptir, ayrıca eski istemciler için 1.x uyumlu bir mod da bulunur.
- Yerel IPv6, kullanıcı başına NDP proxy desteğiyle; böylece her eş (peer) doğrudan erişilebilir bir IPv6 adresi alır — NAT66 gerekmez.
- Kullanıcı başına port yönlendirme — belirli portları/aralıkları doğrudan bir eşin tünel adresine DNAT edin.
- Bir istemcinin trafiğini Xray üzerinden yönlendirme — her AmneziaWG gelen bağlantısı otomatik olarak kendi loopback Xray köprüsünü alır (hiçbir anahtar/switch olmadan); herhangi bir istemcinin trafiğini, panelde zaten mevcut olan "Yönlendirme" sayfası üzerinden yapılandırılmış herhangi bir Xray giden bağlantısına, tıpkı başka herhangi bir protokolü yönlendirir gibi yönlendirin.
install.shçekirdek modülünü sizin için kurar — Ubuntu/Debian/Armbian üzerinde (ppa:amnezia/ppa), diğer dağıtımlar için bir yedek (fallback) ile birlikte. Sizin için yapamayacağı tek şey: VPS/VM'inizde Secure Boot'u önceden devre dışı bırakmak — DKMS ile derlenmiş bir modül imzasızdır ve Secure Boot etkin olduğu sürece çekirdek onu yüklemeyi reddeder.- Uzlaştırma (reconcile),
internal/mtproto'nunmtgsidecar'ını yönetme biçimiyle tamamen aynı şekilde yapılır: arka planda çalışan bir görev, çalışan arabirimi veritabanında saklanan durumla senkronize tutar ve mümkün olduğunda eş (peer) değişikliklerini tam bir arabirim yeniden başlatması yerineawg syncconfüzerinden uygular. - Gerçek
vpn://paylaşım bağlantıları — istemci başına kopyalama bağlantısı/QR kodu ve abonelik uç noktası artık resmi AmneziaVPN uygulamasının beklediği gerçekvpn://şemasını üretiyor (düz bir.confdosyasının base64url'i), uygulamanın içe aktaramadığı uydurma bir URI biçimi değil.
Bu forktaki diğer değişiklikler
AmneziaWG dışındaki, bu forka özgü daha küçük iyileştirmeler eklendikçe burada listelenir:
- Yönlendirme kuralı otomatik tamamlama — Xray Routing kural düzenleyicisindeki Domain/IP alanları artık geosite/geoip kategorilerini önerir (örneğin "you" yazmak
geosite:youtubeönerir); bu öneriler, Xray bin klasöründe fiilen kurulu olan.datdosyalarından (Geodata otomatik güncelleme özelliğiyle eklenen özel dosyalar dahil, örn.geosite_roscom.dat) anlık olarak oluşturulur. Serbest metin girişi eskisi gibi çalışmaya devam eder. - AmneziaWG ve MTProto için canlı Hız — toplam trafik doğru hesaplanmasına rağmen, AmneziaWG ve MTProto (
mtg) gelen bağlantıları/istemcileri için Speed sütunu "--" gösteriyordu; çünkü ikisi de Xray-core'un kendi çalışma zamanı içinde çalışmıyor ve bu yüzden onun istatistik API'si için görünmezler. Artık ikisi de canlı hızı diğer tüm protokollerle birlikte yayınlıyor. bin/içindeki özel dosyalar güncellemelerden etkilenmez — bir yeniden kurulum/güncelleme, sürümü yeniden ayıklamadan önce tümbin/klasörünü siliyordu; bu da oraya elle eklenmiş her şeyi (en yaygın olarak bir yönlendirme kuralınınext:<file>:<code>ile işaret ettiği özel bir geoip/geosite dosyasını) sessizce siliyor ve bir sonraki başlatmada tüm gelen bağlantıları bozuyordu. Artık kurulum programı öncebin/'i yedekliyor ve yalnızca yeni sürümün sağlamadığı dosyaları geri yüklüyor.
Özellikler
- Çoklu protokol destekli gelen bağlantılar (Inbounds) — VLESS, VMess, Trojan, Shadowsocks, WireGuard, AmneziaWG, Hysteria2, HTTP, SOCKS (Karma), Dokodemo-door / Tunnel ve TUN.
- Modern aktarımlar (transports) ve güvenlik — TCP (Raw), mKCP, WebSocket, gRPC, HTTPUpgrade ve XHTTP; TLS, XTLS ve REALITY ile güvene alınmıştır.
- Geri Dönüş (Fallbacks) — Xray'in fallback desteğini kullanarak tek bir port üzerinde birden fazla protokole (ör. 443 üzerinde hem VLESS hem Trojan) hizmet verin.
- Kullanıcı başına yönetim — Trafik kotaları, bitiş tarihleri, IP sınırları, canlı çevrimiçi (online) durumu ve tek tıkla paylaşım bağlantıları, QR kodları ve abonelikler.
- Trafik istatistikleri — Gelen bağlantı (Inbound), istemci ve giden bağlantı (Outbound) bazında istatistikler ve sıfırlama kontrolleri.
- Çoklu düğüm (Multi-node) desteği — Tek bir panel üzerinden birden fazla sunucuyu yönetin ve ölçeklendirin.
- Giden bağlantı (Outbound) ve yönlendirme — WARP, NordVPN, özel yönlendirme kuralları, yük dengeleyiciler (load balancers) ve giden bağlantı proxy zincirleme (proxy chaining).
- Dahili abonelik sunucusu (Birden fazla çıktı formatı ve özel sayfa şablonları ile).
- Uzaktan izleme ve yönetim için Telegram botu.
- Panel içi Swagger dokümantasyonuna sahip RESTful API.
- Esnek depolama — SQLite (varsayılan) veya PostgreSQL.
- Koyu ve açık tema seçenekleriyle 13 farklı UI dili.
- Kullanıcı başına IP limitlerini zorunlu kılmak için Fail2ban entegrasyonu.
Ekran Görüntüleri
Hızlı Başlangıç
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash
Belirli bir sürümü kurmak için, etiketini (ör. v3.5.0-awg.1) ekleyin:
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s v3.5.0-awg.1
Sürekli güncellenen dev sürümünü (kararlı bir sürüm değil; main dalından her commit'te oluşturulan en son ön sürüm) kurmak için dev değerini geçirin:
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s dev
Bu fork'un kendi kararlı sürümleri <upstream taban sürümü>-awg.N biçiminde etiketlenir (ör. v3.5.0-awg.1, upstream'in v3.5.0 dediği sürümün üzerine inşa edilmiştir) — asla düz bir vX.Y.Z değil — böylece hiçbir zaman aynı numaraya sahip gerçek bir MHSanaei/3x-ui sürümüyle karıştırılmaz.
Kurulum sırasında rastgele bir kullanıcı adı, şifre ve erişim yolu oluşturulur. Kurulumdan sonra, hizmeti başlatabileceğiniz/durdurabileceğiniz, giriş bilgilerinizi görüntüleyebileceğiniz veya sıfırlayabileceğiniz, SSL sertifikalarını yönetebileceğiniz ve çok daha fazlasını yapabileceğiniz yönetim menüsünü açmak için terminalde x-ui komutunu çalıştırın.
Bu README'nin kapsadığından daha fazlası için tam panel dokümantasyonuna orijinal projenin Wiki sayfasından ulaşabilirsiniz — hiçbiri bu fork'a özgü değildir, dolayısıyla tamamen geçerliliğini korur.
Etkileşimsiz kurulum
Yükleyici, cloud-init için etkileşimsiz olarak da çalışır.
XUI_NONINTERACTIVE=1 ayarlayın (veya TTY olmadan boru hattına aktarın); kurulum baştan
sona hiçbir soru sormadan tamamlanır, rastgele kimlik bilgileri oluşturup bunları
/etc/x-ui/install-result.env dosyasına yazar. Şunlar için deploy/ klasörüne bakın:
- Cloud-init user-data — herhangi bir bulutta etkileşimsiz kurulum (Hetzner/AWS/DO/Vultr/GCP/Azure/Oracle)
- Hetzner Cloud notları — Hetzner üzerinde cloud-init tabanlı dağıtım
Desteklenen Platformlar
İşletim sistemleri: Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) ve Alpine. (Orijinal proje ayrıca bir Windows sürümü de yayınlar; bu fork'un CI'ı bunu yapmaz — buradaki her şey Linux çalıştıran sunucuları/yönlendiricileri hedefler ve AmneziaWG zaten her durumda bir Linux çekirdek modülüne ihtiyaç duyar.)
Mimariler: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.
AmneziaWG özellikle gerçek bir Linux çekirdeği ve AmneziaWG'ye özgü DKMS çekirdek modülüne ihtiyaç duyar — Windows üzerinde çalışmaz ve install_amneziawg bugün yalnızca Ubuntu/Debian/Armbian üzerinde çekirdek modülü kurulumunu otomatikleştirir (Bu fork'ta ne farklı bölümüne bakın).
Veritabanı Seçenekleri
3X-UI kurulum sırasında seçilebilecek iki arka uç (backend) destekler:
- SQLite (varsayılan) —
/etc/x-ui/x-ui.dbkonumunda tek bir dosya. Kurulum gerektirmez, küçük ve orta ölçekli dağıtımlar için idealdir. - PostgreSQL — Yüksek kullanıcı sayıları veya çoklu düğüm (multi-node) kurulumları için önerilir. Yükleyici sizin için yerel olarak PostgreSQL kurabilir veya mevcut bir sunucuya DSN bağlantısı kabul edebilir.
Çalışma anında veritabanı türü ortam değişkenleri (environment variables) ile seçilir (yükleyici bunları sizin için /etc/default/x-ui dosyasına yazar):
XUI_DB_TYPE=postgres
XUI_DB_DSN=postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable
Mevcut bir SQLite Kurulumunu PostgreSQL'e Taşıma
x-ui migrate-db --dsn "postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable"
# ardından /etc/default/x-ui içindeki XUI_DB_TYPE ve XUI_DB_DSN değerlerini ayarlayıp yeniden başlatın:
systemctl restart x-ui
Kaynak SQLite dosyasına dokunulmaz; yeni veritabanının düzgün çalıştığını doğruladıktan sonra eski SQLite dosyasını manuel olarak silebilirsiniz.
Ortam Değişkenleri (Environment Variables)
| Değişken | Açıklama | Varsayılan |
|---|---|---|
XUI_DB_TYPE |
Veritabanı türü: sqlite veya postgres |
sqlite |
XUI_DB_DSN |
PostgreSQL bağlantı dizesi (eğer XUI_DB_TYPE=postgres ise) |
— |
XUI_DB_FOLDER |
SQLite veritabanı dizini | /etc/x-ui |
XUI_DB_MAX_OPEN_CONNS |
Maksimum açık bağlantı sayısı (PostgreSQL havuzu) | — |
XUI_DB_MAX_IDLE_CONNS |
Maksimum boşta bekleme bağlantısı (PostgreSQL havuzu) | — |
XUI_INIT_WEB_BASE_PATH |
Web paneli için başlangıç URI yolu | / |
XUI_ENABLE_FAIL2BAN |
Fail2ban tabanlı IP limit uygulamasını etkinleştir | true |
XUI_LOG_LEVEL |
Günlük (Log) ayrıntı seviyesi (debug, info, warning, error) |
info |
XUI_DEBUG |
Hata ayıklama (debug) modunu etkinleştir | false |
XUI_TUNNEL_HEALTH_MONITOR |
Tünel sağlık izleyicisini etkinleştir (bir URL'yi yoklar ve tekrarlanan başarısızlıklardan sonra xray'i yeniden başlatır; yeniden başlatma tüm istemcilerin bağlantısını düşürür) | false |
XUI_TUNNEL_HEALTH_PROXY |
Yoklamanın gönderildiği proxy; yoklamanın tüneli test etmesi için bunu yerel bir xray gelen bağlantısına yönlendirin (ör. socks5://127.0.0.1:1080). Boş bırakılırsa yoklama yalnızca ana makine bağlantısını kontrol eder |
— |
XUI_TUNNEL_HEALTH_URL |
Tünel sağlığı için yoklanan URL | https://www.cloudflare.com/cdn-cgi/trace |
XUI_TUNNEL_HEALTH_INTERVAL |
Yoklamalar arasındaki aralık | 30s |
XUI_TUNNEL_HEALTH_TIMEOUT |
Yoklama başına zaman aşımı | 10s |
XUI_TUNNEL_HEALTH_FAILURES |
Yeniden başlatma tetiklenmeden önceki ardışık başarısızlık sayısı | 3 |
XUI_TUNNEL_HEALTH_COOLDOWN |
Ardışık yeniden başlatmalar arasındaki minimum gecikme | 5m |
Desteklenen Diller
Panel arayüzü 13 farklı dilde mevcuttur:
İngilizce · Farsça · Arapça · Çince (Basitleştirilmiş) · Çince (Geleneksel) · İspanyolca · Rusça · Ukraynaca · Türkçe · Vietnamca · Japonca · Endonezce · Portekizce (Brezilya)
Geliştirici Notları
Bu kişisel bir fork'tur ve dış katkıda bulunanlar aramamaktadır; ancak siz kendiniz bu kod tabanı üzerinde çalışıyorsanız CONTRIBUTING.md hâlâ yerel bir geliştirme ortamı kurmak için (Go/Node sürümleri, CGo için gereken C derleyicisi, build/lint/test komutları) ayrıntılı ve yararlı talimatlar içermektedir.
Atıf
Bu fork tamamen MHSanaei/3x-ui üzerine inşa edilmiştir — panelin tamamı, çoklu protokol desteği ve altta yatan mimari onların eseridir; AmneziaWG desteği burada eklenen tek şeydir. Orijinal projeyi faydalı bulduysanız, orijinal yazarın destek bağlantıları bunun için hâlâ doğru yerdir:
Bu fork'taki yerel AmneziaWG uygulaması şunlardan alınmış/ilham almıştır:
- MHSanaei/3x-ui#6086 — orijinal projeye karşı açılan orijinal AmneziaWG pull request'i (Docker sidecar yaklaşımı); bu fork onun şema/ön yüz (frontend) yapısını yeniden kullanır ancak arka ucu (backend) yerel, Docker'sız bir yöneticiyle değiştirir.
- coinman-dev/3ax-ui — üretimde zaten yerel AmneziaWG çalıştıran bağımsız bir fork; bu fork'un
awg-quicksüreç yönetimi, yapılandırma üretimi ve AmneziaWG 2.0 gizleme parametresi üreticisi onunawg/paketinden alınmıştır.
Özel Teşekkürler
- alireza0
- Iran v2ray rules (Lisans: GPL-3.0): Geliştirilmiş v2ray/xray ve v2ray/xray-clients yönlendirme (routing) kuralları; yerleşik İran alan adları ile güvenlik ve reklam engelleme odaklıdır.
- Russia v2ray rules (Lisans: GPL-3.0): Bu depo, Rusya'daki engellenen alan adları ve adreslere dayalı otomatik olarak güncellenen V2Ray yönlendirme kurallarını içerir.
Topluluk Araçları
3x-ui çevresindeki topluluk tarafından oluşturulmuş araçlar ve entegrasyonlar.
- terraform-provider-3x-ui (Lisans: MIT): Gelen bağlantılarnı, kullanıcıları, panel ayarlarını ve Xray yapılandırmasını Terraform / OpenTofu ile kod olarak (as code) yönetin.




