ເອກະສານ Shadowsocks

ຮູບແບບການຕັ້ງຄ່າ 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.

ເລີ່ມການທົດລອງໃຊ້ຟຣີ 5 ມື້ຂອງທ່ານ