이건 내 무선 네트워크야interfaces
#auto wlp1s0
allow-hotplug wlp1s0
iface wlp1s0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
# up /usr/sbin/wondershaper -a wlan0 -d 9500 -u 15000
# down /usr/sbin/wondershaper -a wlan0 -c
allow-hotplug RWB
iface RWB inet dhcp
여기서 RWB
AP는 다음과 같이 정의됩니다./etc/wpa_supplicant/wpa_supplicant.conf
dhclient
이 파일은 AP에 연결할 때마다 업데이트됩니다 /etc/resolv.conf
. 즉, 한 발 물러서서 RWB
다른 장치(유선 이더넷 포함)에 연결하면 IP 주소가 resolv.conf
더 이상 라우팅 가능하지 않기 때문에 DNS가 실패합니다.
dhcp
순진한 해결 방법은 클라이언트 업데이트를 방지하는 것이지만 resolv.conf
확실히 이 상황에 대한 문제를 해결할 수 있는 일반적인 구성이 있습니다. 무엇입니까?
답변1
아직 댓글을 달 수 없으므로 답변은 다음과 같습니다. 이 YouTube에서는 resolv.conf를 사용하여 Ubuntu/Debian에서 영구 DNS 이름 서버를 설정하는 방법을 보여줍니다.
https://www.youtube.com/watch?v=NEyXDdBrw2c
@Hack Saw가 언급한 것처럼 systemd는 해결.conf에서 DNS 이름 서버를 영구적으로 변경하는 데 문제를 일으킬 수 있는 해결.conf를 관리할 수 있습니다.
답변2
man
페이지 에서 dhclient
-
BUGS
If more than one interface is being used, there's no obvious way to avoid
clashes between server-supplied configuration parameters - for example, the stock
dhclient-script rewrites /etc/resolv.conf ...
dhclient
DHCP 이벤트가 발생할 때 쉘 스크립트를 사용하여 시스템을 구성하십시오. dhclient
덮어쓰기를 방지하려면 resolv.conf
이 스크립트의 기본 동작을 수정해야 합니다. 하지만 먼저 여러 네트워크 인터페이스에 대한 DNS 정보를 관리할 수 있는 유사한 것을 설치하고 실행해야 합니다 systemd-resolved
.
dhclient
다음은 덮어쓰는 대신 DNS 정보를 업데이트하도록 수정하는 방법의 예 입니다 .systemd-resolved
/etc/resolv.conf
/etc/dhcp/dhclient-enter-hooks.d/dns-update
#!/bin/sh
make_resolv_conf(){
# DHCPv4
if [ -x /usr/bin/systemd-resolve ]; then
if [ -n "$new_domain_name" ]; then
systemd-resolve --interface="$interface" --set-domain="${new_domain_name%% *}"
fi
if [ -n "$new_domain_name_servers" ]; then
for nameserver in $new_domain_name_servers; do
systemd-resolve --interface="$interface" --set-dns="$nameserver"
done
fi
fi
}
dhclient
이 스크립트는 DHCP에서 받은 시스템 구성을 적용하고 스톡을 덮어쓰기 전에 호출됩니다 make_resolv_conf()
.
/etc/dhcp/dhclient-enter-hooks.d
운영 체제에 따라 디렉토리가 없을 수도 있습니다 . 이 경우 스크립트를 /etc/dhclient-enter-hooks
.