চিরকালের জন্য নেটক্যাট সহ প্রক্সি


16

আমি নেটক্যাট দিয়ে একটি ভিএনসি টিসিপি সার্ভার পোর্ট প্রক্সি করছি। প্রক্সি মেশিনটি লিনাক্স চালায়।

এটি আমি ব্যবহার করি:

mkfifo backpipe
nc -l 5902  0<backpipe | nc 10.1.1.116 5902 1>backpipe

10.1.1.116 হ'ল "দূরবর্তী" মেশিনটি মূল ভিএনসি পরিষেবাটি 5902 বন্দরটিতে চলমান this

তবে প্রতিটি ভিএনসি সেশনের পরে নেটক্যাট "প্রক্সি সার্ভার" বন্ধ হয়ে যায়, এটি নেটকাট কীভাবে কাজ করে।

ভিএনসি সেশন শেষ হওয়ার পরে কীভাবে নেটক্যাটটি "প্রক্সি পরিষেবা" চালিয়ে যেতে পারি?


কার্যকারণ হিসাবে আমি নেটক্যাট কমান্ড লাইন একটি অসীম লুপে রাখছি:

mkfifo backpipe
while true; do   nc -l 5902  0<backpipe | nc 10.1.1.116 5902 1>backpipe; done

তবে আমি এমন একটি "অফিসিয়াল" নেটক্যাট সমাধানটি পছন্দ করব যা পরিষেবাটিতে মোটেই বাধা দেয় না।


আমি "-" পরামিতি সম্পর্কে পড়েছি তবে আমি নিশ্চিত নই যে এটির ক্ষেত্রে এটি উপযুক্ত কিনা এবং আমি এখনও এটি সঠিকভাবে প্রয়োগ করতে সক্ষম হইনি।


অতিরিক্ত মন্তব্য:

অবশ্যই আমি এটি বিভিন্ন উপায়ে ssh টানেলিংয়ের সাহায্যে করতে পারি, তবে আমি এনক্রিপশন ওভারহেড ছাড়াই একটি সমাধান চেয়েছিলাম যাতে এটি ভিএনসি ক্লায়েন্টের পক্ষে যথাসম্ভব প্রতিক্রিয়াশীল হয়। অন্যথায় প্রক্সি সমাধান ঠিক আছে।

ক্লায়েন্টকে ভিএনসি হতে হবে, অন্য কোনও প্রোটোকল সম্ভব নয়।

উত্তর:


24

-kবিকল্প কৌতুক করতে হবে।

এর ম্যানপেজ থেকে nc(1):

 -k      Forces nc to stay listening for another connection after its
         current connection is completed.  It is an error to use this
         option without the -l option.

আমি লক্ষ্য করেছি যে netcat-traditionalডেবিয়ান / উবুন্টুতে থাকা প্যাকেজটি যেমন শোনা যায় তেমন করে না। সেক্ষেত্রে netcat-openbsdপ্যাকেজটি পরিবর্তে ব্যবহার করুন এবং আবার চেষ্টা করুন!

বিকল্পভাবে, ব্যবহার করুন socat, যা আপনার প্রক্সি সার্ভারের ব্যবহারের ক্ষেত্রে আরও লক্ষ্যবস্তু। ম্যানপেজ থেকে একটি এলোমেলো টিসিপি-ফরোয়ার্ডারের উদাহরণ, socatযার অবশ্যই কিছু পরিবর্তন প্রয়োজন needs

   socat -d -d -lmlocal2 \
   TCP4-LISTEN:80,bind=myaddr1,reuseaddr,fork,su=nobody,range=10.0.0.0/8 \
   TCP4:www.domain.org:80,bind=myaddr2

          TCP  port  forwarder,  each  side  bound to another local IP
          address (bind). This example  handles  an  almost  arbitrary
          number  of parallel or consecutive connections by fork'ing a
          new process after each accept() . It provides a little secu‐
          rity by su'ing to user nobody after forking; it only permits
          connections from the private  10  network  (range);  due  to
          reuseaddr,   it   allows   immediate  restart  after  master
          process's termination, even if some child  sockets  are  not
          completely  shut down.  With -lmlocal2, socat logs to stderr
          until successfully reaching the accept loop. Further logging
          is directed to syslog with facility local2.

@ অলজজেনেজ হ্যাঁ, এটা সত্যিই সত্য, সত্য বলা যায়। ম্যানপেজগুলি পড়ার অভ্যাস করুন। :)
gertvdijk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.