เรียนรู้คำสั่ง Telnet เพื่อทดสอบและแก้ไขปัญหาการเชื่อมต่อ

เผยแพร่แล้ว: 2022-11-22

Telnet เป็นโปรโตคอลเครือข่ายยอดนิยมที่ให้คุณเชื่อมต่อกับคอมพิวเตอร์ระยะไกลได้อย่างแท้จริง เป็นโปรโตคอลเก่าที่พัฒนาขึ้นในปี 1969

ปัจจุบัน SSH (Secure Shell) เข้ามาแทนที่ Telnet SSH ยังเป็นโปรโตคอลการสื่อสารเครือข่ายที่ช่วยให้ผู้ดูแลระบบเครือข่ายและระบบเชื่อมต่อกับคอมพิวเตอร์ระยะไกลได้อย่างปลอดภัย

สำหรับ Telnet ตอนนี้ส่วนใหญ่ใช้เพื่อแก้ไขปัญหาและทดสอบปัญหาการเชื่อมต่อ การเรียนรู้คำสั่ง Telnet สามารถช่วยให้คุณจัดการเครือข่ายได้ดีขึ้น

ในบทความนี้ เราจะพิจารณาคำสั่ง telnet ให้ละเอียดยิ่งขึ้น รวมถึงเรียนรู้วิธีการทำงานและวิธีแก้ไขปัญหาการเชื่อมต่อ มาเริ่มกันเลย.

เทลเน็ตคืออะไร?

Telnet เป็นโปรโตคอลเครือข่ายที่ย่อมาจาก Tel etype Net work มีอินเทอร์เฟซบรรทัดคำสั่ง/ล่ามเพื่อสื่อสารกับเซิร์ฟเวอร์ระยะไกล ผู้ดูแลระบบและเครือข่ายใช้การสื่อสารแบบเทอร์มินัลถึงเทอร์มินัลของ Telnet เพื่อรับการควบคุมระยะไกลและดำเนินการต่างๆ เช่น การตั้งค่าอุปกรณ์เริ่มต้น

เพื่ออำนวยความสะดวกโปรโตคอล Telnet คุณต้องมี Telnet Client ไคลเอ็นต์ช่วยให้ผู้ใช้สามารถลงชื่อเข้าใช้และใช้แอปพลิเคชันบนระบบระยะไกลผ่าน TCP/IP ไคลเอนต์ Telnet ใช้แอปพลิเคชันเซิร์ฟเวอร์ Telnet เพื่อดำเนินการ นอกจากนี้ Telnet Client ยังใช้งานได้บนระบบปฏิบัติการสมัยใหม่ทั้งหมด เช่น Windows, Linux และ macOS

หมายเหตุ: ในบทความ เมื่อเรากล่าวถึง “Telnet” จะหมายถึง “Telnet Client” หากกล่าวถึงเป็นอย่างอื่น

Telnet ปลอดภัยหรือไม่?

ในช่วงที่ก่อตั้งในปี 1969 ความปลอดภัยไม่ใช่ประเด็นหลักในการปฏิบัติงานด้านเครือข่าย นั่นเป็นเหตุผลที่ Telnet ไม่ได้ใช้การเข้ารหัสใดๆ เนื่องจากไม่ปลอดภัย จึงไม่แนะนำให้เชื่อมต่อกับไคลเอนต์ระยะไกลผ่านเครือข่าย TCP/IP หากคุณทำเช่นนั้น แสดงว่าคุณเผชิญกับแฮ็กเกอร์ที่สามารถขัดขวางข้อมูลที่ไม่ได้เข้ารหัส SSH เป็นโปรโตคอลทางเลือกที่ยอดเยี่ยมที่ให้วิธีที่ปลอดภัยในการเชื่อมต่อกับเซิร์ฟเวอร์จากระยะไกล

เทลเน็ตทำงานอย่างไร?

โปรโตคอล Telnet ทำงานตามภาพด้านล่าง

อินเทอร์เน็ต
Telnet ทำงานอย่างไร

Telnet เป็นการสื่อสารที่เน้นข้อความซึ่งสร้างระบบการสื่อสารแบบโต้ตอบแบบสองทิศทาง (โปรโตคอลไคลเอ็นต์เซิร์ฟเวอร์) ใช้การเชื่อมต่อแปดไบต์เพื่อทำการส่ง นอกจากนี้ คุณต้องมีแป้นพิมพ์และหน้าจอเชื่อมต่อกับเทอร์มินัลเพื่อใช้ Telnet

