manajer jaringan: cara menghentikan nm memperbarui /etc/resolv.conf

26

Saya tidak ingin manajer jaringan menambahkan server DNS yang diterima dari DHCP ke server saya /etc/resolv.conf.

Ketika mengkonfigurasi dari GUI / Koneksi / IPV4 dan memilih metode Otomatis (hanya alamat) itu masih menambahkan server DNS yang diterima melalui DHCP.

Apakah mungkin untuk melakukannya per koneksi (ssid spesifik?)

pengguna2913139
sumber
Jika Anda memilih metode "Hanya alamat otomatis (DHCP)" maka NetworkManager tidak akan, atau tidak seharusnya, mengubah resolv.conf saat mengaktifkan koneksi itu. Jika NetworkManager sebenarnya menambahkan alamat ke resolv.conf meskipun pengaturan "hanya alamat" maka ada bug di NetworkManager dan Anda harus melaporkan bug itu menggunakan Launchpad. Untuk menghentikan NetworkManager dari mengubah resolv.conf Anda harus memilih "Hanya alamat otomatis (DHCP)" di semua konfigurasi koneksi yang menjadi aktif pada sistem Anda.
jdthood
1
Anda dapat menggunakan GUI dalam pengaturan IPv4 pada koneksi dan memilih "adddresses saja" dalam mode, atau, lakukan apa yang dilakukannya sendiri dengan mengedit file koneksi yang sesuai di / etc / NetworkManager / system-koneksi / dan menambahkan abaikan-otomatis -dns = true line ke bagian [ipv4].
Sasha Pachev

Jawaban:

32

Salah satu cara untuk menghentikan Network Manager dari menambahkan dns-server ke /etc/resolv.conffile adalah dengan melakukan ini:

Pertama buka file nm conf /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

Dan tambahkan ini ke [main]bagian:

dns=none

Simpan dan keluar.

krt
sumber
Bagian utama adalah [main], tidak[Main]
AB
/etc/resolv.confbiasanya symlink - apakah Anda yakin membuatnya tidak berubah membuat target tautan juga tidak berubah?
muru
5
Ini tidak cocok untuk saya di debian jessie
Dimitri Kopriwa
5
Ini tidak berfungsi di Ubuntu 18.04
LuizAngioletti
1
Saya harus sudo service network-manager restartsebelum perubahan ke file .conf mulai berlaku.
Chris Moore
3

Favorit pribadi saya adalah menggunakan saluran supersede domain-name-serversmasuk /etc/dhcp/dhclient.conf. Tidak peduli apa yang disediakan jalur akses dns, ubuntu Anda akan selalu menggunakan dns yang ditentukan dalamdhclient.conf

Sampel dari file saya

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;
Sergiy Kolodyazhnyy
sumber
membuat garis seperti yang dijelaskan (menggunakan server 8.8.8.8) tidak berfungsi di Ubuntu 18.04.
LuizAngioletti
3
@LuizAngioletti 18.04 menggunakan berbagai jenis aplikasi manajer jaringan, yang disebut netplan. Jawaban ini ditulis untuk rilis pra-18.04. Saya dapat memperbaruinya nanti.
Sergiy Kolodyazhnyy
2

/etc/resolv.confterhubung ke /run/resolvconf/resolv.conf. NetworkManager tidak memperbarui /etc/resolv.conf secara langsung (hanya pembaruan / run/resolvconf/resolv.conf). Begitu:

  • hapus symlink ( rm /etc/resolv.conf)
  • tuliskan versi Anda sendiri /etc/resolv.conf
Taha Jahangir
sumber
1
Saya tahu ini adalah forum ubuntu tetapi ketika googling untuk centos ini masih hasil google pertama saya, jadi posting komentar untuk googler centos masa depan. ini tidak menyelesaikan masalah saya pada centos. Tampaknya manajer jaringan centos langsung bekerja di /etc/resolv.conf.
Tommy
Ini tidak benar untuk Debian Stretch. Ini menghapus file Anda dan menggantinya dengan symlink lain. Sangat menyebalkan.
HörmannHH
Berikut ini adalah satu untuk (divirtualisasikan) Fedora 25 menggunakan nmcli: Dalam /etc/sysconfig/network-scripts/ifcfg-ens3kita melihat bahwa PEERDNS=yesyang berarti (dalam hal ini, salah) informasi DNS diperoleh oleh DHCP, dan berakhir di /etc/resolv.conf. Saya hanya ingin 127.0.0.1 sebagai server nama. Menjalankan nmcli con mod ens3 ipf4.ignore-auto.dns yesmenghasilkan dalam PEERDNS=nofile konfigurasi antarmuka. Namun /etc/resolv.confmasih ada namseserverentri yang nyasar , jadi kalau harus restart koneksi nmcli con down ens3; nmcli con up ens3. Lihat juga: certdepot.net/rhel7-configure-ipv4-addresses
David Tonhofer
Pada Ubuntu 18.04, memulai ulang 'service network-manager restart' akan menyebabkan NM menimpa /etc/resolv.conf bahkan jika itu adalah file yang keras dan bukan symlink.
LuizAngioletti
0

Apa yang saya lakukan pada Debian Stretch:

  • rm /etc/resolv.conf ### (symlink)
  • sentuh /etc/resolv.conf
  • echo "nameserver xxxx" >> /etc/resolv.conf

Di mana "xxxx" adalah Alamat IP DNS Server pilihan Anda, dari OpenDNS, Google atau Cloudflare misalnya.

Terima kasih atas ide Taha Jahangir! Saya dapat mengonfirmasi bahwa saran Anda berfungsi untuk distribusi Debian Stretch saya

Emmanuel Supermanu15
sumber