例:sshdはwlan0でのみ受信するように設定されています。だから。 sshd_configをチェックするだけでなく、デーモンがリッスンしているインターフェイスをどのように確認できますか? netstatで可能ですか?どのように? (オペレーティングシステム:openwrtまたは科学的なLinuxまたはopenbsd)
修正する:
sshdは1つのインターフェースに制限できると思いました...いいえ...(wlan0の192.168.1.5...)
# grep ^ListenAddress /etc/ssh/sshd_config
ListenAddress 192.168.1.5:22
#
# lsof -i -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 23952 root 3u IPv4 1718551 0t0 TCP 192.168.1.5:22 (LISTEN)
#
# ss -lp | grep -i ssh
0 128 192.168.1.5:ssh *:* users:(("sshd",23952,3))
#
# netstat -lp | grep -i ssh
tcp 0 0 a.lan:ssh *:* LISTEN 23952/sshd
#
ベストアンサー1
ip
(openwrt(v12 / posture-adjustment)にこのパッケージをインストールする必要があるかもしれません。
ifconfig/netstat などを考慮してください。廃止そのため、(ルートとして)を使用する必要があります。
ss -nlput | grep sshd
実行中のプログラムがリッスンしている文字列を含むsshd
TCP / UDPソケットを表示します。
-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アドレスとポートの組み合わせを示す5番目の列です。
*:22
利用可能なすべてのIPv4アドレスからポート22をリッスンします。:::22
使用可能なすべてのIPアドレスに対してポート22でリッスンする(IPがIPv6なので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
-6
(IP()または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
このインターフェイスにバインドされたIPで始まり、表示する行には、inet6
インターフェイスごとに次のような行がたくさんあります。
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」の交換)