나는 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" { }