আমি কীভাবে এইচটিটিপি পোর্ট ৮০ তে টেলনেট করতে সক্ষম?


16

গুগলে অনুসন্ধানের পরে আমি জানতে পেরেছিলাম যে আমরা telnetতার HTTP পোর্টে ওয়েব-সার্ভার করতে এবং GETএকটি HTML পৃষ্ঠা পুনরুদ্ধার করতে ব্যবহার করতে পারি use

প্রাক্তন হিসাবে:

$ telnet web-server-name 80

তবে আমি বুঝতে পারি না কীভাবে এটি সম্ভব?

আমি ভেবেছিলাম যে 80 পোর্ট যদি HTTP সার্ভারের জন্য হয় তবে পোর্ট 80 কেবলমাত্র httpঅনুরোধের জন্য শুনবে । তবে আমি কীভাবে telnetএকটি HTTPবন্দরে সক্ষম হব ?

নয় telnetএবং HTTPদুটি ভিন্ন প্রটোকল?


2
'নেট এ চারপাশে বোকা বানানোর জন্য, নেটক্যাট ( nc(1)) কমান্ডটি অনেক বেশি নমনীয়। এটি এসএসএল / টিএলএস সিফার্ড পরিষেবাগুলির সাথে সংযুক্ত হতে পারে এবং এটি একটি সার্ভার এবং এমনকি চারপাশে রিলে ডেটা হিসাবে ব্যবহৃত হতে পারে।
ভনব্র্যান্ড

উত্তর:


25

অভিনন্দন, আপনি বন্দর এবং প্রোটোকল একে অপরের সাথে সরাসরি সংযুক্ত নেই বুঝতে পেরে নেটওয়ার্কিং স্তরগুলির ধারণার সঞ্চার করেছেন। অন্যরা যেমন বলছে, যে কোনও টিসিপি পোর্টের সাথে সংযোগ রাখতে টেলনেট ব্যবহার করা যেতে পারে। তবে এটি কেন সম্ভব তা বোঝার জন্য আপনাকে নেটওয়ার্কিং স্তরগুলি সম্পর্কে কিছুটা বোঝা দরকার। যদি আপনি কখনও ওএসআই 7 লেয়ার মডেলের কথা শুনে থাকেন তবে এটিই আপনাকে অন্য বন্দরের সাথে সংযোগ স্থাপনের জন্য টেলনেট ব্যবহার করতে দেয়। যদিও ইন্টারনেটে, তারা কেবল তাদের 4 টি স্তর এবং এটির নামক ইন্টারনেট প্রোটোকল স্যুটটি নিয়ে উদ্বেগ প্রকাশ করে। নেটওয়ার্কিংয়ের স্তর ছাড়াই প্রতিটি প্রোগ্রামের নিজস্ব প্রোটোকলটি বোঝার প্রয়োজন হবে না, তবে তার নিজস্ব আইপি অ্যাড্রেসিং স্কিম এবং পোর্ট সিস্টেমটি সংজ্ঞায়িত করতে হবে, যার অর্থ প্রতিটি রাউটারকে কীভাবে এই স্কিমগুলি রুট করতে হবে এবং বিভিন্ন প্রোটোকলগুলি কী পরিমাণে বেশি হবে তা বোঝার দরকার ছিল শেখা এবং নির্ণয় করা আরও কঠিন। এটিকে সহজভাবে বলতে গেলে, স্তরগুলি ছাড়াই ইন্টারনেট প্রায় কাজ করবে না।

