Saya diberi file untuk mini linux
, yang langsung masuk firefox
. Ini berfungsi untuk semua yang seharusnya dilakukan, hanya saja saya tidak mendapatkan koneksi internet.
Kami memiliki 3 server DNS di jaringan, yang semuanya berfungsi. Saya bisa ping mereka juga. Tetapi ketika mencoba ping google.de
atau wget google.de
saya mendapatkan bad address
kesalahan.
nslookup google.de
bekerja karena suatu alasan.
Saya melacak masalah ke saya resolv.conf
pada sistem boot tidak memiliki konten yang sama dengan resolv.conf
yang saya masukkan ke .iso
file.
Saya mencoba memahami semua faktor yang digunakan untuk membuat dan memodifikasi resolv.conf
. Saya tidak yakin saya mendapatkan semuanya, tetapi saya pasti tidak menemukan solusi di sana.
Jadi sebagai upaya terakhir, saya mencoba membuat resolv.conf
file tetap menggunakan
:~# chattr +i /etc/resolv.conf
Ketika membangun kembali dan mem-boot kembali ke kejutan saya file saya diganti namanya resolv.conf~
dan di tempatnya adalah file standar yang sama yang telah menghantui saya.
Isi file membuat saya percaya mendapat informasi dari jaringan itu sendiri. Ketika memulai .iso
di Virtualbox tanpa akses internet, file saya disimpan apa adanya.
Saya mencoba mengubah /etc/dhcp/dhclient.conf
untuk tidak mendapatkan informasi dari internet, dengan menghapus domain-name-server
dan domain-name-search
dari request
bagian file.
Sayangnya tidak berhasil.
Saya tidak menginstal NetworkManager. Iso didasarkan pada Ubuntu 14.04.
Mungkin ada informasi penting yang hilang. Saya senang menyediakannya.
MEMPERBARUI:
Saya rasa saya menemukan file yang membersihkan resolv.conf
.
Sepertinya begitu /usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <[email protected]>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
Itu bagian dari udhcpc
program. Klien dhcp kecil, itu bagian daribusybox
Akan menyelidiki lebih lanjut.
UPDATE2 DAN SOLUSI:
Saya berkomentar bagian keluar (# Mulai ke #End), yang tampaknya menimpa /etc/resolv.conf
file dan cukup yakin. Itulah pelakunya. Jadi naskah yang tidak jelas menyebabkan semua masalah ini.
Saya mengubah pertanyaan untuk mencerminkan, apa yang sebenarnya perlu diketahui untuk menyelesaikan masalah saya, sehingga akan lebih mudah ditemukan bagi orang-orang dengan masalah yang sama dan agar saya dapat menerima jawaban.
Terima kasih atas bantuannya dalam mencari tahu semuanya.
sumber
Jawaban:
1) Anda seharusnya tidak memperbarui resolv.conf secara manual, karena semua perubahan akan ditimpa oleh data yang disediakan oleh server DHCP lokal Anda. Jika Anda menginginkannya statis, jalankan
sudo dpkg-reconfigure resolvconf
dan jawab "tidak" untuk pembaruan dinamis. Jika Anda ingin menambahkan entri baru di sana, edit/etc/resolvconf/resolv.conf.d/base
dan jalankansudo resolvconf -u
, itu akan menambahkan entri Anda dan entri server DHCP.2) Cobalah untuk mengedit / etc / network / interfaces Anda dan tambahkan entri Anda di sana, seperti
dan kemudian restart
/etc/init.d/networking restart
atausudo ifdown -a
dansudo ifup -a
3) Sistem Anda menggunakan udhcp yang merupakan program klien DHCP yang sangat kecil. Klien udhcp menegosiasikan sewa dengan server DHCP dan memberi tahu sekumpulan skrip ketika sebuah leasing diperoleh atau hilang. Anda dapat membaca tentang penggunaannya di sini atau hanya mengedit skrip ini (seperti yang Anda lakukan).
sumber
/etc/resolvconf/resolv.conf.d/base
dan berlariresolvconf -u
. Sayangnya, itu tidak berhasil.dpkg-reconfigure resolvconf
. Entri tidak ada di sana. Dan saya punya entri dengan keduanyanameserver ip
dansearch domain
.dpkg-reconfigure resolvconf
tidak akan menambah entri, tetapi Anda dapat menonaktifkan pembaruan otomatis. Jika Anda menonaktifkan pembaruan, Anda dapat mengedit resolv.conf secara manual dan itu tidak boleh ditimpa.resolvconf -u
entri tidak ditambahkan.Saya juga mengalami hal ini. Mengomentari
domain-name-server
juga tidak memperbaikinya.Juga, saya tidak menggunakan
resolvconf
, cukup sederhana/etc/resolv.conf
.Saya tidak mencoba menggunakan
chattr +i
untuk mengunciresolv.conf
karena sepertinya terlalu berantakan. Juga, saya ingin Wayang dapat memodifikasiresolv.conf
bila perlu.The solusi terbaik saya menemukan menimpa perilaku default
dhclient
menggunakan kait yang didokumentasikan.Buat file baru di
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
dengan konten berikut:Kemudian buat file tersebut dapat dieksekusi:
Sekarang ketika dhclient berjalan - baik saat reboot atau ketika Anda menjalankan secara manual
sudo ifdown -a ; sudo ifup -a
- ini memuat skrip ininodnsupdate
. Script ini menimpa fungsi internal yang disebutmake_resolv_conf()
yang biasanya akan menimparesolv.conf
dan bukannya tidak melakukan apa pun.Ini bekerja untuk saya di Ubuntu 12.04.
sumber
/etc/resolv.conf
ditimpa setelah reboot.Ubuntu 16.04
Jika antarmuka jaringan untuk instance server Anda dikendalikan oleh DHCP, program dhclient akan menimpa/etc/resolv.conf
file Anda setiap kali layanan jaringan dihidupkan ulang.Anda dapat memperbaiki masalah dengan mengedit
/etc/dhcp/dhclient.conf
file dan menambahkan pernyataan "menggantikan" untuk nama domain , pencarian domain dan server nama domain sebagai berikut:Dalam kasus khusus ini server nama terletak di "192.168.56.103" dan nama domainnya adalah "local.com"
Perhatikan bahwa setiap baris diakhiri dengan titik koma dan nama domain dilampirkan dalam tanda kutip ganda.
sumber
/etc/resolv.conf
ditimpa dengan 127.0.0.53.dnsmasq
buka direktori ini:
Buka file bernama kepala dan letakkan IP DNS atau nama di sana. Buka file bernama tail dan letakkan domain di sana. Mulai ulang.
sumber
Di Azure VMs /etc/resolv.conf tidak dapat diedit secara langsung.
Coba tambahkan entiries DNS di file konfigurasi jaringan Anda / etc / sysconfig / network-scripts / ifcfg-eth0 dan seterusnya seperti di bawah ini:
DOMAIN = example.com
DNS1 = 10. . . *
DNS2 = 10. . . *
DNS3 = 10. . . *
dan restart layanan jaringan setelah menyimpan file. Anda akan melihat konfigurasi kemudian akan ditambahkan ke resol.conf juga.
sumber
Untuk membuat perubahan terkait DNS di
resolv.conf
permanen, Anda perlu mengubah file konfigurasi DHCP bernamadhclient.conf
. Anda dapat menemukan file di/etc/dhcp/dhclient.conf
.Buka file untuk diedit (jangan lupa untuk menggunakan sudo). Anda akan melihat baris seperti ini:
Hapus "#" sebelumnya dan gunakan nama domain dan / atau domain-nama-server yang Anda inginkan. Simpan itu. Sekarang perubahan terkait DNS akan menjadi permanen.
Kredit masuk ke: https://itsfoss.com/resolvconf-permanent-ubuntu/
sumber
Gunakan perintah di bawah ini untuk mencegah resolv.conf atau file apa pun dari menimpa setelah reboot
chattr -V + i namafile misalnya chattr -V + i /etc/resolv.conf
Untuk mengembalikan kembali perubahan, gunakan perintah di bawah ini:
chattr -i nama file - untuk mengaktifkan kembali masukkan ke file
chattr (Change Attribute) adalah utilitas baris perintah Linux yang digunakan untuk mengatur / menghapus atribut tertentu ke file di sistem Linux untuk mengamankan penghapusan tidak disengaja atau modifikasi file dan folder penting, meskipun Anda login sebagai pengguna root.
sumber
chattr
, tetapi menyadari bahwa ini tidak berpengaruh.Di ubuntu 18.04 menggunakan NetworkManager. Anda perlu menghapus file 'resolv.conf' dan biarkan NetworkManager membuatkannya untuk Anda.
Untuk menghapus file dalam tipe terminal
sudo rm -f /etc/resolv.conf
; ini akan menghapus file untuk Anda.Reboot sistem dan NetworkManager akan menghasilkan file resolv.conf untuk Anda.
sumber