Shadowsocks документтери

Shadowsocks конфигурация форматы

Конфигурация файлы

Shadowsocks JSON формат конфигурацияларын алат:

{

    “server”:”my_server_ip”,

    "server_port":8388,

    "жергиликтүү_порт":1080,

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

    "ыкма":"chacha20-ietf-poly1305"

}

JSON форматы

  • сервер: сиздин хост аты же сервер IP (IPv4/IPv6).
  • server_port: сервер портунун номери.
  • local_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 шифрлөө ыкмасы жана сырсөз test/!@#:

 

Андан кийин, жөнөкөй 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-remoteга жөнөтөт.

[максаттуу дарек][пайдалуу жүк]

Шифрленген пакет алынгандан кийин, ss-remote максаттуу даректи чечмелейт жана талдайт. Андан кийин ал максатка пайдалуу жүк менен жаңы маалымат пакетин жөнөтөт. ss-remote бутадан маалымат пакеттерин алат жана максаттуу даректи ар бир пакеттеги пайдалуу жүктүн алдына коёт. Шифрленген көчүрмөлөр кайра ss-localге жөнөтүлөт.

[максаттуу дарек][пайдалуу жүк]

Бул процессти ss-remote үчүн ss-local үчүн тармак дарегин которууну ишке ашырууга чейин кайнатууга болот.

5 күндүк акысыз сынамык версияңызды баштаңыз