GNU/Linux >> Belajar Linux >  >> Ubuntu

Systemd-resolved, Resolvconf.service, Resolvconf Dan Openresolv. Mengapa, Yang Dan Bagaimana?

Saya menggunakan klien VPN yang menambahkan dua server nama ke /etc/resolv.conf . Semua koneksi saya dikelola oleh Network-Manager.

Saya harus menggunakan klien VPN ini untuk VPN pekerjaan saya tetapi setelah Ubuntu pergi ke systemd-resolved di 16.10 saya mengalami masalah dengan koneksi dan DNS saya. Sepertinya systemd-resolved mengubah /etc/resolv.conf kembali ke server nama default untuk beberapa alasan yang membuat halaman internal tidak terselesaikan. Saya melihat ini lagi dan akhirnya mengganti resolvconf dengan openresolv . Itu banyak membantu, tetapi masih systemd-resolved mengatur ulang /etc/resolv.conf setelah VPN aktif beberapa saat.

Bisa saja saat koneksi sedang naik atau setelah beberapa menit atau terkadang tidak sama sekali. Saya kemudian menonaktifkan systemd-resolved dan systemd resolvconf.service dan hanya jalankan openresolv . Tampaknya semuanya berfungsi dengan baik.

Namun, ini semua sangat membingungkan. Apakah ada alasan untuk menggunakan systemd-resolved dengan salah satu dari yang lain? Itu diaktifkan di Ubuntu 16.10 jadi saya pikir pasti ada alasan untuk itu tetapi tampaknya menyebabkan perebutan /etc/resolv.conf .

Akan sangat bagus jika saya bisa menjalankan operesolv dan jelaskan ini. Saya telah membaca sedikit tentangnya tetapi saya masih tidak mengerti mengapa /etc/resolv.conf dikelola seperti itu, hanya itu ketika saya menggunakan systemd untuk itu saya tidak dapat menggunakan klien VPN saya.

Jawaban yang Diterima:

Saya berhasil mengubah skrip yang menangani item konfigurasi ini di OpenVPN di Ubuntu (diuji pada 18.04). Ini tambalan untuk itu:

--- /etc/openvpn/update-resolv-conf.orig    2019-03-13 19:14:16.163914424 +0400
+++ /etc/openvpn/update-resolv-conf 2019-03-13 19:29:30.380420708 +0400
@@ -15,7 +15,7 @@
 #     foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
 #

-[ -x /sbin/resolvconf ] || exit 0
+[ -x /usr/bin/systemd-resolve ] || exit 0
 [ "$script_type" ] || exit 0
 [ "$dev" ] || exit 0

@@ -43,16 +43,16 @@
        fi
    done
    R=""
-   [ "$SRCHS" ] && R="search $SRCHS
-"
+   for SRCH in $SRCHS ; do
+       R="${R}--set-domain=$SRCH "
+   done
    for NS in $NMSRVRS ; do
-           R="${R}nameserver $NS
-"
+       R="${R}--set-dns=$NS "
    done
-   echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
+   /usr/bin/systemd-resolve -i ${dev} ${R}
    ;;
   down)
-   /sbin/resolvconf -d "${dev}.openvpn"
+   echo "Doing nothing, interface disappears."
    ;;
 esac

Anda perlu menambahkan item berikut ke file konfigurasi OpenVPN Anda:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Ubuntu
  1. Cara Menginstal dan Mengonfigurasi Fail2Ban di CentOS 8 dan Fedora 33

  2. Redis sebagai Cache:Cara Kerja dan Mengapa Menggunakannya

  3. Bagaimana dan Mengapa Menggunakan Host Docker Jarak Jauh

  1. Mengapa Data Penting Dan Bagaimana Cara Melindunginya

  2. Cara menginstal dan mengkonfigurasi Dovecot

  3. Cara menginstal dan mengkonfigurasi Redis 6 di Fedora 34

  1. Cara Memulai, Menghentikan, dan Memulai Ulang Layanan di Linux

  2. Cara Menginstal dan Mengkonfigurasi OpenSSH di Ubuntu 16.04

  3. Cara Menginstal dan Mengonfigurasi Redis di Debian