私はDebianシステムのlocalhostでのみlighttpdを使用できるようにしようとしています。次の行は次の場所にあります。/etc/lighttpd/lighttpd.conf
server.port = 80
server.bind = "127.0.0.1"
server.use-ipv6 = "disable"
ただし、WebサーバーはすべてのIPv6アドレスでも実行されます。
# netstat -tupan|grep lighttpd
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 519887/lighttpd
tcp6 0 0 :::80 :::* LISTEN 519887/lighttpd
構成ファイルで以前に印刷された行の代わりに次の行を使用すると、サーバーは起動しません。
server.bind = "[::1]"
つまり、使用中のポートに関するエラーメッセージのみが表示されますが、ポートは使用中ではありません。
# netstat -tupan|grep LISTEN|grep 80/; lighttpd -f /etc/lighttpd/lighttpd.conf; netstat -tupan|grep LISTEN|grep 80/
2023-04-27 16:50:24: (network.c.537) can't bind to socket: [::1]:80: Address already in use
lighttpdがlocalhostでのみ受信するように制限する方法(IPv4のみ、IPv6のみ、またはIPv4およびIPv6)
答え1
lighttpd.conf は Debian ベースなので、デフォルトの /etc/lighttpd/lighttpd.conf には以下が含まれます。
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
lighttpdがIPv6を受信しないようにするには、この行をコメントアウトする必要があります。
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
IPv6のlocalhostでのみlighttpdを使用できるようにするには、以下を追加します。
$SERVER["socket"] == "[::1]:80" { }