আপনি যা নিয়ে উদ্বিগ্ন তা হ'ল পরিবহন স্তর এবং অ্যাপ্লিকেশন স্তর। ট্রান্সপোর্ট লেয়ারে আমাদের টিসিপি এবং ইউডিপির মতো ইন্টারনেট প্রোটোকল রয়েছে যার প্রতি পোর্ট সংখ্যা 1 থেকে 65535 অবধি রয়েছে। অ্যাপ্লিকেশন স্তরে আমাদের কাছে এইচটিটিপি, এসএমটিপি এবং ডিএনএস এর মতো প্রোটোকল রয়েছে। সাধারণত প্রতিটি ইন্টারনেট স্ট্যান্ডার্ড ডকুমেন্ট যা একটি প্রোটোকলকে সংজ্ঞায়িত করে একটি ডিফল্ট টিসিপি বা ইউডিপি পোর্ট নির্দিষ্ট করে যা প্রোটোকলটি ডিফল্টরূপে ব্যবহার করা উচিত। যেমন এইচটিটিপি-র জন্য টিসিপি পোর্ট 80, এসএমটিপির জন্য টিসিপি পোর্ট 25, ডিএনএসের জন্য ইউডিপি পোর্ট 53 এবং টেলনেটের জন্য টিসিপি পোর্ট 23। টেলনেট প্রোগ্রামটি আসলে টেলনেট প্রোটোকল বলে, যা একটি প্রমিত প্রোটোকল, তবে বেশিরভাগ বর্তমানের মান অনুসারে একটি প্রাচীন। কারণ এর প্রোটোকল সিকোয়েন্সগুলি 8-বিট অক্ষর থেকে তৈরি, আপনি খুব কমই প্রোটোকলটি দেখতে পান এবং এটি বেশিরভাগ স্বচ্ছ হ'ল এইচটিটিপি এবং এসএমটিপির মতো আরও আধুনিক প্রোটোকলের সাথে তুলনা করে যা জিইটি, পোষ্ট, হেলো, লগিন, এএসসিআইতে মানুষের দৃশ্যমান শব্দ ব্যবহার করে, প্রভৃতি

কারণ এর প্রোটোকলটি সাধারণত দৃশ্যমান হয় না, অন্যান্য টিসিপি বন্দরগুলির সাথে সংযোগ স্থাপনের জন্য এবং ব্যবহারকারীকে ম্যানুয়ালি প্রোটোকল টাইপ করার অনুমতি দেওয়ার জন্য একটি শালীন সরঞ্জামের জন্য তৈরি টেলনেট কিছু নেটওয়ার্ক প্রশাসক সার্ভারগুলির সাথে সমস্যাগুলি নির্ণয়ের জন্য এই কৌশলটি ব্যবহার করেন। তবে যেহেতু টেলনেট প্রোগ্রামটির নিজস্ব প্রোটোকল রয়েছে এবং এটি কখনও কখনও অতিরিক্ত বিট পাঠাতে পারে, আপনি এখনও এই কৌশলটি নিয়ে সমস্যায় পড়তে পারেন। আপনি যখন টেলনেট ব্যবহার করেন আপনি অ্যাপ্লিকেশন স্তরের পাশাপাশি ট্রান্সপোর্ট লেয়ারে সত্যই "সংযোগ তৈরি করছেন"। এটি কেবল ঘটে যায় যে অন্যান্য অ্যাপ্লিকেশন স্তর প্রোটোকলগুলি বেশিরভাগ ডায়াগনস্টিকগুলির জন্য এটির মাধ্যমে ঠিক কাজ করতে পারে এবং টেলনেট প্রোটোকলে হস্তক্ষেপ করবে না। এনসি (নেট ক্যাট। এটি বিড়াল কমান্ডের নেটওয়ার্ক ভিত্তিক সংস্করণ হতে নামটি পেয়েছে) এর মাধ্যমে এটি করার জন্য আরও ভাল প্রোগ্রাম রয়েছে।

$ nc www.stackexchange.com 80

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

nc -l 9000 < movie.mp4  (Your friend runs this)

nc friends.computer.hostname 9000 > movie.mp4  (you run this)

এবং তারপরে মুভি.এমপি 4 কোনও অ্যাপ্লিকেশন লেয়ার প্রোটোকল (যেমন এফটিপি) ব্যবহার করে নেটওয়ার্কে স্থানান্তরিত হয়। অ্যাপ্লিকেশন প্রোটোকলটি আসলে আপনার বন্ধু আপনাকে জানায় যে তারা আপনার আদেশটি চালানোর জন্য প্রস্তুত।

এনসি ইউডিপি প্যাকেট এবং ইউনিক্স-ডোমেন সকেটগুলিও পরিচালনা করতে পারে। শুনতে এটি ব্যবহার করাও আকর্ষণীয় হতে পারে।

nc -l 12345