คุณป้อนคำสั่งจากเทอร์มินัลเพื่อเชื่อมต่อกับคอมพิวเตอร์ระยะไกล เมื่อเชื่อมต่อแล้ว Telnet ให้คุณควบคุมเซิร์ฟเวอร์ รวมถึงไฟล์และกระบวนการต่างๆ

ในการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล ผู้ใช้ควรป้อน "Telnet" ในพรอมต์คำสั่ง ไวยากรณ์คือ:

 telnet hostname port

เมื่อเชื่อมต่อสำเร็จแล้ว คุณสามารถใช้ Telnet prompt เพื่อป้อนคำสั่ง Telnet เพิ่มเติม

สิ่งต่าง ๆ ที่คุณสามารถใช้ Telnet ได้คือ:

  • ตรวจสอบพอร์ตที่เปิดอยู่
  • แก้ไขไฟล์ เรียกใช้โปรแกรม
  • กำหนดค่าอุปกรณ์เครือข่าย เช่น สวิตช์ เราเตอร์ ฯลฯ

หากต้องการสิ้นสุดเซสชัน คุณต้องพิมพ์ “Telnet” ในข้อความแจ้ง Telnet

วิธีเปิดใช้งาน Telnet Client ใน Windows/Linux และ macOS

ไคลเอนต์ Telnet มีอยู่ในแพลตฟอร์มและระบบปฏิบัติการหลักทั้งหมด อย่างไรก็ตาม คุณต้องติดตั้งหรือเปิดใช้งานก่อนจึงจะสามารถใช้งานได้

#1. หน้าต่าง

หากคุณใช้ Windows 7 ขึ้นไป (8, 10, 11) หรือ Windows Vista คุณสามารถเปิดใช้งานไคลเอนต์ Telnet ได้โดยทำตามขั้นตอนด้านล่าง:

  • ไปที่เมนูเริ่มแล้วค้นหาแผงควบคุม คุณยังสามารถเปิดแผงควบคุมได้โดยกด Win + R แล้วพิมพ์ “control” ควรเปิดแผงควบคุม
  • ตอนนี้เลือก “โปรแกรม” > “โปรแกรมและคุณสมบัติ”
  • เลือก “เปิดหรือปิดคุณสมบัติ Windows จากบานหน้าต่างด้านซ้าย”
  • ตอนนี้ทำเครื่องหมายที่ช่องถัดจาก "Telnet Client" แล้วกด "ตกลง"
  • ตอนนี้ให้กด "ปิด" เมื่อ Windows เปิดใช้งานและแสดงข้อความ "Windows เสร็จสิ้นการเปลี่ยนแปลงที่ร้องขอ"
telnet-client-enable-windows
การเปิดใช้งาน Telnet ใน Windows

หมายเหตุ: คุณสามารถเริ่มใช้ Telnet Client ได้ทันทีโดยไม่ต้องรีสตาร์ทคอมพิวเตอร์

#2. ลีนุกซ์

เช่นเดียวกับ Windows Linux ไม่ได้ติดตั้ง Telnet ไว้ล่วงหน้าเช่นกัน

ในการติดตั้ง Telnet ใน Ubuntu คุณต้องใช้คำสั่งต่อไปนี้

 # sudo apt-get install telnet

หมายเหตุ: คำสั่งจะแตกต่างกันไปตาม distro Linux ของคุณ

#3. แมคโอเอส

MacOS ยังรองรับ Telnet ในการติดตั้ง คุณต้องใช้ Homebrew หากไม่ได้ติดตั้ง Homebrew ไว้ล่วงหน้า คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ระบบจะขอให้คุณป้อนรหัสผ่านผู้ดูแลระบบเพื่ออนุญาตการติดตั้ง

เมื่อติดตั้ง Homebrew แล้ว ให้พิมพ์คำสั่งต่อไปนี้เพื่อติดตั้ง Telnet บน MacOS

 brew install telnet

การใช้ Telnet เพื่อทดสอบและแก้ไขปัญหาการเชื่อมต่อเครือข่าย

แม้ว่า Telnet จะไม่เหมาะสำหรับการเชื่อมต่อระยะไกล แต่ก็ยังมีประโยชน์สำหรับการทดสอบและแก้ไขปัญหาการเชื่อมต่อเครือข่าย

ก่อนที่เราจะดำเนินการต่อ มาดูไวยากรณ์ของ Telnet กันก่อน

 telnet <server/host IP address> <port>

