Bagaimana membuat alamat server nama permanen di /etc/resolv.conf?

14

Saya tidak dapat menyimpan alamat server nama yang saya atur /etc/resolv.conf. Setiap kali saya mengatur nilainya, manajer jaringan menimpanya dengan gateway default saat reboot.

Bagaimana cara mengaturnya dengan benar?

Saya lebih suka cara lain selain mengubah server nama di router.

Ashildr
sumber
Anda perlu mengubahnya dengan NetworkManager(seperti yang dinyatakan pada baris pertama). File ini dihasilkan kembali pada setiap boot oleh NetworkManager. Tergantung pada linux-distro Anda (yang tidak Anda sebutkan) cara mengakses ini NetworkManager.
Rik

Jawaban:

13

Tergantung. Silakan baca sampai akhir.

Jika Anda tidak menginstal paket resolvconf , maka mudah: setelah mengubahnya sesuka Anda, keluarkan perintahnya

 sudo chattr +i /etc/resolv.conf

Perintah mengubah atribut file, menjadikannya immutable(opsi + i).

Namun, jika Anda memiliki paket resolvconf diinstal, file /etc/resolv.conf dapat diubah menjadi tautan simbolis,

 # file /etc/resolv.conf
 /etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'

yang merupakan file pada sistem file virtual, epitomi dari versi tidak permanen. Yang lucu adalah bahwa Anda mungkin tidak tahu Anda telah menginstal resolvconf, karena versi terbaru dari OS seperti Debian datang dengan itu pra-instal. Anda dapat menentukan apakah distro Anda telah menginstalnya untuk Anda dengan mengeluarkan perintah:

 #whereis resolvconf
 resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz

Bahkan yang paling penting, Anda dapat menentukan apakah Anda /etc/resolv.conftelah diubah menjadi tautan melalui perintah (file /etc/resolv.conf) di atas. Jika jawabannya adalah ASCII text, gunakan chattr, jika tidak ...

Jika Anda menggunakan IP statis, hal yang paling sederhana adalah menambahkan baris berikut (atau semacamnya)

 dns-nameservers 8.8.4.4 8.8.8.8

ke bait mendefinisikan properti antarmuka statis Anda di / etc / network / interfaces.

Jika Anda menggunakan laptop yang terhubung setiap saat ke jaringan yang berbeda, Anda dapat mengikuti LawrenceCsaran yang bagus. Tetapi, jika Anda memiliki resolvconf di sistem Anda, cara yang benar (dan paling sederhana) untuk menyediakan set DNS tetap adalah dengan menggunakan file di /etc/resolvconf/resolv.conf.d . Secara khusus, file-file berikut digunakan (lihat halaman Stephane Graber ):

basis : Digunakan ketika tidak ada data lain yang dapat ditemukan

head : Digunakan untuk header resolv.conf, dapat digunakan untuk memastikan server DNS selalu menjadi yang pertama dalam daftar

tail : Setiap entri berekor ditambahkan pada akhir resolv.conf yang dihasilkan.

Jadi tempatkan Anda server nama favorit di kepala , sebagai berikut

  nameserver 8.8.8.8

dan kamu selesai.

MariusMatutiae
sumber
2
@dhiller Ultrasawblade mengubah namanya menjadi LawrenceC, itu yang di bawah ini.
MariusMatutiae
Posting yang sangat bagus dan menarik, saya ingin Anda menambahkan beberapa tautan dokumentasi tentang topik ini untuk pengguna yang ingin tahu lebih banyak tentang topik ini, Thx
Philippe Gachoud
/etc/resolvconf/tidak ada secara default di Ubuntu 18.04.
Dan Dascalescu
9

Tambahkan baris yang mirip dengan /etc/dhcp/dhclient.confmenggunakan terminal root:

supersede domain-name-servers 74.122.198.48, 50.116.23.211;

Ini menyebabkan dhclient, program yang mengeluarkan permintaan DHCP dan membuat perubahan sesuai dengan apa yang dikatakan oleh responsnya, untuk mengganti informasi yang didapatnya dari server DHCP dengan yang di atas sebelum melakukan perubahan.

Di atas adalah dua server DNS OpenNIC. Ganti sesuai kebutuhan untuk server apa pun yang ingin Anda gunakan.

Karena ini terjadi setiap kali Anda mendapatkan info konfigurasi dari DHCP, jadi gunakan dhclient -v eth0atau antarmuka apa pun untuk menyegarkannya dan melihat perubahannya.

