14 คำสั่งเครือข่าย Linux ที่มีประโยชน์

เผยแพร่แล้ว: 2015-02-15

การกำหนดค่า ตรวจสอบ และรักษาความปลอดภัยเครือข่ายเป็นส่วนสำคัญของงานของ Sysadmin เมื่อพูดถึงการจัดการเครือข่าย Linux มีคำสั่งและยูทิลิตี้มากมายให้ใช้งาน

ในบางครั้งระบบเครือข่ายล้มเหลว คุณในฐานะผู้ดูแลระบบจำเป็นต้องวินิจฉัยและแก้ไขปัญหา การตรวจสอบช่วยในการตรวจจับปัญหาและแก้ไขก่อนที่สิ่งต่าง ๆ จะเกิดขึ้น การตรวจสอบความปลอดภัยและประสิทธิภาพยังเป็นส่วนสำคัญของกิจกรรมของผู้ดูแลระบบ

ที่นี่เราจะพูดถึงคำสั่งที่ใช้กันทั่วไปในการจัดการเครือข่าย Linux

ไอพี

แพ็คเกจ iproute2 ประกอบด้วยคำสั่ง IP ซึ่งใช้สำหรับการกำหนดค่าเครือข่ายและการกำหนดเส้นทาง สิ่งนี้จะแทนที่ ifconfig และคำสั่ง route แบบดั้งเดิม

ip ใช้อาร์กิวเมนต์ที่สองที่ระบุวัตถุที่คุณต้องการดำเนินการคำสั่งและการกระทำ เช่น เพิ่ม ลบ หรือแสดง

ลิงค์ไอพี

ip link ใช้สำหรับกำหนดค่า เพิ่ม และลบอินเทอร์เฟซเครือข่าย ใช้คำสั่ง ip link show เพื่อแสดงอินเตอร์เฟสเครือข่ายทั้งหมดบนระบบ :

 $ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 02:35:97:08:6b:2a brd ff:ff:ff:ff:ff:ff 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:6f:60:ff brd ff:ff:ff:ff:ff:ff

คุณสามารถดูหน้าคนสำหรับ ip link ด้วย:

 $ man ip-link

ที่อยู่ IP

ใช้คำสั่งที่อยู่ IP เพื่อแสดงที่อยู่ ผูกที่อยู่ใหม่หรือลบที่อยู่เก่า คำสั่งที่อยู่ IP ของ man page มีชื่อว่า ip-address

ตัวอย่างเช่น คำสั่งต่อไปนี้แสดงที่อยู่ IP ที่กำหนดให้กับอินเทอร์เฟซเครือข่าย enp0s8:

 ip address show dev enp0s8 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:6f:60:ff brd ff:ff:ff:ff:ff:ff inet 10.0.0.51/24 brd 10.0.0.255 scope global enp0s8 ...

เส้นทางไอพี

ใช้เส้นทาง IP เพื่อพิมพ์หรือแสดงตารางเส้นทาง คำสั่งต่อไปนี้แสดงเนื้อหาของตารางเส้นทาง:

 $ ip route show default via 10.0.2.2 dev enp0s3 10.0.0.0/24 dev enp0s8 proto kernel scope link src 10.0.0.51 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15

แผนที่

ในขณะที่ Nmap ถูกใช้ในภาพยนตร์หลายเรื่อง The Matrix Reloaded ( Wikipedia , IMDB , Amazon ) เปลี่ยน Nmap ให้กลายเป็นดาราภาพยนตร์!

Nmap (“Network Mapper”) เป็นโปรแกรมอรรถประโยชน์ที่มีประสิทธิภาพซึ่งใช้สำหรับการค้นหาเครือข่าย การตรวจสอบความปลอดภัย และการดูแลระบบ ผู้ดูแลระบบหลายคนใช้มันเพื่อระบุว่าระบบใดออนไลน์อยู่ และยังใช้เพื่อตรวจหาระบบปฏิบัติการและตรวจหาบริการอีกด้วย

