আমার এসএস টানেলটি সফলভাবে তৈরি করা হয়েছে কিনা আমি কীভাবে জানতে পারি?


21

আমি tunnel.shএসএসএস টানেলটি বাঁচিয়ে রাখতে অন্যের দ্বারা লিখিত নিম্নলিখিত স্ক্রিপ্টের উপর নির্ভর করি :

#!/bin/bash
export SSH_HOST=tim@server 

if [ ! -f /tmp/.tunnel ] 
then
echo "Creat SSH tunnel"
ssh -f -D 9999 $SSH_HOST "if [ -f ~/.tunnel ]; then rm ~/.tunnel; fi; while [ ! -f ~/.tunnel ]; do echo > /dev/null; done" & 
touch /tmp/.tunnel 
else
echo "Close SSH tunnel"
ssh $SSH_HOST "touch ~/.tunnel" 
rm /tmp/.tunnel 
fi
exit

একটি অবিরাম ssh টানেল তৈরি করতে, আমি কেবল ইস্যু করছি tunnel.sh। আমি tunnel.shআবার ইস্যু না করা পর্যন্ত টানেলটি বন্ধ হবে না ।

আমি ভাবছিলাম যে কীভাবে আমি ssh টানেলটি সফলভাবে নির্মিত হয়েছে তা যাচাই করতে পারি?

আমার এই টানেলের মূল ব্যবহারটি হ'ল সার্ভারের মতো একই ল্যানে কিছু প্রিন্টারে ডকুমেন্ট মুদ্রণ করা এবং প্রিন্টারগুলি কেবল ল্যানের মধ্যেই অ্যাক্সেস করা যায়। একটি টানেল তৈরির পরে, এখন মুদ্রণ কোনও সমস্যার প্রতিবেদন করে না, তবে যেহেতু আমি শারীরিকভাবে সেখানে নেই, তাই ডকুমেন্টগুলি সত্যই মুদ্রিত হয়েছে কিনা তা আমি পরীক্ষা করতে পারি না।

আমি ভেবেছিলাম যেহেতু আমি এখন সুড়ঙ্গকে ল্যান ধন্যবাদ দিয়েছি, আমার বাহ্যিক আইপি সার্ভারের মতো হওয়া উচিত। তবে আসলে তারা এক নয় (আমি এগুলি তাদের দ্বারা খুঁজে পেয়েছি wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//')। আমি ভাবছি কেন? আমি যখন টানেলটি জীবিতভাবে ইন্টারনেটে কোনও ওয়েবসাইটের সাথে সংযোগ করি, তখন সার্ভারটি কি আমার এবং সার্ভারের মধ্যে টানেলের কারণে সংযোগে আমার এবং ইন্টারনেট ওয়েবসাইটের মধ্যবর্তী স্থান নয়?

উত্তর:


25

এটি হওয়া দরকারের থেকে অনেক জটিল :-)

টানেলটি শুরু করুন:

ssh -f -N -D 9999 -M -S /tmp/ssh_tunnel_%h.sock -o ExitOnForwardFailure=yes $SSH_HOST && \
echo "ssh tunnel started successfully" || \
echo "ssh tunnel failed to start"

টানেলটি থামান:

ssh -S /tmp/ssh_tunnel_%h.sock -O exit $SSH_HOST

এটাই আপনার করা দরকার। আপনি যদি বিশদ চান তবে নীচে যান।

আপনার দ্বিতীয় প্রশ্নের জন্য, আইপি এক। না, আপনার আইপি পরিবর্তন হয় না। আপনি যা করেছিলেন তা হ'ল রিমোট হোস্টের মাধ্যমে একটি সোক্স প্রক্সি তৈরি করা। আপনি যদি না বলেন তবে আপনার সিস্টেম স্বয়ংক্রিয়ভাবে এই প্রক্সিটি ব্যবহার করে না tell

