resolvconf
저는 ( openresolv
기본 패키지 종속성이 있는 ) Arch Linux 시스템에서 Network Manager(1.18.0-1)를 사용하고 있습니다
netctl
.
NetworkManager를 통해 VPN 서버에 연결할 때 VPN 연결을 끊은 후 DNS 레코드가 지속되는 데 문제가 발생합니다. 이유를 부분적으로 찾았습니다.
- 연결 후 NetworkManager 프로세스에는 VPN 이름 서버가 포함됩니다.
resolv.conf
/etc/ppp/ip-up.d/00-dns.sh
(아래) 에 관하여 그리고 유효한USEPEERDNS=1
것이resolvconf
호출됩니다; 백업을 만들고resolv.conf
자체 네임서버 기록으로 교체합니다./etc/ppp/ip-down.d/00-dns.sh
VPN 연결 해제 호출 후resolvconf
네임서버 기록을 삭제하고 (현재) 도달할 수 없는 네임서버 기록이 있는 곳resolv.conf
에서 복구resolv.conf.bak
더티 핫픽스는 비활성화 /etc/ppp/ip-up.d/00-dns.sh
(또는 해당 행을 주석 처리 /usr/bin/resolvconf ...
)하는 것입니다. 종속성 openresolv
을 깨뜨릴 수 있으므로 제거하고 싶지 않으며 netctl
이 기본 패키지도 필요합니다.
NetworkManager는 Arch Linux의 "기본" 네트워킹 도구가 아니기 때문에 이것이 일종의 버그인지 또는 어떤 설정이 누락되었는지 잘 모르겠습니다. 이를 해결하는 올바른 방법은 무엇입니까?
/etc/ppp/ip-up.d/00-dns.sh:
#!/bin/sh
if [ "$USEPEERDNS" = "1" -a -f /etc/ppp/resolv.conf ]; then
if [ -x /usr/bin/resolvconf ]; then
/usr/bin/resolvconf -a ${IFNAME} </etc/ppp/resolv.conf
else
[ -e /etc/resolv.conf ] && mv /etc/resolv.conf /etc/resolv.conf.backup.${IFNAME}
mv /etc/ppp/resolv.conf /etc/resolv.conf
chmod 644 /etc/resolv.conf
fi
fi