การสแกน Nmap เริ่มต้นจะแสดงพอร์ต สถานะ (เปิด/ปิด) และโปรโตคอล มันส่งแพ็คเก็ตไปยังพอร์ตทั่วไป 1,000 พอร์ตและตรวจสอบการตอบสนอง

 $ nmap 10.0.0.50 Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-07 10:32 UTC Nmap scan report for 10.0.0.50 Host is up (0.00077s latency). Not shown: 997 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3306/tcp closed mysql

ในการตรวจสอบว่าโฮสต์ใดในเครือข่ายของคุณใช้งานได้:

 $ nmap -sn 10.0.0.0/24 Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-07 11:59 UTC Nmap scan report for 10.0.0.1 Host is up (0.00084s latency). Nmap scan report for 10.0.0.50 Host is up (0.0021s latency). Nmap scan report for 10.0.0.51 Host is up (0.00026s latency). Nmap done: 256 IP addresses (3 hosts up) scanned in 2.61 seconds

ใช้แฟล็ก -O เพื่อระบุว่าโฮสต์กำลังรันระบบปฏิบัติการใด

 $ sudo nmap 10.0.0.50 -O Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-07 13:44 UTC Nmap scan report for 10.0.0.50 Host is up (0.00053s latency). ... Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.10 - 3.19 Network Distance: 1 hop OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 21.95 seconds

คำเตือน: ไม่มีใครชื่นชมระบบของพวกเขาที่ถูกสแกนผ่านอินเทอร์เน็ต ดังนั้นก่อนดำเนินการให้ขออนุญาต

คุณยังสามารถใช้ Nmap บน Windows ได้ โปรดดูคู่มือการติดตั้งนี้

ปิง

ใช้ ping เพื่อดูว่าโฮสต์ยังมีชีวิตอยู่หรือไม่ คำสั่งง่ายๆ นี้ช่วยให้คุณตรวจสอบสถานะของโฮสต์หรือส่วนเครือข่ายได้ คำสั่ง Ping ส่งแพ็คเก็ต ICMP ECHO_REQUEST ไปยังโฮสต์เป้าหมายและรอดูว่าจะตอบกลับหรือไม่

อย่างไรก็ตาม บางโฮสต์บล็อกคำขอ ICMP echo ด้วยไฟร์วอลล์ บางเว็บไซต์บนอินเทอร์เน็ตอาจทำเช่นเดียวกัน

ตามค่าเริ่มต้น ping จะทำงานวนซ้ำไม่สิ้นสุด หากต้องการส่งแพ็กเก็ตตามจำนวนที่กำหนด ให้ใช้แฟล็ก -c

 $ ping -c 3 google.com PING google.com (172.217.167.238): 56 data bytes 64 bytes from 172.217.167.238: icmp_seq=0 ttl=118 time=7.898 ms 64 bytes from 172.217.167.238: icmp_seq=1 ttl=118 time=7.960 ms 64 bytes from 172.217.167.238: icmp_seq=2 ttl=118 time=6.247 ms --- google.com ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 6.247/7.368/7.960/0.793 ms

ด้วยการ -o ตั้งค่าสถานะ ping ออกสำเร็จหลังจากได้รับแพ็กเก็ตตอบกลับหนึ่งชุด

 $ ping -o google.com PING google.com (172.217.167.46): 56 data bytes 64 bytes from 172.217.167.46: icmp_seq=0 ttl=118 time=7.540 ms --- google.com ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 7.540/7.540/7.540/0.000 ms

คุณสามารถใช้แฟล็ก -n เพื่อหลีกเลี่ยงการค้นหา DNS ย้อนกลับ หมายเลขลำดับ ICMP มีความสำคัญอย่างยิ่ง การแบ่งหมายเลขลำดับบ่งชี้ถึงแพ็กเก็ตที่สูญหาย

การ ping ที่ล้มเหลวอาจเกิดจาก

  • เครือข่ายล่ม
  • โฮสต์ไม่มีชีวิตอยู่
  • ไฟร์วอลล์บล็อกคำขอ ICMP ECHO

