Shadowsocks sənədləri
naviqasiya
Shadowsocks konfiqurasiya formatı
Konfiqurasiya Fayl
Shadowsocks JSON format konfiqurasiyalarını qəbul edir:
{
“server”:”my_server_ip”,
"server_port": 8388,
“yerli_port”: 1080,
"parol":"barfoo!",
“metod”:”chacha20-ietf-poly1305”
}
JSON Format
- server: host adınız və ya server IP (IPv4/IPv6).
- server_port: server port nömrəsi.
- yerli_port: yerli port nömrəsi.
- parol: köçürməni şifrələmək üçün istifadə edilən parol.
- üsul: şifrələmə üsulu.
Şifrələmə üsulu
Biz serverlərimizi konfiqurasiya edirik və sizə chacha20-ietf-poly1305 AEAD şifrəsindən istifadə etməyi tövsiyə edirik, çünki bu, şifrələmənin ən güclü üsuludur.
Öz shadowsocks serverinizi konfiqurasiya edirsinizsə, ya “chacha20-ietf-poly1305” və ya “aes-256-gcm” arasından seçim edə bilərsiniz.
URI və QR kodu
Android / IOS üçün Shadowsocks həmçinin BASE64 kodlu URI format konfiqurasiyalarını qəbul edir:
ss://BASE64-KODLU-STRING-DOLDURMASAN#TAG
Düz URI olmalıdır: ss://method:password@hostname:port
Yuxarıdakı URI RFC3986-ya uyğun gəlmir. Bu halda parol faiz kodlu deyil, düz mətn olmalıdır.
Nümunə: 192.168.100.1:8888 serverindən istifadə edirik istifadə bf-cfb şifrələmə üsulu və parol test/!@#:.
Sonra, düz URI ilə ss://bf-cfb:test/!@#:@192.168.100.1:8888, biz BASE64 kodlu URI yarada bilərik:
> console.log( “ss://” + btoa(“bf-cfb:test/!@#:@192.168.100.1:8888”) )
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg
Bu URI-ləri təşkil etməyə və müəyyən etməyə kömək etmək üçün BASE64 kodlu sətirdən sonra teq əlavə edə bilərsiniz:
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server
Ünvanlı
Shadowsocks SOCKS5 ünvan formatında olan ünvanlardan istifadə edir:
[1 bayt növü][dəyişən uzunluqlu host][2 bayt port]
Burada müəyyən edilmiş ünvan növləri var:
- 0x01: host 4 baytlıq IPv4 ünvanıdır.
- 0x03 : host 1 bayt uzunluqdan başlayaraq, maksimum 255 baytlıq domen adı ilə başlayan dəyişən uzunluqlu sətirdir.
- 0x04: host 16 baytlıq IPv6 ünvanıdır.
Port nömrəsi 2 baytlıq böyük-endian işarəsiz tam ədəddir.
TCP
ss-local müştəri hədəf ünvandan başlayaraq, faydalı yük məlumatı ilə başlayan şifrəli məlumatları göndərməklə ss-remote ilə əlaqə yaradır. Şifrələmə istifadə edilən şifrədən asılı olaraq fərqli olacaq.
[hədəf ünvanı][faydalı yük]
ss-uzaqdan idarəsi şifrələnmiş məlumatları qəbul edir, sonra hədəf ünvanı deşifrə edir və təhlil edir. Sonra hədəfə yeni bir TCP bağlantısı yaradır və faydalı yük məlumatlarını ona ötürür. ss-remote hədəfdən cavab alır, sonra məlumatları şifrələyir və əlaqəsi kəsilənə qədər onu yenidən ss-local-a yönləndirir.
Qarşıdurma məqsədləri üçün yerli və uzaqdan ilk paketdə bəzi faydalı yüklə əl sıxma məlumatı göndərilməlidir.
UDP
ss-local hədəf ünvanı və faydalı yükdən ibarət şifrələnmiş məlumat paketini ss-remote-a göndərir.
[hədəf ünvanı][faydalı yük]
Şifrələnmiş paket qəbul edildikdən sonra ss-remote hədəf ünvanı deşifrə edir və təhlil edir. Sonra hədəfə faydalı yüklə yeni bir məlumat paketi göndərir. ss-remote hədəfdən məlumat paketlərini alır və hər bir paketdəki faydalı yükə hədəf ünvanını əlavə edir. Şifrələnmiş nüsxələr ss-local-a geri göndərilir.
[hədəf ünvanı][faydalı yük]
Bu proses ss-local üçün şəbəkə ünvanının tərcüməsini həyata keçirərək ss-uzaqdan idarə edilə bilər.