httpsサービスがIPv6とIPv4の両方でリッスンしていることを確認したいと思います。
そして、ブラウザを介してURLにアクセスするときに要求がIPv4またはIPv6で提供されるかどうかを知りたいです。
ベストアンサー1
あなたはそれを使用することができますnetstat
:
# netstat -tlnp | grep httpd
# netstat -tlnp | grep apache
# netstat -tlnp | grep nginx
# netstat -tlnp | grep ...
次に、各IPプロトコルバージョン(tcpとtcp6)に1行があることを確認します。
#!/bin/bash
ns=$(netstat -tlnp | grep httpd)
if grep 'tcp ' <<< "$ns" >/dev/null; then
echo "httpd has a listening IPv4 socket."
fi
if grep 'tcp6 ' <<< "$ns" >/dev/null; then
echo "httpd has a listening IPv6 socket."
fi
netstat
ルートに属するプロセス(デフォルトのApacheプロセスなど)を表示するには、root権限が必要です。netstat
標準ユーザーとして使用するには、この-p
オプションを削除し、grep
代わりにIPとポートを転送します。たとえば、
$ netstat -tln | grep '0.0.0.0:80'
$ netstat -tln | grep '127.0.0.1:80'
$ netstat -tln | grep '::1:80'
この場合、探しているIPはすでに探している情報を提供しているため、再度開いたり再開したりgrep
する必要はありません。 127.0.0.1 または 0.0.0.0 を探す必要があるかどうかは、Web サーバーの構成によって異なります。tcp
tcp6
grep