ที่นี่ที่ อยู่ IP ของเซิร์ฟเวอร์/โฮสต์ คือเซิร์ฟเวอร์ที่คุณต้องการเชื่อมต่อด้วย พอร์ต คือหมายเลขพอร์ต TCP

ตัวอย่างเช่น หากคุณต้องการเชื่อมต่อกับที่อยู่ IP ของเซิร์ฟเวอร์ example.com ด้วยพอร์ต 80 คุณต้องพิมพ์คำสั่งต่อไปนี้

 telnet example.com 80

ซึ่งหมายความว่าคุณต้องทราบที่อยู่/ชื่อ IP ของเซิร์ฟเวอร์ระยะไกลและหมายเลขพอร์ตเพื่อแก้ไขปัญหาล่วงหน้า

มาเริ่มกันเลย.

การแก้ไขปัญหาเว็บเซิร์ฟเวอร์

Telnet มีวิธีง่ายๆ ในการทดสอบการเชื่อมต่อเซิร์ฟเวอร์ สิ่งที่คุณต้องทำคือเชื่อมต่อกับเซิร์ฟเวอร์/ที่อยู่ IP ของโฮสต์และพอร์ตที่ยอมรับการเชื่อมต่อ

ตัวอย่างเช่น หากคุณกำลังเชื่อมต่อกับ 23.45.75.22 ที่พอร์ต 532 คุณต้องเรียกใช้คำสั่งต่อไปนี้

 telnet 23.45.75.22 532

จากที่นี่ มีสองสิ่งที่อาจเกิดขึ้นได้:

  1. การเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จ มันจะแสดงข้อความ “เชื่อมต่อกับเซิร์ฟเวอร์แล้ว” หรือข้อความยืนยันอื่นๆ หรือรอการป้อนข้อมูลเพิ่มเติม
  2. การเชื่อมต่อกับเซิร์ฟเวอร์ไม่สำเร็จ ในกรณีนั้น คุณจะได้รับข้อความเช่น “การเชื่อมต่อล้มเหลว” หรือ “การเชื่อมต่อถูกปฏิเสธ”
  3. Telnet ไม่ส่งคืนข้อความใด ๆ

มีหลายสาเหตุที่ทำให้ Telnet พยายามเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลล้มเหลว นอกจากนี้ หาก Telnet ไม่ส่งคืนข้อความแสดงข้อผิดพลาด อาจเป็นเพราะไฟร์วอลล์หรือโปรแกรมป้องกันไวรัสบล็อกการเชื่อมต่อที่ปลายทางของคุณหรือเซิร์ฟเวอร์

หากเราเชื่อมต่อกับ geefklare.com ที่พอร์ต 80 คุณจะเห็นการเชื่อมต่อทันทีขณะที่รอคำสั่งเพิ่มเติม

 telnet geefklare.com 80 Connected to geekflare.com. Escape character is '^]'.

ตอนนี้ป้อนคำสั่งต่อไปนี้

 GET / HTTP/1.1 Host: geekflare.com

มันจะส่งคืนสิ่งต่อไปนี้:

 HTTP/1.1 200 OK Date: Fri, 18 Nov 2022 04:40:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 X-Frame-Options: SAMEORIGIN Referrer-Policy: same-origin Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 [Additional server output follows]

ตอนนี้ ดูความพยายามที่ล้มเหลวในการเชื่อมต่อกับเซิร์ฟเวอร์

 telnet 23.45.75.222 532 Connecting To 23.45.75.222...Could not open a connection to the host on port 532: Connect failed

ตรวจสอบว่าพอร์ตเปิดอยู่หรือไม่

หากเซิร์ฟเวอร์สามารถเข้าถึงได้จากระยะไกลด้วย Telnet คุณสามารถใช้เพื่อตรวจสอบว่าพอร์ตเปิดอยู่หรือไม่

ในการตรวจสอบว่าพอร์ตบนเซิร์ฟเวอร์ของคุณเปิดอยู่หรือไม่ คุณต้องใช้คำสั่งต่อไปนี้

 telnet <server IP address> <port>

ตัวอย่างเช่น ที่อยู่ IP ของเซิร์ฟเวอร์ของคุณคือ 23.45.47.53 และพอร์ตที่คุณต้องการตรวจสอบคือ 532

 telnet 23.45.47.53 532

หากคำสั่งสำเร็จ คุณจะเห็นหน้าจอว่างซึ่งหมายถึงพอร์ตเปิดอยู่ หากขึ้นว่า “กำลังเชื่อมต่อ..” แล้วแสดงข้อความแสดงข้อผิดพลาด แสดงว่าพอร์ตไม่ได้เปิดอยู่

 Connection to 23.45.47.53:532 - fail Error #110 (Connection timed out)