এখন আপনার ওয়েব ব্রাউজারে http: // লোকালহোস্ট: 12345 / দেখুন এবং আপনার এনসি সেশনে আপনার ব্রাউজারের GET / HTTP/1.1অনুরোধটি দেখতে পাওয়া উচিত । এই মুহুর্তে আপনি কিছু টাইপ করতে পারেন এবং টিপতে পারেন Ctrl-Dএবং এটি আপনার ব্রাউজারে সরল পাঠ্যে প্রদর্শিত হবে (আপনি যদি এইচটিএমএল দেখাতে চান তবে আপনাকে HTML কোড অনুসারে যথাযথ HTTP প্রোটোকল প্রতিক্রিয়াটি ফেরত পাঠাতে হবে) back

কখনও কখনও, প্রোগ্রামগুলি যা মূলত HTTP এর মতো একটি প্রোটোকল কথা বলে সেগুলি অন্য পোর্টগুলির সাথে সংযোগ করতে পারে যা ভিন্ন প্রোটোকলের জন্য বোঝানো হয়। আপনি সাধারণত কোনও জিইউআই ব্রাউজারে এটি আর করতে পারবেন না কারণ তারা কিছু বন্দরগুলির সাথে সংযোগ স্থাপন থেকে বিরত রেখেছে, তবে আপনি যদি পোর্ট 25 (মেল প্রেরণের জন্য এসএমটিপি) সাথে সংযোগ স্থাপনের জন্য কার্লের মতো কোনও প্রোগ্রাম ব্যবহার করেন তবে আপনি সম্ভবত দু'একটি দেখতে পাবেন of প্রোটোকল ভঙ্গ সম্পর্কে ত্রুটি।

$ curl yourispsmtpserverhost.com:25
220 yourispsmtpserverhost.com ESMTP Postfix
221 2.7.0 Error: I can break rules, too. Goodbye.

এটি ঘটে কারণ কার্ল সাধারণত HTTP প্রোটোকল কথা বলে তাই এটি কোনও টিসিপি হ্যান্ডশেক স্থাপনের পরে এটি ডেটা প্রেরণ শুরু করে:

GET / HTTP/1.1
Host: yourispsmtpserverhost.com:25
User-agent: curl

তবে এসএমটিপি সার্ভারটি যা প্রত্যাশা করছে তা হ'ল এসএমটিপি, যা আরও এরকম:

HELO myhomecomputername.local

কোন পর্যায়ে সার্ভারটি তার শনাক্তকরণ লাইনটি আবার পাঠায়:

250 yourispsmtpserverhost.com

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


curl-vওএস এক্স
ভার্বোজ

6

telnet এমন একটি সরঞ্জাম যা কোনও টিসিপি পোর্টের সাথে সংযোগ করতে পারে।

ডিফল্টরূপে, এটি টেলনেট পোর্টের সাথে সংযোগ স্থাপন করে (23), তবে আপনি এটি HTTP পোর্ট (80) বা smtp পোর্ট (25) বা তার পরিবর্তে যাই হোক না কেন সংযোগ করতে বলতে পারেন।

যদিও আপনাকে জানতে হবে যে দূরবর্তী সার্ভারটি সেই বন্দরে যে প্রোটোকলটি শুনছে, কীভাবে "কথা বলতে"।

উদাহরণস্বরূপ, আপনি যদি কোনও ওয়েবসাইটের শিরোনাম পেতে চান (দোষীদের সুরক্ষার জন্য ডোমেনের নাম ইত্যাদি পরিবর্তন করা হয়েছে):

$ telnet www.example.com 80
Trying xxx.xxx.xxx.xxx...
Connected to www.example.com.
Escape character is '^]'.
HEAD http://www.example.com/ HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 30 Oct 2015 09:28:58 GMT
Server: Apache/2.4.17 (Debian)
Last-Modified: Sun, 14 Nov 2010 06:30:26 GMT
ETag: "843-494fd75830480"
Accept-Ranges: bytes
Content-Length: 2115
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Connection closed by foreign host.

HEADলাইন আমি কি সংযোগ টাইপ হয়। মনে রাখবেন যে আপনার শিরোনাম বা জিইটি বা যে কোনও অনুরোধের সমাপ্তি নির্দেশ করতে HTTP প্রোটোকলের আপনাকে ফাঁকা লাইন প্রেরণ করতে হবে। হেড অনুরোধের সাথে সাথেই ফাঁকা লাইন।