SSH- র ব্যাখ্যা
: সুড়ঙ্গ শুরু করার জন্য args
-fপটভূমি নিজেই বলুন SSH। এটি কেবলমাত্র ব্যাকগ্রাউন্ড হবে যদি এটি সফলভাবে শুরু হয় ( -oনীচের যুক্তির সাথে সহযোগিতা করে)।
-o ExitOnForwardFailure=yes: এটি ssh কে SOCKS প্রক্সি সেট আপ করতে না পারলে প্রস্থান করতে বলে।
-N: কোন আদেশ কার্যকর করবেন না। আমরা কেবল সুড়ঙ্গ করতে চাই, দূরবর্তী হোস্টে কিছু না করি।
-D 9999: আপনার SOCKS প্রক্সি।
-M: এখানে কাজ করার জন্য -S যুক্তিটির জন্য এটি প্রয়োজনীয়।
-S /tmp/ssh_tunnel_%h.sock: এটি এটির নিয়ন্ত্রণ সকেটের জন্য /tmp/ssh_tunnel_HOSTNAME.sock ব্যবহার করতে বলে। -Mবিকল্প বলা হয়েছে যে সব SSH চাহিদা অন্য SSH ইতিমধ্যে সকেট শোনা এই সকেট সেট আপ করুন এবং না করার যে সমস্যা কমান্ড। Ssh ইতিমধ্যে চালু হওয়ার পরে আপনি অতিরিক্ত টানেল স্থাপন করতে এই সকেটটি ব্যবহার করতে পারেন। দ্য%h ফাইলনামের অংশ হিসাবে দূরবর্তী হোস্টের হোস্টনেম ব্যবহার করে।

সুড়ঙ্গ থামানোর পক্ষে যুক্তি
-S /tmp/ssh_tunnel_%h.sock:: এটি সুস্পষ্ট হওয়া উচিত। তবে যেহেতু আমরা একটি-এম জারি করি নি, তার অর্থ এসএসএসের উচিত ইতিমধ্যে সেখানে থাকা সকেটের সাথে সংযোগ স্থাপন করা উচিত এবং নিজেই কিছু করার চেয়ে কী করা উচিত তা জানিয়ে দেওয়া উচিত।
-O exit: এটি অংশ -S। আমরা সকেটে প্রস্থান করার জন্য ssh কে বলছি। এখনও এখানে প্রয়োজন হয়। এমনকি যদি আপনি ফাইলের নাম ব্যবহার না করেই একটি নিখুঁত সকেট পাথ নির্দিষ্ট করতে চান, ssh এখনও একটি দূরবর্তী হোস্ট নির্দিষ্ট করতে চাইবে। এই কারণেই আমি যুক্তিগুলিতে রাখি । এটি যেমন এসএসএস হোস্টের কাছে জিজ্ঞাসা করতে চলেছে তবে এটি ব্যবহার করতে পারে এবং এটি জিনিসগুলিকে সংগঠিত রাখে।
$SSH_HOST%h%h


5

এই ধরণের টানেলটি আপনার আইপি ঠিকানার তথ্য পরিবর্তন করে না। এটি কেবল আপনার কম্পিউটারকে 9999 পোর্ট খোলার জন্য এবং তার বন্দরের সাথে সংযোগগুলি আপনার এসএস সংযোগের মাধ্যমে রিমোট মেশিনে (টিম @ সার্ভার) ফরোয়ার্ড করার জন্য বলে। সংযোগটি সঠিকভাবে পরীক্ষা করার সহজ উপায় হ'ল ফরোয়ার্ডটি বন্দরটিতে টেলনেট তৈরি করা হয়েছে (আপনার উদাহরণস্বরূপ 9999):

el টেলনেট লোকালহোস্ট 9999
সার্ভার চেষ্টা করছে ... সার্ভারের
সাথে সংযুক্ত।
পালানোর চরিত্রটি '^]'।

যদি আপনি "সার্ভারে সংযুক্ত" পান তবে। বার্তা, তার মানে আপনার টানেল শেষ। যদি, পরিবর্তে আপনি পান: "দূরবর্তী হোস্টের সাথে সংযোগ করতে অক্ষম: সংযোগ অস্বীকার করা হয়েছে" আপনার টানেলটি আপ নেই is

