저는 2개의 다른 임베디드 장치를 가지고 있습니다. 하나는 TI arago Linux를 실행하는 오래된 장치이고 다른 하나는 Xilinx 장치(petalinux)입니다.
dns-nameservers
/etc/network/interfaces
네트워크를 추가 및 재구성 /etc/init.d/networking restart
하거나 장치를 다시 시작할 때 두 장치 모두에서 동일한 결과가 나타납니다.
파일은 /etc/resolv.conf
항상 비어 있습니다.
패키지, 데몬 또는 .domain이 시스템에 존재하지 않습니다 dhclient
.resolvconf
network-manager
mdns
여기있어 /etc/network/interfaces
:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
그리고 resolv.conf
:
[root@linux:~] ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 20 Feb 3 18:17 /etc/resolv.conf -> /var/run/resolv.conf
[root@linux:~] ls -l /var/run/resolv.conf
-rw-r--r-- 1 root root 0 Feb 3 18:17 /var/run/resolv.conf
실행되면 /etc/init.d/networking restart
두 장치 모두 기본적으로 호출 ifdown -a
한 다음 이 경우 및 busybox 유틸리티를 ifup -a
모두 호출합니다.ifup
ifdown
불변 파일 속성 솔루션이 언급된 경우: 시스템 설계 방식과 완전히 반대되는 것처럼 보이기 때문에 수동으로 파일을 생성 resolv.conf
하고 파일 속성을 변경하여 불변( )으로 만들고 싶지 않습니다 . 영구적이어야 한다면 애초에 휘발성 메모리(populate-휘발성.sh에 의해 생성됨)에 저장되는 이유는 무엇입니까?chattr +i
resolv.conf
어떤 팁이라도 감사드립니다!
업데이트: 해결책을 찾았지만 누군가 검색할 경우를 대비해 질문을 열어 두겠습니다.
답변1
/etc/network/if-up.d/dns
다음 내용으로 스크립트를 만듭니다(이 예에서만 고려됨 eth0
).
#!/bin/sh
if [ "$IFACE" = "eth0" ];then
for NS in $IF_DNS_NAMESERVERS; do
R="${R}nameserver $NS
"
done
echo "$R" > /etc/resolv.conf
fi
실행 가능하게 만드십시오 chmod +x /etc/network/if-up.d/dns
.
장치를 다시 시작하거나 네트워크 서비스를 다시 시작할 때마다 resolv.conf
다시 생성됩니다 . 기적적으로 작동합니다!
dns-nameservers
/etc/network/interfaces
PS: 예를 들어 ... 이외의 다른 지시어/명명을 사용하는 경우 로 my-dns
바꾸 십시오. 알아두면 좋지만 규칙을 고수하고 를 사용하는 것이 좋습니다 .$IF_DNS_NAMESERVERS
$IF_MY_DNS
dns-nameservers