(можливо, доведеться встановити пакет ip
на openwrt (v12 / коригування позиції)
ifconfig / netstat і т.д. вважаються застарілими , тому слід використовувати (як root)
ss -nlput | grep sshd
показати сокети TCP / UDP, на яких sshd
прослуховується запущена програма, що містить рядок
-n
Немає порту для вирішення імені
-l
тільки розетки для прослуховування
-p
показати процеси слухання
-u
показати udp розетки
-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")