DebianのlighttpdでIPv6リスニングアドレスを制限する方法

DebianのlighttpdでIPv6リスニングアドレスを制限する方法

私は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" { }

おすすめ記事