ເອກະສານ Shadowsocks
Navigation
ຮູບແບບການຕັ້ງຄ່າ Shadowsocks
ຕັ້ງຄ່າເອກະສານ
Shadowsocks ໃຊ້ການຕັ້ງຄ່າຮູບແບບ JSON:
{
"ເຊີບເວີ": "my_server_ip",
“server_port”: 8388,
“local_port”: 1080,
"ລະຫັດຜ່ານ": "barfoo!",
"ວິທີການ":"chacha20-ietf-poly1305"
}
ຮູບແບບ JSON
- ເຊີບເວີ: ຊື່ເຈົ້າພາບ ຫຼື IP ເຊີບເວີຂອງເຈົ້າ (IPv4/IPv6).
- server_port: ໝາຍເລກຜອດເຊີບເວີ.
- local_port: ໝາຍເລກພອດທ້ອງຖິ່ນ.
- password: ເປັນລະຫັດຜ່ານທີ່ໃຊ້ເພື່ອເຂົ້າລະຫັດການໂອນ.
- ວິທີການ: ວິທີການເຂົ້າລະຫັດ.
ວິທີການເຂົ້າລະຫັດ
ພວກເຮົາກຳນົດຄ່າເຊີບເວີຂອງພວກເຮົາ ແລະແນະນຳໃຫ້ທ່ານໃຊ້ລະຫັດລັບ chacha20-ietf-poly1305 AEAD ເພາະວ່າມັນເປັນວິທີການເຂົ້າລະຫັດທີ່ເຂັ້ມແຂງທີ່ສຸດ.
ຖ້າຕັ້ງຄ່າເຄື່ອງແມ່ຂ່າຍ shadowsocks ຂອງທ່ານເອງ, ທ່ານສາມາດເລືອກຈາກ "chacha20-ietf-poly1305" ຫຼື "aes-256-gcm".
URI ແລະ QR Code
Shadowsocks ສໍາລັບ Android / IOS ຍັງໃຊ້ເວລາການຕັ້ງຄ່າຮູບແບບ URI ທີ່ເຂົ້າລະຫັດ BASE64:
ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#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, ພວກເຮົາສາມາດສ້າງ 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-byte][variable-length host][2-byte port]
ນີ້ແມ່ນປະເພດທີ່ຢູ່ທີ່ກໍານົດໄວ້:
- 0x01 : host ເປັນທີ່ຢູ່ IPv4 4-byte.
- 0x03 : ໂຮສແມ່ນສະຕຣິງຄວາມຍາວຕົວແປ, ເລີ່ມຕົ້ນດ້ວຍຄວາມຍາວ 1-byte, ຕິດຕາມດ້ວຍຊື່ໂດເມນສູງສຸດ 255-byte.
- 0x04 : host ເປັນທີ່ຢູ່ IPv16 6-byte.
ໝາຍເລກພອດແມ່ນຈຳນວນເຕັມທີ່ບໍ່ໄດ້ເຊັນ 2-byte big-endian.
TCP
ss-local client ເລີ່ມຕົ້ນການເຊື່ອມຕໍ່ກັບ ss-remote ໂດຍການສົ່ງຂໍ້ມູນທີ່ເຂົ້າລະຫັດເລີ່ມຕົ້ນດ້ວຍທີ່ຢູ່ເປົ້າຫມາຍຕິດຕາມດ້ວຍຂໍ້ມູນ payload. ການເຂົ້າລະຫັດຈະແຕກຕ່າງກັນຂຶ້ນກັບລະຫັດທີ່ໃຊ້.
[ທີ່ຢູ່ເປົ້າໝາຍ][ payload]
ss-remote ໄດ້ຮັບຂໍ້ມູນທີ່ຖືກເຂົ້າລະຫັດ, ຫຼັງຈາກນັ້ນຖອດລະຫັດແລະວິເຄາະທີ່ຢູ່ເປົ້າຫມາຍ. ຫຼັງຈາກນັ້ນ, ມັນສ້າງການເຊື່ອມຕໍ່ TCP ໃຫມ່ກັບເປົ້າຫມາຍແລະສົ່ງຕໍ່ຂໍ້ມູນ payload ກັບມັນ. ss-remote ໄດ້ຮັບການຕອບຄືນຈາກເປົ້າຫມາຍຫຼັງຈາກນັ້ນເຂົ້າລະຫັດຂໍ້ມູນແລະສົ່ງມັນກັບຄືນໄປບ່ອນ ss-local ຈົນກ່ວາມັນຖືກຕັດການເຊື່ອມຕໍ່.
ສໍາລັບຈຸດປະສົງ obfuscation, ທ້ອງຖິ່ນແລະຫ່າງໄກສອກຫຼີກຄວນສົ່ງຂໍ້ມູນການຈັບມືກັບ payload ບາງຢ່າງໃນຊຸດທໍາອິດ.
UDP
ss-local ສົ່ງຊຸດຂໍ້ມູນທີ່ຖືກເຂົ້າລະຫັດທີ່ມີທີ່ຢູ່ເປົ້າຫມາຍແລະ payload ໄປ ss-remote.
[ທີ່ຢູ່ເປົ້າໝາຍ][ payload]
ເມື່ອໄດ້ຮັບແພັກເກັດທີ່ຖືກເຂົ້າລະຫັດແລ້ວ, ss-remote decrypts ແລະ parses ທີ່ຢູ່ເປົ້າຫມາຍ. ຫຼັງຈາກນັ້ນ, ມັນຈະສົ່ງຊຸດຂໍ້ມູນໃຫມ່ທີ່ມີ payload ໄປຫາເປົ້າຫມາຍ. ss-remote ໄດ້ຮັບຊຸດຂໍ້ມູນຈາກເປົ້າຫມາຍແລະ prepends ທີ່ຢູ່ເປົ້າຫມາຍໃສ່ payload ໃນແຕ່ລະຊອງ. ສຳເນົາທີ່ເຂົ້າລະຫັດໄວ້ຈະຖືກສົ່ງກັບໄປທີ່ ss-local.
[ທີ່ຢູ່ເປົ້າໝາຍ][ payload]
ຂະບວນການນີ້ສາມາດຖືກຕົ້ມລົງໄປ ss-remote ປະຕິບັດການແປທີ່ຢູ່ເຄືອຂ່າຍສໍາລັບ ss-local.