(คุณอาจต้องติดตั้งแพ็กเกจip
บน openwrt (v12 / การปรับทัศนคติ)
ifconfig / netstat เป็นต้นถูกพิจารณาว่าเลิกใช้ดังนั้นคุณควรใช้ (เป็น root)
ss -nlput | grep sshd
เพื่อแสดงซ็อกเก็ต TCP / UDP ที่โปรแกรมกำลังทำงานซึ่งมีสตริงsshd
กำลังฟังอยู่
-n
ไม่มีพอร์ตสำหรับการจำแนกชื่อ
-l
ฟังเฉพาะซ็อกเก็ต
-p
แสดงกระบวนการฟัง
-u
แสดง udp sockets
-t
แสดงซ็อกเก็ต tcp
จากนั้นคุณได้กำหนดรายการเช่นนี้:
tcp LISTEN 0 128 *:22 *:* users:(("sshd",3907,4))
tcp LISTEN 0 128 :::22 :::* users:(("sshd",3907,3))
tcp LISTEN 0 128 127.0.0.1:6010 *:* users:(("sshd",4818,9))
tcp LISTEN 0 128 ::1:6010 :::* users:(("sshd",4818,8))
สิ่งที่น่าสนใจคือคอลัมน์ที่ 5 ซึ่งแสดงการรวมกันของที่อยู่ IP และพอร์ต:
*:22
ฟังที่พอร์ต 22 ในที่อยู่ IPv4 ที่มีอยู่ทั้งหมด
:::22
ฟังพอร์ต 22 ทุกที่อยู่ IP ที่มีอยู่ (ฉันไม่ได้เขียน IPv6 เนื่องจาก IP คือ IPv6 ต่อRFC 6540 )
127.0.0.1:6010
ฟังที่อยู่ IPv4 127.0.0.1 (localhost / loopback) และพอร์ต 6010
::1:6010
ฟังที่อยู่ IP :: 1 (0: 0: 0: 0: 0: 0: 0: 1 ในรูปแบบเต็ม, ยังใช้ localhost / loopback) และพอร์ต 6010
จากนั้นคุณต้องการทราบว่าอินเทอร์เฟซใดมีที่อยู่ IPv4 (ครอบคลุม 1)
ip -4 a
# or "ip -4 address"
# or "ip -4 address show"
หรือที่อยู่ IP (เพื่อครอบคลุม 2)
ip -6 a
# or "ip -6 address
# or "ip -6 address show
(ถ้าคุณไม่เพิ่มตัวเลือกสำหรับ IP ( -6
) หรือ IPv4 ( -4
) ทั้งคู่แสดงขึ้น)
นอกจากนี้คุณยังสามารถดูผลลัพธ์และค้นหาเช่น127.0.0.1
หรือที่อยู่ IP / IPv4 อื่น ๆ
# here a demo where i show all addresses of the device "lo" (loopback)
ip a show dev lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
บรรทัดที่ขึ้นต้นด้วยinet
และinet6
แสดงว่า IP เหล่านี้เชื่อมโยงกับอินเตอร์เฟสนี้คุณอาจมีหลายบรรทัดต่ออินเตอร์เฟส:
he-ipv6: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN
link/sit 192.0.2.1 peer 192.0.2.3
inet6 2001:db8:12::1/64 scope global
valid_lft forever preferred_lft forever
inet6 2001:db8::2/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::1111:1111/128 scope link
valid_lft forever preferred_lft forever
และในสคริปต์:
address="127.0.0.1"
for i in $(grep ':' /proc/net/dev | cut -d ':' -f 1 | tr -d ' ') ; do
if $(ip address show dev $i | grep -q "${address}") ; then
echo "${address} found on interface ${i}"
fi
done
(แทนที่ "127.0.0.1")