คุณยังสามารถทำการทดสอบ ping ออนไลน์เพื่อตรวจสอบการเชื่อมต่อจากส่วนต่างๆ ของโลก

ไอเพอร์ฟ

ในขณะที่ ping ตรวจสอบความพร้อมใช้งานของโฮสต์ iPerf ช่วยวิเคราะห์และวัดประสิทธิภาพเครือข่ายระหว่างสองโฮสต์ ด้วย iPerf คุณจะเปิดการเชื่อมต่อระหว่างสองโฮสต์และส่งข้อมูลบางอย่าง จากนั้น iPerf จะแสดงแบนด์วิธที่มีระหว่างสองโฮสต์

คุณสามารถติดตั้ง iPerf โดยใช้ตัวจัดการแพ็คเกจการแจกจ่ายของคุณ ตัวอย่างเช่น บนการกระจายบน Ubuntu คุณสามารถติดตั้งได้ดังนี้:

 $ sudo apt install iperf -y

เมื่อคุณติดตั้ง iPerf บนทั้งสองเครื่องแล้ว ให้เริ่มเซิร์ฟเวอร์ iPerf บนเครื่องใดเครื่องหนึ่ง ตัวอย่างต่อไปนี้เริ่มต้นเซิร์ฟเวอร์ iPerf บนโฮสต์ที่มีที่อยู่ IP 10.0.0.51

 $ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------

ในเครื่องที่สองให้เริ่ม iPerf ด้วยแฟล็ก -c สิ่งนี้เชื่อมต่อกับเซิร์ฟเวอร์และส่งข้อมูลบางอย่าง

 $ iperf -c 10.0.0.51 ------------------------------------------------------------ Client connecting to 10.0.0.51, TCP port 5001 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.0.0.50 port 42177 connected with 10.0.0.51 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.13 GBytes 972 Mbits/sec

iPerf กลับมาพร้อมกับผลแบนด์วิธในไม่กี่วินาที

ติดตามเส้นทาง

หาก ping แสดงแพ็กเก็ตที่ขาดหายไป คุณควรใช้ traceroute เพื่อดูว่าแพ็กเก็ตนั้นใช้เส้นทางใด Traceroute แสดงลำดับของเกตเวย์ที่แพ็คเก็ตเดินทางไปถึงปลายทาง ตัวอย่างเช่น traceroute จากเครื่องของฉันไปยัง google.com แสดงสิ่งต่อไปนี้:

 $ traceroute google.com traceroute to google.com (172.217.167.46), 64 hops max, 52 byte packets 1 dlinkrouter.dlink (192.168.0.1) 5.376 ms 2.076 ms 1.932 ms 2 10.194.0.1 (10.194.0.1) 5.190 ms 5.125 ms 4.989 ms 3 broadband.actcorp.in (49.207.47.201) 7.165 ms 5.749 ms 5.755 ms 4 broadband.actcorp.in (49.207.47.225) 5.918 ms * 8.483 ms ... 9 108.170.251.97 (108.170.251.97) 6.359 ms del03s16-in-f14.1e100.net (172.217.167.46) 5.448 ms 108.170.251.97 (108.170.251.97) 6.400 ms

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

เครื่องมือติดตามเส้นทางบนเว็บจำนวนมากช่วยให้คุณสามารถย้อนกลับเส้นทางได้ นั่นคือ จากเว็บไซต์ไปยังโฮสต์ของคุณ คุณสามารถตรวจสอบสิ่งเหล่านี้ได้ที่ traceroute.org หรือ Geekflare Traceroute

tcpdump

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

ตัวอย่างเช่น คุณสามารถตรวจสอบแพ็กเก็ตทั้งหมดที่ส่งไปยังหรือจากโฮสต์เฉพาะ Ubuntu18 ในตัวอย่างนี้:

 $ sudo tcpdump host ubuntu18 -n -c 5 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 14:12:11.509092 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 2991049004:2991049112, ack 2956233368, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 108 14:12:11.509146 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 108:252, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 144 14:12:11.509218 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 252:288, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 36 14:12:11.509259 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 288:500, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 212 14:12:11.509331 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 500:768, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 268 5 packets captured 6 packets received by filter 0 packets dropped by kernel

