สงสัยว่าจะตรวจสอบการเชื่อมต่อระหว่างจุดสิ้นสุดของเครือข่ายสองจุดได้อย่างไร
หนึ่งในงานทั่วไปสำหรับดูแลระบบคือการตรวจสอบการเชื่อมต่อเพื่อแก้ไขปัญหาเครือข่าย อาจเป็นอะไรก็ได้ เช่น แอปพลิเคชันไม่สามารถเชื่อมต่อกับบริการแบ็กเอนด์ ไม่สามารถดึงข้อมูลจาก URL ภายนอก ตรวจสอบว่าโฟลว์เปิดอยู่หรือไม่ เป็นต้น
ไม่ว่ามันจะเป็นอะไรก็ตาม ยูทิลิตี/คำสั่งต่อไปนี้จะช่วยคุณได้ มีการทดสอบบน CentOS และฉันไม่เห็นเหตุผลที่จะไม่ทำงานกับ Linux distro อื่น
มาสำรวจกัน…
เทลเน็ต
หนึ่งในคำสั่งที่ใช้กันอย่างแพร่หลายในการทดสอบการเชื่อมต่อที่สำคัญระหว่างเซิร์ฟเวอร์ เซิร์ฟเวอร์กับ IP ของอุปกรณ์เครือข่ายอื่น ไวยากรณ์สำหรับคำสั่งนั้นง่าย
telnet $destinationIP $PORT
สมมติว่าคุณต้องการทดสอบว่าคุณสามารถเชื่อมต่อกับพอร์ต 8080 บนที่อยู่ IP 10.0.0.1 ได้หรือไม่ จากนั้นคำสั่งจะเป็น
telnet 10.0.0.1 8080
หากไม่มีปัญหาในการเชื่อมต่อ คุณจะเห็นข้อความเชื่อมต่อ
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
หมายเหตุ: หากคุณไม่พบคำสั่งในขณะที่เรียกใช้ telnet คุณต้องติดตั้ง telnet ตามที่อธิบายไว้ที่นี่
ในสถานการณ์ส่วนใหญ่ telnet ควรช่วย อย่างไรก็ตาม หากคุณต้องการตัวเลือกอื่น ต่อไปนี้คือทางเลือกอื่นของ telnet
nct หรือ nc
Ncat (หรือที่เรียกว่า nc) เป็นยูทิลิตี้เครือข่ายที่มีประสิทธิภาพพร้อมคุณสมบัติมากมาย เช่น ผูกและยอมรับการเชื่อมต่อ ดำเนินการคำสั่งจากระยะไกล เขียนและอ่านข้อมูล ฯลฯ ใช้งานได้บน IPv4 และ IPv6 ทั้งคู่
ในการทดสอบอย่างง่ายเพื่อตรวจสอบว่าพอร์ตเปิดอยู่หรือไม่ ให้ดำเนินการดังต่อไปนี้
nc -vz $HOSTNAME $PORT
ลองมาดูตัวอย่างการทดสอบพอร์ต 443 บน admintrick.com.com
[[email protected] ~]# nc -vz admintrick.com.com 443 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 104.25.133.107:443. Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds. [[email protected] ~]#
ตามที่กล่าวไว้ คุณสามารถใช้ nc เพื่อผูกการเชื่อมต่อเพื่อฟังพอร์ตใดพอร์ตหนึ่งได้ สิ่งนี้มีประโยชน์เมื่อคุณไม่มีบริการจริงทำงานอยู่ แต่ต้องการให้มีการเชื่อมต่ออยู่
ในการเริ่มฟังพอร์ต:
nc -l $PORTNUMBER
มันจะผูกพอร์ตกับหมายเลขที่กำหนด
หากไม่ได้ติดตั้ง ncat คุณสามารถทำได้ด้วย yum install nc บนเซิร์ฟเวอร์ CentOS/RHEL
ว้าว
wget เป็นคำสั่งที่มีประโยชน์ในการดาวน์โหลด/ทดสอบ HTTP, HTTPS และ FTP หากคุณทำงานเป็นวิศวกรเว็บหรือต้องจัดการกับปัญหาเกี่ยวกับเว็บอยู่บ่อยครั้ง wget คือเพื่อนของคุณ การทดสอบโดยใช้ wget นั้นตรงไปตรงมา
wget $URL
นี่คือตัวอย่างการทดสอบ tools.admintrick.com.com
[[email protected] ~]# wget tools.admintrick.com.com --2019-05-09 20:40:01-- http://tools.admintrick.com.com/ Resolving tools.admintrick.com.com (tools.admintrick.com.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.admintrick.com.com (tools.admintrick.com.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.admintrick.com.com/ [following] --2019-05-09 20:40:01-- https://tools.admintrick.com.com/ Connecting to tools.admintrick.com.com (tools.admintrick.com.com)|104.25.134.107|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.2' [ <=> ] 15,139 --.-K/s in 0.001s 2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139] [[email protected] ~]#
หากแสดงการเชื่อมต่อแสดงว่าไม่มีปัญหาการเชื่อมต่อ
ลองดูที่นี่เพื่อดูตัวอย่างคำสั่ง wget ที่ใช้บ่อย
ขด
curl เป็นเครื่องมืออเนกประสงค์
คุณรู้หรือไม่ว่าคุณสามารถ telnet ไปยังพอร์ตโดยใช้ curl?
ตอนนี้คุณรู้แล้ว
curl -v telnet://$IP:$PORT
ต่อไปนี้เป็นตัวอย่างการทำงาน
[[email protected] ~]# curl -v telnet://chandan.io:443 * About to connect() to chandan.io port 443 (#0) * Trying 104.31.68.106... * Connected to chandan.io (104.31.68.106) port 443 (#0)
และเมื่อไม่มีปัญหาพอร์ตการฟังหรือไฟร์วอลล์ คุณจะเห็นการพยายาม…
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
คุณสามารถใช้ curl เพื่อดาวน์โหลดข้อมูล รองรับหลายโปรโตคอล – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER เป็นต้น
แผนที่
เครื่องมือยอดนิยมที่มีคุณสมบัติมากมาย บ่อยครั้งสิ่งนี้ถือเป็นเครื่องมือรักษาความปลอดภัย แผนที่ ให้คุณทดสอบ IP/พอร์ตเดียวหรือในช่วง
เพื่อทดสอบพอร์ตเดียว
nmap -p $PORT $IP
ตัวอย่างการทดสอบพอร์ต 443 บน siterelic.com
[[email protected] ~]# nmap -p 443 siterelic.com Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC Nmap scan report for siterelic.com (104.27.174.50) Host is up (0.0079s latency). Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32 PORT STATE SERVICE 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds [[email protected] ~]#
ดูที่คอลัมน์สถานะ หากคุณเห็นเปิดอยู่แสดงว่าการเชื่อมต่อไม่เป็นไร และถ้าสถานะถูกกรองนั่นหมายความว่าไม่มีการเชื่อมต่ออยู่
ปิง
หนึ่งในคำสั่งที่ใช้กันอย่างแพร่หลายคือการตรวจสอบว่าโฮสต์ระยะไกลตอบสนองต่อ ICMP ECHO_REQUEST หรือไม่ โปรดทราบว่าการดำเนินการนี้อาจไม่ให้ผลลัพธ์ที่ถูกต้องเมื่อ ICMP ถูกบล็อกที่ไฟร์วอลล์ของเครือข่ายระยะไกล หากไม่เป็นเช่นนั้น คุณสามารถ ping ไปยังจุดสิ้นสุดของเครือข่าย IPv4 หรือ IPv4 ได้ดังต่อไปนี้
ping $ipaddress ping $url
ตัวอย่างเช่น ผลสำเร็จของ admintrick.com.com
[email protected] ~ % ping admintrick.com.com PING admintrick.com.com (104.27.119.115): 56 data bytes 64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms 64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
ตัวอย่างเช่น ผลความล้มเหลวของ IP ภายใน
[email protected] ~ % ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1
หากปลายทางรองรับ IPv6 คุณสามารถใช้คำสั่ง ping6 ตามด้านล่าง
[email protected] ~ % ping6 admintrick.com.com PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673 16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms 16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms
หากคุณต้องการทำการ ping จากระยะไกลผ่านอินเทอร์เน็ต คุณสามารถใช้เครื่องมือ ping ออนไลน์ได้
บทสรุป
telnet กำลังเลิกใช้งานใน Linux เวอร์ชันล่าสุด ขอบคุณทางเลือก telnet ข้างต้น
หากคุณยังใหม่กับ Linux และต้องการเรียนรู้ ลองดูสิ่งนี้ หลักสูตร Udemy.