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