ตามค่าเริ่มต้น tcpdump จะแก้ไขที่อยู่ IP เป็นชื่อโฮสต์ ใช้แฟล็ก -n หากคุณไม่ต้องการให้ tcpdump ทำการค้นหาชื่อ

เอาต์พุต tcpdump พิมพ์หนึ่งบรรทัดสำหรับแต่ละแพ็กเก็ต ใช้แฟล็ก -c เพื่อจำกัดเอาต์พุต 5 ในตัวอย่างด้านบน

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

เน็ตสแตท

คำสั่ง Netstat ใช้เพื่อตรวจสอบการเชื่อมต่อเครือข่าย ตารางเส้นทาง และการตั้งค่าเครือข่ายและสถิติต่างๆ

ใช้แฟล็ก -i เพื่อแสดงรายการอินเทอร์เฟซเครือข่ายในระบบของคุณ

นี่คือตัวอย่าง:

 $ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 4001 0 0 0 2283 0 0 0 BMRU eth1 1500 0 27154 0 0 0 838962 0 0 0 BMRU lo 65536 0 0 0 0 0 0 0 0 0 LRU

การใช้แฟล็ก -r จะแสดงตารางเส้นทาง นี่แสดงเส้นทางที่กำหนดค่าสำหรับการส่งแพ็กเก็ตเครือข่าย

 $ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth1 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0

เครื่องหมายดอกจันในสองบรรทัดสุดท้ายระบุว่าไม่จำเป็นต้องใช้เกตเวย์ในการส่งแพ็กเก็ตไปยังโฮสต์ใดๆ บนเครือข่ายเหล่านี้ โฮสต์นี้เชื่อมต่อโดยตรงกับเครือข่าย 10.0.0.0 และ 10.0.2.0

ในบรรทัดแรก ปลายทางเป็นค่าเริ่มต้น ซึ่งหมายความว่าแพ็กเก็ตใดๆ ที่กำหนดไว้สำหรับเครือข่ายที่ไม่ได้อยู่ในตารางนี้จะถูกจัดการโดยเราเตอร์ 10.0.2,2

คำสั่ง netstat ที่ไม่มีตัวเลือกใดๆ จะแสดงรายการซ็อกเก็ตที่เปิดอยู่ ใช้แฟล็ก -l เพื่อแสดงเฉพาะซ็อกเก็ตการฟัง ซึ่งตามค่าเริ่มต้นจะไม่แสดง คุณสามารถใช้แฟล็ก -a เพื่อแสดงซ็อกเก็ตการฟังและการไม่ฟัง นี่คือตัวอย่าง:

 $ netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 36 10.0.2.15:ssh 10.0.2.2:51017 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 3 [ ] DGRAM 8186 /run/systemd/notify ...

ตัวอย่างคำสั่ง Netstat เพิ่มเติมที่นี่

เอสเอส

การติดตั้ง Linux มีบริการจำนวนมากที่ทำงานโดยค่าเริ่มต้น สิ่งเหล่านี้ควรปิดการใช้งานหรือควรลบออกเนื่องจากจะช่วยลดพื้นผิวการโจมตี คุณสามารถดูได้ว่าบริการใดกำลังทำงานด้วยคำสั่ง netstat แม้ว่า netstat จะยังมีอยู่ แต่ลีนุกซ์รุ่นต่างๆ ส่วนใหญ่จะเปลี่ยนไปใช้คำสั่ง ss

ใช้คำสั่ง ss กับแฟล็ก -t และ -a เพื่อแสดงรายการซ็อกเก็ต TCP ทั้งหมด ซึ่งจะแสดงทั้งซ็อกเก็ตที่ฟังและไม่ได้ฟัง

 $ ss -t -a State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:sunrpc *:* LISTEN 0 128 *:http *:* LISTEN 0 128 *:ssh *:* LISTEN 0 128 *:60031 *:* ESTAB 0 0 10.0.2.15:ssh 10.0.2.2:51699 ESTAB 0 0 10.0.2.15:ssh 10.0.2.2:51049 LISTEN 0 128 :::sunrpc :::* LISTEN 0 128 :::http :::* LISTEN 0 128 :::ssh :::* LISTEN 0 128 :::54715 :::*