LawrenceC
sumber
1
Alih-alih hanya mengesampingkan DNS (biasanya router), orang dapat menambahkan baris prepend domain-name-servers 8.8.8.8misalnya. Ini akan menggunakan DNS ISP bila tersedia.
Axel Latvala
3

Tampaknya seperti yang disebutkan oleh @Rik bahwa alasan penggantian DNS pada reboot adalah karena manajer jaringan / utilitas yang diatur demikian. Di Linux Mint, sesuai tangkapan layar, saya mengatur metode IPv4 saya ke alamat Otomatis (DHCP) saja. Anda kemudian dapat memasukkan pengaturan yang benar di /etc/resolv.conf atau di bagian server DNS. Saya ingat di Ubuntu 13.04 server nama saya berubah beberapa kali selama periode waktu yang lama, tetapi setelah saya benar-benar pergi dan mengeditnya di GUI, semua tampak stabil dari sana di depan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Rudolph
sumber
3

Punya masalah yang sama, tetapi saya menggunakan alamat IP statis. Cara mengatasinya hanya menambahkan dns di / etc / network / interfaces

iface eth0 inet static
    address [your ip>
    netmask [your netmask]
    network [your network]
    broadcast [your broadcast]
    gateway [your gateway]
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers [dns server1] [dns server2]
    dns-search [your domain]
kanelbolle
sumber
Ya, itu memperbaikinya karena NetworkManager mengabaikan antarmuka yang terdaftar di /etc/network/interfaces. Tangkapan yang bagus!
Izzy
1

Jika Anda menggunakan wicd, klik kanan ikon dan klik info koneksi. Ketika jendela terbuka, klik properti yang Anda terhubung.

Periksa menggunakan DNS statis dan di baris yang mengatakan DNS server 1 ketik IP untuk Google DNS 8.8.8.8dan di baris untuk DNS server 2 ketik 8.8.4.4lalu klik "ok".

Jika Anda menerima kesalahan dari standarnya, Anda dapat menghubungi ISP Anda dan menyebutkannya kepada mereka. Mereka biasanya menetapkan server DNS ke modem Anda saat Anda terhubung dengannya.

Yames
sumber
0

Meretas jalan Anda chattr +iatau sejenisnya adalah solusi cepat yang terbaik, dan harus dihindari kapan pun memungkinkan (setidaknya untuk jangka panjang - seperti yang dikatakan, ini adalah solusi jangka pendek sampai orang menemukan waktu untuk solusi nyata) . Seperti yang sudah ditunjukkan, ini adalah pekerjaan untuk NetworkManager, yang menawarkan CLI yang bisa kita gunakan untuk itu:

# Temukan antarmuka mana yang akan disesuaikan
perangkat nmcli
# outputnya seperti:
# KONEKSI NEGARA JENIS PERANGKAT
# enp0s3 ethernet menghubungkan my-office
# lo loopback tidak dikelola -
# Dari itu, kita perlu SAMBUNGAN.

# Sekarang tambahkan "domain pencarian" kami:
koneksi nmcli memodifikasi ipv4.dns-kantor saya -cari contoh1.com
nmcli con mod my-office + ipv4.dns-search example2.com

# Dan server nama kami:
nmcli dapat memodifikasi ipv4.dns kantor saya 213.73.91.35
nmcli dapat memodifikasi kantor saya + ipv4.dns 87.118.100.175
# perhatikan "+" di baris kedua: tambahkan yang lain,
# saat baris pertama menimpa entri yang ada.
# kita bisa melakukannya dengan satu panggilan:
nmcli con memodifikasi ipv4.dns kantor saya "213.73.91.35 87.118.100.175"

# OK, jadi sekarang mari kita katakan untuk mengabaikan pembaruan dari server DHCP:
nmcli dapat memodifikasi kantor saya ipv4.ignore-auto-dns ya

# dan terapkan modifikasi pada konfigurasi kami yang sedang berjalan
nmcli menghubungi kantor saya

Jika Anda menggunakan alamat IP statis, Anda juga dapat menggunakan solusi dari jawaban kanelbolle .

Izzy
sumber
0

Menakjubkan bagaimana frustasi masalah kecil ini bisa mendapatkan, saat ini solusi yang diberikan untuk itu tidak lagi bekerja di Ubunutu 18,04.

Apa yang berhasil bagi saya adalah menimpa nameservernilai /etc/resolv.confpada setiap boot. sudoedit /etc/rc.localdan tambahkan baris ini:

 sed -i "s/nameserver 127.0.0.53/nameserver 8.8.8.8/" /etc/resolv.confsudo /etc/rc.local
Dan Dascalescu
sumber