
एक रिवर्स टीसीपी टनल आपको NAT या फ़ायरवॉल के पीछे स्थित लक्ष्य तक पहुंचने देता है
shootback एक रिवर्स TCP टनल है जो आपको NAT या फ़ायरवॉल के पीछे के लक्ष्य तक पहुँचने देता है
रिवर्स TCP टनल, जो NAT या फ़ायरवॉल के पीछे की आंतरिक नेटवर्क मशीनों को बाहरी नेटवर्क से सुलभ बनाती है।
800 कनेक्शनों पर 1% से कम CPU और 8MB मेमोरी खपत करता है।
slaver एक एकल फ़ाइल है और केवल python(2.7/3.4+) मानक पुस्तकालय पर निर्भर करता है।

आवश्यकता:
डाउनलोड करें git clone https://github.com/aploium/shootback
(वैकल्पिक) यदि आपको एक एकल-फ़ाइल slaver.py चाहिए, तो python3 build_singlefile_slaver.py चलाएँ
ये कमांड चलाएँ
# master slaver के लिए :10000, और आपके लिए :10080 पर सुनें
python3 master.py -m 0.0.0.0:10000 -c 127.0.0.1:10080
# slaver master से जुड़ता है, और टनल लक्ष्य के रूप में example.com का उपयोग करता है
# ध्यान दें: आप slaver में python2 का भी उपयोग कर सकते हैं, केवल py3 ही नहीं
python3 slaver.py -m 127.0.0.1:10000 -t example.com:80
# master पर अनुरोध भेजें
curl -v -H "host: example.com" 127.0.0.1:10080
# -- example.com से कुछ HTML सामग्री --
# -- example.com से कुछ HTML सामग्री --
# -- example.com से कुछ HTML सामग्री --
एक अधिक वास्तविक उदाहरण (ssl के साथ):
मान लें आपका master 22.33.44.55 है (जैसा कि ऊपर ग्राफ में दिखाया गया है)
# slaver_local_ssh <---> slaver <--[SSL]--> master(22.33.44.55) <--> आप
# ---- master ----
python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10022 --ssl
# ---- slaver ----
# ध्यान दें: `--ssl` विकल्प slaver-master एन्क्रिप्शन के लिए है, SSH के लिए नहीं
python(or python3) slaver.py -m 22.33.44.55:10000 -t 127.0.0.1:22 --ssl
# ---- आप ----
ssh 22.33.44.55 -p 10022
अधिक सहायता के लिए, कृपया python3 master.py --help और python3 slaver.py --help देखें
डेमॉन में चलाएँ:
nohup python(or python3) slaver.py -m host:port -t host:port -q &
या:
# screen एक linux कमांड है
screen
python(or python3) slaver.py -m host:port -t host:port
# screen को अलग करने के लिए ctrl-a d दबाएँ
# और यदि आवश्यक हो, तो पुनः जोड़ने के लिए "screen -r" का उपयोग करें
TCP का उपयोग करने वाली कोई भी सेवा shootback-able है। HTTP/FTP/प्रॉक्सी/SSH/VNC/...
shootback स्वयं केवल ट्रांसमिशन कार्य करता है, एन्क्रिप्ट या प्रॉक्सी नहीं करता।
हालाँकि आप तीसरे पक्ष के प्रॉक्सी (जैसे shadowsocks) को slaver लक्ष्य के रूप में उपयोग कर सकते हैं।
उदाहरण के लिए:
shadowsocks_server<-->shootback_slaver<-->shootback_master<-->shadowsocks_client(socks5)
select.select() की सीमा के कारण,
shootback 512 से अधिक कनेक्शन नहीं संभाल सकता, आपको यह त्रुटि मिल सकती हैValueError: too many file descriptors in select()