3

উভয় প্রোটোকলের প্রাথমিক আলাপচারিতায় পাঠ্য-কমান্ডগুলি ব্যবহার করা হয়, যাতে আপনি সংযুক্ত হয়ে কমান্ড সন্নিবেশ করতে পারেন। এটি অন্যান্য পুরানো প্রোটোকল যেমন এসএমটিপি-র ক্ষেত্রে সত্য , এবং টেলনেট দীর্ঘদিন ধরে সম্পর্কিত পরিষেবাগুলিতে সংযোগ সমস্যা সমাধানের জন্য ব্যবহৃত হয়ে আসছে ।

উদাহরণ স্বরূপ

প্রোটোকলগুলি যে বন্দরে তারা যোগাযোগ করে তার থেকে পৃথক। প্রায় সমস্ত বাস্তবায়ন যে কোনও বন্দরে শোনার জন্য কনফিগার করা যেতে পারে।

কিছু প্রোটোকল (যেমন এইচটিটিপিএস) আলোচনার জন্য পাঠ্য কমান্ড ব্যবহার করে না। আপনি কিন্তু (সাধারণত) সংযোগ করতে পারেন বন্দর যার উপর সার্ভার শোনা, কিন্তু দরকারী কিছুই করতে।


3

আপনার কিছু বোঝাপড়া সঠিক এবং কিছু সঠিক নয়। পোর্ট 80 সাধারণত HTTP- র জন্য সংরক্ষিত তবে এটি কেবল একটি সম্মেলন; যে কোনও প্রোগ্রাম সিস্টেমের যে কোনও উন্মুক্ত বন্দরে শুনতে পারে। আপনি যে সিস্টেমে সংযোগ করছেন তার 80 পোর্টে যদি কোনও ওয়েবসারর শুনছে তবে আপনাকে এটির সাথে যোগাযোগ করার জন্য এইচটিটিপি ব্যবহার করতে হবে।

telnetএটি কোনও প্রোটোকল নয়, এটি এমন একটি প্রোগ্রাম যা আপনাকে কোনও বন্দরের যে কোনও হোস্টকে কাঁচা পাঠ্য পাঠাতে দেয়। দূরবর্তী হোস্টের কোন প্রোগ্রাম এটির সাথে সংযোগ স্থাপন করার কোনও ধারণা নেই; প্যাকেটগুলি এতে প্রেরণ করা হচ্ছে তা কেবল এটিই দেখতে পাচ্ছে। যে প্রোগ্রাম এমন প্যাকেট প্রেরণ করে যা প্রোটোকলের সাথে মেনে চলে যা দূরবর্তী হোস্ট আশা করে যে কাজ করবে, তাই আপনি telnetকোনও পাঠ্য-ভিত্তিক প্রোটোকলের মাধ্যমে যোগাযোগ করতে ব্যবহার করতে পারেন ।

আপনি এর লাইনে কিছু প্রেরণ করেছেন GET /path/to/a/file HTTP/1.1যা একটি বৈধ HTTP 1.1 কমান্ড এবং এটি একটি অনুরোধ হিসাবে অনুরূপ দেখাচ্ছে যা একটি ওয়েব ব্রাউজার দ্বারা প্রেরণ করা হবে, তাই এটি ঠিক কাজ করে।


1
telnet হয় একটি প্রোটোকল বোঝায় যা RFC 854 । এটি ঠিক যে সাধারণ telnetক্লায়েন্টরা telnetসংযোগের সময় প্রোটোকলটি ব্যবহার করার চেষ্টা করে না tcp/21। ম্যান পৃষ্ঠা থেকে: "টেলনেট পোর্ট ব্যতীত অন্য বন্দরগুলির সাথে সংযোগ করার সময়, টেলনেট টেলনেট প্রোটোকল আলোচনার চেষ্টা করে না This এটি এমন কোনও পরিষেবাগুলিতে সংযোগ স্থাপন সম্ভব করে যা কোনও জগাখিচুড়ি না করে টেলনেট প্রোটোকল সমর্থন করে না Prot প্রোটোকল আলোচনার মাধ্যমে বাধ্য করা যেতে পারে পোর্ট নম্বরটির আগে একটি ড্যাশ রাখছি "
ব্যবহারকারী 4556274
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.