Ҳуҷҷатҳои Shadowsocks
Навигатсия
Формати конфигуратсияи Shadowsocks
Танзимоти файл
Shadowsocks конфигуратсияҳои формати JSON-ро мегирад:
{
"сервер":"сервери_ипи ман",
"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
Shadowsocks барои Android / IOS инчунин конфигуратсияҳои формати URI-и рамзгузоришудаи BASE64-ро мегирад:
ss://BASE64-КОДДОШИ-САТР-БЕ-ПОЛГИРӢ#TAG
URI оддӣ бояд бошад: ss://method:password@name host:port
URI дар боло ба RFC3986 пайравӣ намекунад. Парол дар ин ҳолат бояд матни оддӣ бошад, на бо фоиз рамзгузорӣ.
Мисол: Мо серверро дар 192.168.100.1:8888 истифода мебарем истифода bf-cfb усули рамзгузорӣ ва парол озмоиш/!@#:.
Сипас, бо URI оддӣ ss://bf-cfb:test/!@#:@192.168.100.1:8888, мо метавонем URI-и рамзгузоришудаи BASE64-ро тавлид кунем:
> 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-дурдаст иҷро кард ва тарҷумаи суроғаи шабакаро барои ss-local иҷро кард.