Shadowsocks құжаттамасы

Shadowsocks конфигурация пішімі

Файлды конфигурациялау

Shadowsocks JSON пішімінің конфигурацияларын қабылдайды:

{

    “сервер”:”менің_серверім_ip”,

    «Server_port»: 8388,

    «жергілікті_порт»:1080,

    «пароль»:«барфу!»,

    “әдіс”:”chacha20-ietf-poly1305”

}

JSON пішімі

  • сервер: хост атауы немесе сервер IP (IPv4/IPv6).
  • server_port: сервер портының нөмірі.
  • жергілікті_порт: жергілікті порт нөмірі.
  • құпия сөз: тасымалдауды шифрлау үшін қолданылатын құпия сөз.
  • әдіс: шифрлау әдісі.

Шифрлау әдісі

Біз серверлерімізді конфигурациялаймыз және chacha20-ietf-poly1305 AEAD шифрін пайдалануды ұсынамыз, себебі бұл шифрлаудың ең күшті әдісі. 

Жеке shadowsocks серверін конфигурацияласаңыз, «chacha20-ietf-poly1305» немесе «aes-256-gcm» біреуін таңдауға болады.

URI және QR коды

Android / IOS үшін Shadowsocks сонымен қатар BASE64 кодталған URI пішімінің конфигурацияларын қабылдайды:

ss://BASE64-КОДТАЛҒАН-ЖОЛ-ЖОЛДАМАСЫЗ#TAG

 

Қарапайым URI келесідей болуы керек: ss://method:password@hostname:port

Жоғарыдағы URI RFC3986 сәйкес келмейді. Бұл жағдайда құпия сөз пайыздық кодталмаған қарапайым мәтін болуы керек.



Мысал: 192.168.100.1:8888 серверін пайдаланып жатырмыз пайдалана отырып, bf-cfb шифрлау әдісі және құпия сөз тест/!@#:

 

Содан кейін қарапайым URI арқылы ss://bf-cfb:test/!@#:@192.168.100.1:8888, біз BASE64 кодталған URI жасай аламыз: 

 

> console.log( “ss://” + btoa(“bf-cfb:test/!@#:@192.168.100.1:8888”) )

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Осы URI мекенжайларын ұйымдастыруға және анықтауға көмектесу үшін BASE64 кодталған жолдан кейін тег қосуға болады:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Мекен-жайы

Shadowsocks SOCKS5 мекенжай пішімінде табылған мекенжайларды пайдаланады:

[1-байт түрі][ұзындығы айнымалы хост][2-байт порт]

 

Мұнда мекенжай түрлері анықталған:

  • 0x01 : хост – 4 байтты IPv4 мекенжайы.
  • 0x03 : хост — ұзындығы 1 байттан басталатын, одан кейін максимум 255 байт домен атауынан тұратын айнымалы ұзындық жолы.
  • 0x04 : хост – 16 байтты IPv6 мекенжайы.

 

Порт нөмірі 2 байтты үлкен-енді белгісі жоқ бүтін сан.

TCP

ss-жергілікті клиент мақсатты мекенжайдан бастап пайдалы жүктеме деректерінен кейін шифрланған деректерді жіберу арқылы ss-remote қосылымын бастайды. Қолданылатын шифрға байланысты шифрлау әртүрлі болады.

[мақсатты мекенжай][пайдалы жүк]

ss қашықтан басқару пульті шифрланған деректерді қабылдайды, содан кейін мақсатты мекенжайды шифрын шешеді және талдайды. Содан кейін ол мақсатқа жаңа TCP қосылымын жасайды және пайдалы жүктеме деректерін оған жібереді. ss-remote нысанадан жауап алады, содан кейін деректерді шифрлайды және ажыратылғанша оны ss-local ішіне қайта жібереді.

Анықтау мақсатында жергілікті және қашықтан басқару құрылғысы бірінші пакетте кейбір пайдалы жүктемемен қол алысу деректерін жіберуі керек.

UDP

ss-local мақсатты мекенжай мен пайдалы жүктемені қамтитын шифрланған деректер пакетін ss-қашықтан жібереді.

[мақсатты мекенжай][пайдалы жүк]

Шифрланған пакетті алғаннан кейін ss-қашықтан басқару құралы мақсатты мекенжайдың шифрын шешеді және талдайды. Содан кейін ол мақсатқа пайдалы жүктемесі бар жаңа деректер пакетін жібереді. ss-remote мақсаттан деректер пакеттерін алады және мақсатты мекенжайды әр пакеттегі пайдалы жүктемеге қосады. Шифрланған көшірмелер ss-local ішіне қайта жіберіледі.

[мақсатты мекенжай][пайдалы жүк]

Бұл процесті ss-local үшін желілік мекенжай аудармасын орындау арқылы ss-қашықтан басқаруға дейін қайнатуға болады.

5 күндік тегін сынақ нұсқасын бастаңыз