Setelah memperbarui /etc/network/interfaces
dengan sesuatu yang sangat mirip dengan di bawah ini, bagaimana saya bisa /etc/resolv.conf
memperbarui? Saya mencoba (sebagai root) resolver -u
, service networking restart
tetapi mereka tidak berhasil. Saya juga memperbaiki symlink untuk resolv.conf
dan mencoba resolver -u
lagi. Akhirnya dengan frustrasi saya reboot, yang memang memperbaiki masalah dengan membangun kembali /etc/resolv.conf
.
Ubuntu 12.04, server 64bit, semua tambalan terbaru diinstal.
Contoh /etc/network/interfaces
:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10
server
dns
resolv.conf
nslntmnx
sumber
sumber
Jawaban:
service networking restart
tidak selalu merupakan cara yang dapat diandalkan untuk menurunkan semua antarmuka.The
resolvconf -u
perintah saja updateresolv.conf
dari database resolvconf sendiri. Anda perlu memperbarui basis data.Untuk memperbarui database Anda harus memanggil resolvconf dengan opsi
-a
atau-d
. Itu terjadi di belakang layar ketika Anda menjalankan ifup atau ifdown. Jadi, biasanya, seperti halnya dengan perubahan lain ke/etc/network/interfaces
, untuk mengaktifkan perubahan pada opsi dns- * Anda harus membongkar antarmuka yang dimaksud dan membukanya kembali. Atau Anda bisa reboot.Jika Anda ingin membuat perubahan pada antarmuka tanpa ifupupup (mungkin karena Anda mengelola mesin dari jarak jauh dan kebetulan terhubung melalui antarmuka itu, natch) maka Anda dapat mencapai hasil yang sama dengan menjalankan resolvconf langsung dari baris perintah. Ini membutuhkan sedikit lebih banyak pengetahuan tentang semantik resolvconf. Asumsikan bait / e / n / i yang relevan adalah
di mana FFFF adalah keluarga alamat ("inet" atau "inet6").
Untuk mengaktifkan opsi dns- * ini, Anda menjalankan resolvconf sebagai berikut (ya, dengan baris baru di string yang disalurkan ke resolvconf).
Untuk bait yang diberikan dalam pertanyaan ini adalah yang berikut.
Lihat halaman manual resolvconf (8) dan file README paket resolvconf (/usr/share/doc/resolvconf/README.gz) untuk informasi lebih lanjut.
sumber
resolvconf
:)/etc/network/interfaces
, Anda dapat melakukannyaifdown eth0 && ifup eth0
:; ia bekerja bahkan dalam sesi ssh jarak jauh.Meskipun manual tidak diinstal secara default, itu didokumentasikan melalui opsi skrip pembaruan, jalankan saja:
sumber
Bagi Anda yang mengelola server Anda dari jarak jauh, Anda dapat:
dns-nameservers
baris/etc/network/interfaces
# ifdown eth01; ifup eth01
Perhatikan bahwa ini harus dibagi dalam satu baris; (pemisah baris perintah linux). Anda seharusnya tidak kehilangan koneksi Anda saat ini. Pengecualian adalah membuat kesalahan ketik pada file antarmuka. Jika ini terjadi
ifup
akan gagal dan Anda harus memiliki akses fisik atauethxx
koneksi lain .sumber
service resolvconf restart
akan membuat ulang/etc/resolv.conf
file tanpa banyak keributan.sumber
Failed to restart resolvconf.service: Unit resolvconf.service not found.
/etc/resolv.conf
di server ubuntu 14.04Jawaban ini mirip dengan yang di atas tetapi menggunakan konfigurasi contoh pertanyaan untuk menjawab pertanyaan. Plus ini menjelaskan mengapa kedua perintah itu diperlukan.
Edit
/etc/network/interfaces
:Perubahan ini tidak akan terjadi kecuali Anda me-reboot atau memuat ulang file konfigurasi:
Untuk memperbarui file antarmuka secara langsung, Anda perlu menjalankan perintah berikut:
Ini memungkinkan pembaruan ke antarmuka tanpa reboot atau memuat ulang.
Namun, perubahan perintah di atas akan hilang setelah reboot jika perubahan dalam
/etc/network/interfaces
tidak dilakukan.Ngomong-ngomong, jawaban terakhir dari BDenis dalam daftar ini benar-benar berfungsi menggantikan perintah terakhir dengan mem-parsing
/etc/network/interfaces
file dan menyalurkan baris-baris tersebut ke dalam perintah.sudo resolvconf -a eth0
Sebenarnya ini adalah setengah dari jawaban dan contoh yang sangat bagus dari penguraian sed inline. Jika Anda ingin melihat bagaimana ini dilakukan, jalankan saja bagian pertama dari perintah dan saksikan parsing/etc/network/interfaces
file dan keluarkan semua informasi yang diperlukan Anda perlu menjalankansudo resolvconf -a eth0
perintah:Perhatikan ini akan menghasilkan keluaran yang sama seperti perintah:
Asalkan
/etc/network/interfaces
file tersebut dikonfigurasi dengan informasi ini:sumber
/etc/network/interfaces
bukan pilihan yang valid dalam kasus itu. (Ubuntu 14.04)Jawaban sederhana:
Cukup instal resolvconf.
apt install resolvconf
Setelah itu,
ifup eth0
perbarui dns dalametc/resolv.conf
, sesuai dengandns-nameservers
baris dalam/etc/network/interfaces
.sumber
Pada 18.04, berikut ini berfungsi dengan baik (dijalankan sebagai root):
Penting: Pastikan Anda telah
resolvconf
menginstal paket .Tampaknya tidak secara default, dan tanpa itu beberapa (!) Perubahan dari
/etc/network/interfaces
diabaikan secara diam-diam (misalnyadns-*
).sumber
Ini bekerja untuk saya:
Sesuaikan dengan itu.
sumber
Pada versi desktop Ubuntu 18.04, di mana tidak ada layanan
networking
, danresolvconf
tidak diinstal secara default, saya telah berhasil melakukan regenerasiresolv.conf
dengan memulai ulangnetwork-manager
:sumber
Anda juga dapat mencoba perintah ini:
sumber
dns-nameserver IP1 IP2
. Baris kemudian harus diulangiresolv.conf
, tetapi tidak./etc/network/interfaces
gunakandns-nameservers
(perhatikans
di akhir) saatresolvconf
menggunakannameserver
. Perintah itu tidak menghadapinya. Dan bahkan jika semuanya benar, saluran pipased | grep | sed
pasti tidak akan menjadi cara yang paling efisien.