หากต้องการแสดงเฉพาะการเชื่อมต่อ TCP ที่มีสถานะสร้าง:

 ss -a -t -o state established Recv-Q Send-Q Local Address:Port Peer Address:Port 0 0 10.0.2.15:ssh 10.0.2.2:51699 timer:(keepalive,23min,0) 0 0 10.0.2.15:ssh 10.0.2.2:51049 timer:(keepalive,114min,0)

จุ๊ๆ

ssh ช่วยให้คุณเชื่อมต่อได้อย่างปลอดภัยกับโฮสต์ระยะไกลผ่านอินเทอร์เน็ต rlogin และ telnet ก่อนหน้านี้ใช้เพื่อเชื่อมต่อและจัดการโฮสต์ระยะไกล อย่างไรก็ตาม ทั้งคู่ประสบกับข้อบกพร่องพื้นฐาน กล่าวคือ พวกเขาส่งข้อมูลทั้งหมดรวมถึงชื่อล็อกอินและรหัสผ่านเป็นข้อความธรรมดา

ssh เปิดใช้งานการสื่อสารที่ปลอดภัยผ่านอินเทอร์เน็ตด้วยคุณสมบัติสองประการต่อไปนี้:

  • เป็นการยืนยันว่ารีโมตโฮสต์คือใคร
  • มันเข้ารหัสการสื่อสารทั้งหมดระหว่างโฮสต์

ในการเชื่อมต่อกับรีโมตโฮสต์ คุณต้องมีเซิร์ฟเวอร์ OpenSSH ที่ทำงานบนรีโมตโฮสต์ คุณสามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจการแจกจ่ายของคุณ ตัวอย่างเช่น บน Ubuntu คุณสามารถติดตั้งได้ดังนี้:

 $ sudo apt install openssh-server

นี่คือตัวอย่างที่แสดงวิธีเชื่อมต่อกับรีโมตโฮสต์ 10.0.0.50 โดยใช้คำสั่ง ssh:

 me@ubuntu-xenial:~$ ssh 10.0.0.50 The authenticity of host '10.0.0.50 (10.0.0.50)' can't be established. ECDSA key fingerprint is SHA256:s2tNJQa/C1/W0SevGm7Rt3xoBZG1QL5yT3ff/+PMpnY. Are you sure you want to continue connecting (yes/no)? yes

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

 Warning: Permanently added '10.0.0.50' (ECDSA) to the list of known hosts. [email protected]'s password:

หลังจากที่คุณป้อนรหัสผ่านที่ถูกต้อง คุณจะเข้าสู่ระบบโฮสต์ระยะไกล

 Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.13.0-170-generic x86_64) * Documentation: https://help.ubuntu.com/ .. me@vagrant-ubuntu-trusty-64:~$

คุณสามารถออกจากรีโมตเชลล์นี้ได้ด้วยคำสั่ง exit

นอกจากนี้ คุณสามารถรันคำสั่งเดียวบนรีโมตโฮสต์ได้อย่างง่ายดายโดยใช้ ssh ตัวอย่างเช่น ในการรัน df -h บนรีโมตโฮสต์:

 $ ssh 10.0.0.50 df -h [email protected]'s password: Filesystem Size Used Avail Use% Mounted on udev 241M 12K 241M 1% /dev tmpfs 49M 384K 49M 1% /run /dev/sda1 40G 1.6G 37G 5% / ... none 224G 113G 111G 51% /vagrant me@ubuntu-xenial:~$

scp และ sftp

