(您可能必须将软件包安装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))
有趣的是,第五列显示了IP地址和端口的组合:
*:22
在每个可用的IPv4地址上监听端口22
:::22
在每个可用IP地址上侦听端口22(我不写IPv6,因为IP是RFC 6540的 IPv6 )
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”)