การแก้ไขปัญหาเซิร์ฟเวอร์เมล SMTP

Simple Mail Transfer Protocol (SMTP) จัดการการสื่อสารระหว่างเมลเซิร์ฟเวอร์

คุณสามารถแก้ไขปัญหาเซิร์ฟเวอร์ SMTP ด้วย Telnet เพื่อดูว่าพวกเขากำลังรับและส่งข้อความหรือไม่ คุณส่งคำขอข้อความด้วยตนเองไปยังเซิร์ฟเวอร์ SMTP หากทุกอย่างเรียบร้อยดี คุณจะได้รับคำตอบ

Telnet ให้คุณทดสอบการเชื่อมต่อ STMP ได้สองวิธี:

  1. ทดสอบการไหลของจดหมายจากอินเทอร์เน็ตไปยังเซิร์ฟเวอร์จดหมายของคุณ
  2. ทดสอบการรับส่งอีเมลจากเซิร์ฟเวอร์อีเมลของคุณไปยังเซิร์ฟเวอร์อื่น

หากต้องการเรียกใช้การแลกเปลี่ยนตัวอย่าง ให้พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ

 telnet mail.geekflare.com 25 Trying 192.168.0.68… Connected to mail.geekflare.com Escape character is '^]'. 220-mail.geekflare.com ESMTP Exim 4.7 220-We do not authorize the use of this system to 220 transport unsolicited and/or bulk e-mail.
 EHLO mail.geekflare.com 250-geekflare.com Hello geekflare.com [192.168.3.200] 250-AUTH PLAIN LOGIN QUIT

ที่นี่ คำสั่งอื่นอีกสองคำสั่งที่ผู้ใช้พิมพ์คือ:

  1. EHLO mail.geekflare.com
  2. เลิก

คำสั่ง ECLO ระบุชื่อโดเมนก่อนใช้คำสั่ง MAIL FROM คำสั่ง QUIT ออกจากเซสชัน Telnet

หากคุณต้องการคำสั่งขั้นสูงเพิ่มเติม โปรดดูบทความนี้เกี่ยวกับการใช้ Telnet เพื่อทดสอบการสื่อสาร SMTP บนเซิร์ฟเวอร์ Exchange

การแก้ไขปัญหาเซิร์ฟเวอร์ FTP

เช่นเดียวกับ SMTP และเว็บเซิร์ฟเวอร์ คุณสามารถแก้ปัญหาเซิร์ฟเวอร์ FTP ได้ สิ่งที่คุณต้องทำคือป้อนที่อยู่ IP ของเซิร์ฟเวอร์ FTP และเชื่อมต่อกับพอร์ต 21

 telnet ftp.geekflare.com 21

ตอนนี้คุณเชื่อมต่อกับเซิร์ฟเวอร์แล้วหากความพยายามสำเร็จ มิฉะนั้น คุณจะเห็นข้อความแสดงข้อผิดพลาด

 Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)

การแก้ไขปัญหา SSH

SSH คือการเชื่อมต่อที่ปลอดภัยที่ทันสมัยและแทนที่ Telnet คุณสามารถใช้ Telnet เพื่อดูว่าเซิร์ฟเวอร์ใช้ SSH หรือไม่

ในการทำเช่นนั้น ใช้คำสั่ง Telnet กับที่อยู่ IP ของเซิร์ฟเวอร์และพอร์ต 22

 telnet geekflare.com 22 Trying 192.168.0.62… Connected to geekflare.com. Escape character is '^]'. SSH-2.0-OpenSSH_5.3

คำสุดท้าย

Telnet เป็นเครื่องมือที่มีประโยชน์ในยุคปัจจุบัน ช่วยให้คุณแก้ไขปัญหาการเชื่อมต่อเครือข่ายได้สำเร็จโดยไม่ต้องพึ่งพาเครื่องมือหรือบรรทัดคำสั่งที่ซับซ้อนมากขึ้น เมื่อใช้ Telnet คุณสามารถตรวจสอบว่าคุณสามารถเข้าถึงเว็บเซิร์ฟเวอร์ได้หรือไม่ ดูว่าพอร์ตเปิดอยู่หรือไม่ และแก้ไขปัญหา SSH และ FTP

คุณสามารถตรวจสอบบทความนี้เกี่ยวกับวิธีแก้ไขข้อผิดพลาด 'ไม่พบคำสั่ง telnet'