আপনার দ্বিতীয় প্রশ্ন হিসাবে, আপনার ব্রাউজারের জন্য, আপনার ব্রাউজারটি সুরক্ষাটি ব্যবহার করবে না, যদি না আপনি এটি না বলেন। ব্রাউজারগুলির নেটওয়ার্ক সেটিংসে, আপনি প্রক্সি সেটিংস কনফিগার করতে পারেন এবং লোকালহোস্ট নির্দিষ্ট করতে পারেন: 9999 কে একটি মোজা 5 প্রক্সি হিসাবে এবং তারপরে আপনার ওয়েব সংযোগগুলিতে এসএসএস টানেলটি ব্যবহার করা উচিত এবং সার্ভারের আইপি ঠিকানা থেকে উপস্থিত হতে পারে।


+1 ধন্যবাদ! (1) আমি যখন ল্যানে কোনও প্রিন্টারে মুদ্রণ করি, তখন এটি 9999 পোর্টে যাওয়ার অর্থ কীভাবে টানেলটি ব্যবহার করতে পারে? আর কিছু না? (২) এমন কি টানেলগুলি রয়েছে যা আমার আইপি ঠিকানার তথ্য পরিবর্তন করে?
টিম

@ টিম সম্ভবত, নির্দিষ্ট প্রিন্টারটি একটি নির্দিষ্ট আইপি ঠিকানা এবং বন্দরে মুদ্রণের জন্য কনফিগার করা হয়েছে। এটি আপনার প্রিন্টারটি কীভাবে সেটআপ হয় তার উপর নির্ভর করে। সাধারণত আপনি যখন কোনও প্রিন্টার নির্ধারণ করেন তখন আপনি উভয়ই নির্দিষ্ট করতে পারেন। হ্যাঁ, এখানে কিছু ধরণের টানেল রয়েছে যার সাথে তাদের নিজস্ব আইপি তথ্য যুক্ত থাকবে। সাধারণত এই জন্য আপনি একটি পৃথক Tun / আলতো চাপুন তৈরি en.wikipedia.org/wiki/TUN/TAP ইন্টারফেস যার ফলে এটি নিজের আইপি থেকে সংযুক্ত ঠিকানা, এবং সমস্ত ট্রাফিক যে ঠিকানার খুঁজে যায় ভিন্ন কোনো নেটওয়ার্ক থেকে আসা প্রদর্শিত হবে হবে ।
গ্যাবে

ধন্যবাদ! আমার ফায়ারফক্সের পছন্দগুলিতে, উন্নত -> সংযোগ -> সেটিংসে, আমি ম্যানুয়াল প্রক্সি কনফিগারেশন চয়ন করি এবং HTTP প্রক্সিটির জন্য "লোকালহোস্ট" এবং এর বন্দরের জন্য "9999" টাইপ করি। এর পরে আমি ফায়ারফক্সের কোনও ওয়েবসাইটের সাথে সংযোগ করতে পারি না। আমি ভাবছি কেন?
টিম

@ টিম এটি কিছুটা বিভ্রান্তিকর ... সেট করার উপযুক্ত জিনিসটি হ'ল: সোসক্স হোস্ট, এবং এইচটিটিপি প্রক্সি নয়। প্রথমবার চেষ্টা করার সময় আমার এই একই সমস্যাটি ছিল।
গ্যাবে

1

আমার ক্ষেত্রে (উবুন্টু 14.10 এ গুগল ক্রোম), অন্তত ব্রাউজারের মধ্যে আমার বাহ্যিক ঠিকানা পরিবর্তন হয়। শুধু গুগল "আমার আইপি ঠিকানা কি?" প্রক্সি সংযোগ সহ এবং ছাড়াই।

এছাড়াও, আপনি প্রক্সি সেট আপ করার পরে, টানেলটি ধ্বংস করার চেষ্টা করুন এবং দেখুন যে আপনি এখনও ট্রাফিক পেতে পারেন। যখন আমি এটি করি, ক্রোম একটি ত্রুটি প্রদান করে "প্রক্সি সার্ভারের সাথে সংযোগ স্থাপনে অক্ষম"।

অন্য উপায়: রিমোট হোস্টে টানেল করার পরে, একটি নতুন এসএসআর সেশন তৈরি করুন এবং রান করুন tcpdump -A dst port 80। তারপরে কিছু পৃষ্ঠায় ব্রাউজ করুন এবং আপনার টার্মিনালে সম্পর্কিত ট্র্যাফিকটি দেখতে হবে।

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