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"

그러나 웹 서버는 모든 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" { }

관련 정보