scp (secure copy) คล้ายกับคำสั่ง cp สำหรับการคัดลอกไฟล์ นอกจากนี้ คุณสามารถใส่ชื่อโฮสต์ระยะไกลในชื่อพาธต้นทางหรือปลายทางได้ ชื่อโฮสต์และเส้นทางไดเร็กทอรีคั่นด้วยเครื่องหมายทวิภาค สิ่งนี้ทำให้คุณสามารถคัดลอกไฟล์ได้อย่างปลอดภัยผ่านเครือข่ายในรูปแบบการเข้ารหัส คำสั่งต่อไปนี้คัดลอก a.txt จากเครื่องโลคัลไปยัง 10.0.0.50 :

 me@ubuntu-xenial:~$ scp a.txt 10.0.0.50:/home/me [email protected]'s password: a.txt 100% 0 0.0KB/s 00:00

sftp (secure ftp) เป็นโปรแกรมคัดลอกไฟล์ที่คล้ายกับ ftp อย่างไรก็ตาม จะใช้อุโมงค์เข้ารหัส SSH เพื่อคัดลอกไฟล์ แทนที่จะส่งทุกอย่างเป็นข้อความธรรมดา นอกจากนี้ คุณไม่จำเป็นต้องใช้เซิร์ฟเวอร์ FTP ที่ทำงานบนรีโมตโฮสต์ คุณต้องการเซิร์ฟเวอร์ ssh เท่านั้น นี่คือเซสชันตัวอย่าง:

 me@ubuntu-xenial:~$ sftp 10.0.0.50 [email protected]'s password: Connected to 10.0.0.50. sftp> put kali-linux-2020.3-installer-netinst-i386.iso Uploading kali-linux-2020.3-installer-netinst-i386.iso to /home/me/kali-linux-2020.3-installer-netinst-i386.iso kali-linux-2020.3-installer-netinst-i386.iso 100% 435MB 27.2MB/s 00:16 sftp> bye

ถ้ากำหนดค่า

ส่วนใหญ่เราใช้คำสั่ง ifconfig ในการตรวจสอบ IP address ที่กำหนดให้กับระบบ

 [root@lab ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 209.97.137.171 netmask 255.255.240.0 broadcast 209.97.143.255 inet6 fe80::c035:b2ff:fe9d:72d5 prefixlen 64 scopeid 0x20<link> ether c2:35:b2:9d:72:d5 txqueuelen 1000 (Ethernet) RX packets 1333200 bytes 167143230 (159.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 979666 bytes 93582595 (89.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 16 bytes 1392 (1.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1392 (1.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@lab ~]#

ขุด

ขุด (Domain Information Groper) เป็นเครื่องมือที่ยืดหยุ่นสำหรับการสอบถามเซิร์ฟเวอร์ชื่อ DNS

ทำการค้นหา DNS และแสดงคำตอบที่ส่งคืนจากเนมเซิร์ฟเวอร์

 [root@lab ~]# dig geekflare.com ; <<>> DiG 9.11.13-RedHat-9.11.13-5.el8_2 <<>> geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12310 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;geekflare.com. IN A ;; ANSWER SECTION: geekflare.com. 30 IN A 104.27.119.115 geekflare.com. 30 IN A 104.27.118.115 ;; Query time: 12 msec ;; SERVER: 67.207.67.2#53(67.207.67.2) ;; WHEN: Wed Sep 16 17:58:45 UTC 2020 ;; MSG SIZE rcvd: 74 [root@lab ~]#

เทลเน็ต

โฮสต์และพอร์ตของปลายทางเชื่อมต่อ telnet ผ่านโปรโตคอล telnet หากการเชื่อมต่อเกิดขึ้นหมายความว่าการเชื่อมต่อระหว่างสองโฮสต์ทำงานได้ดี

 [root@lab ~]# telnet gf.dev 443 Trying 104.27.153.44... Connected to gf.dev. Escape character is '^]'.

nslookup

nslookup เป็นโปรแกรมสำหรับค้นหาโดเมนเนมเซิร์ฟเวอร์และแก้ไขไอพี

 [root@lab ~]# nslookup relicflare.com Server: 67.207.67.2 Address: 67.207.67.2#53 Non-authoritative answer: Name: relicflare.com Address: 192.64.119.178 [root@lab ~]#

สรุป

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