저는 최근 PiHole과 Wireguard를 실행하기 위해 VPS를 설정했습니다. 시스템(커널 6.2.6이 포함된 Pop OS 22.04 실행)이 VPS에 연결되어 있고 VPS가 게이트웨이 및 DNS(쿼리 해결에 사용되는 PiHole Unbound의 로컬 인스턴스를 실행 중임)로 설정된 경우 DNS 오류가 발생합니다. 누출되어 연결 중입니다. 연결되는 모든 네트워크의 게이트웨이가 때때로 팝업됩니다.
IP 누출이 발생한 피어의 Wireguard 구성이 변경되었지만 1.0.0.1
VPS 내부 Wireguard 주소가 되며 1.0.0.4
VPS의 특정 피어에 연결하는 데 사용됩니다.
[Interface]
PrivateKey = 1111111111111111111111111111111111111111
Address = 1.0.0.4
DNS = 1.0.0.1
[Peer]
PublicKey = 2222222222222222222222222222222222222222222
PresharedKey = 333333333333333333333333333333333333333333
AllowedIPs = 0.0.0.0/0
Endpoint = vps.running.wireguard:51820
PersistentKeepalive = 25
VPS는 Wireguard 인터페이스에서만 쿼리에 응답하도록 설정되어 있습니다. PiHole에는 실행 중인 언바운드 인스턴스 외에 다른 DNS가 구성되어 있지 않습니다. 언바운드는 PiHole 문서에 따라 구성되었으며, 사용한 IP 범위만 변경되었습니다.
내 지역구성 파일 구문 분석파일에는 다음 내용만 있습니다.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 1.0.0.1
Arch wiki를 탐색한 결과 rc-manager=unmanaged
NetworkManager 업데이트를 비활성화해야 한다는 것을 알았습니다.구성 파일 구문 분석그러나 NetworkManager는 여전히 그럴 수 있기 때문에 이것이 항상 사실은 아니라고 생각합니다.symlink
구성 파일 구문 분석자체 로컬 상태로 이동하여 거기에 있는 이름 서버를 재정의합니다.
DNS 누출을 방지하기 위해 제가 찾은 유일하고 안정적인 방법은 1.0.0.1
NetworkManager 내에서 DNS 레코드를 수동으로 설정하는 것입니다. 그러나 이것은 연결별로만 작동하며 내가 추가한 완전한 규칙으로는 작동하지 않습니다./etc/NetworkManager/system-connections/[연결 이름].nmconnection문서. 이는 이 동작이 각각의 새로운 연결로 재정의될 수 있음을 의미합니다.
뿐만 아니라 특정 주소에 DNS를 강제 적용하면 연결을 변경할 때 인터넷에 연결되지 않고 기본 DNS 서버를 선택할 수 있도록 설정을 복원해야 할 수도 있습니다.
연결, 일부 설정이 누락되었거나 올바르게 보거나 이해할 수 없는 기타 구성을 통해 이를 강제할 수 있는 다른 방법이 있습니까? 그런데, 이것은 새로 설치한 것입니다. Debian Buster를 새로 설치했을 때도 이 사실을 발견했습니다.