Openvpn istemcisi, DNS sunucusunu zorla


10

Linux Ubuntu yapılandırmamızın bir DNS sunucusu (Bind 9) var.
Ve resolv.confonun

  nameserver 127.0.0.1

Bu openvpnLinux'ta istemci kullanırken , ad sunucusu değişmez (VPN sunucusu tarafından), ancak x.y.z.topenvpn istemci yapılandırmasını değiştirerek - yalnızca VPN oturumu sırasında - başka bir belirli DNS sunucusuna ayarlamak istiyorum .

Ardından, openvpnoturum sona erdiğinde, ad sunucusu geri dönmelidir127.0.0.1 .

Bunu yapmak için "temiz" bir yol (yani openvpn istemci yapılandırma dosyasında bir satır) var mı?

(Not: VPN sunucusu yapılandırması değiştirilemez)

Yanıtlar:


17

Daha fazla googling yaptıktan sonra, birisine yardımcı olabilirse cevabı bulabilir.

  • config dosyasını kaydedip geri yükleyebilen resolvconf'u yükleresolv.conf
  • Bir komut dosyası tarafından çalıştırılacak eklemek openvpn içinde, /usr/share/openvpnadlandırılmış, update-resolv-conf. Komut dosyası, neyin yeni olması gerektiğini resolv.confve nasıl geri yükleneceğini belirler (aşağıdaki bağlantıya bakın)
  • Ekle

bu çizgiler

  script-security 2
  up /usr/share/openvpn/update-resolv-conf
  down /usr/share/openvpn/update-resolv-conf

openvpn istemci yapılandırma dosyasında.

Daha fazla bilgi için bu wiki'yi okuyun .


6
Daha yeni OpenVPN kurulumları bu betiği kurulumla birlikte içerir. Adresinden manuel olarak indirip yüklemek yerine, adresinde /usr/share/openvpn/update-resolv-confönceden yüklenmiş olarak bulabilirsiniz /etc/openvpn/update-resolv-conf.
Nate Lampton

Hangi OpenVPN sürümü bu dosyayı eklemeye başladı?
lanoxx

1
Burada partiye biraz geç ama kullanıyorum 2.4.6ve benim için kuruldu
Roshan Bhumbra

1

Bağlantı kurulumundaki yapılandırmanızı uygun gördüğünüz şekilde değiştirmek için istemcinizde route-up/ route-downkomut dosyaları kullanmayı düşünün . Bunu nasıl ayarlayacağınız ve bu komut dosyalarında hangi değişkenleri kullanabileceğinizle ilgili ayrıntılar için OpenVPN belgelerine bakın .


+1, ilginç ve kullanışlı. Ancak , yukarı ve aşağı yoluyla çözme çözümü (derecelendirmeye göre yukarıda veya aşağıda) .. daha temiz, ve daha temiz.
e2-e4

@ ring0 Yarış koşullarını en aza indirmek route-upyerine kullanmayı öneririm up. Ne zaman upkomut dosyası çalıştırıldığında, bağlantı henüz kurmak ve uzak çözümleyicinizi sen ayar sorgulamak için hiçbir şansı yoktur. OpenVPN istemcisini bağlantı kurulumunun tamamlanmayacağı bir durumda başlatırsanız, çözümleyicinizi uzun bir süre için muhtemelen işlevsel olmayan bir duruma geçirirsiniz. Ayrıntılar için OpenVPN kılavuz sayfasındaki "Kod Yürütme Sırası" bölümüne bakın.
the-wabbit

Birkaç test yaptım ve "Başlatma Sırası Tamamlandı" değerine ulaşıldığında yukarı komut dosyası çağrıldı, daha önce değil. Btw erkekte "rota" bulamaz.
e2-e4

1

Bu, bu sorunu çözmeme yardımcı olacak yararlı bilgilerdi.

Ben bir kemer linux kullanıcısıyım ve gördüm ki, bir Linux istemcisi Access Server ile kullanıldığında, bu istemcideki DNS ayarlarını değiştiremez, çünkü ana bilgisayar çözümünü AÇIK VPN Belgelerinde olduğu gibi çözemez

Sorunu gideren bir komut dosyası oluşturdum ve birkaç ekstra parametre ile komut satırı üzerinden openvpn bağlantılarını işledim.

https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477

Bağlantı için yürütülen ana komut şöyledir:

  nohup openvpn --config $OVPN_FILE_PATH --askpass $OVPN_PRIVATE_KEY_FILE_PATH \
  --script-security 2 \
  --setenv PATH '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
  --up /etc/openvpn/scripts/update-systemd-resolved \
  --down /etc/openvpn/scripts/update-systemd-resolved \
  --down-pre \
  &>/dev/null &

Herhangi bir geri bildirim takdir daha fazladır.


-2

echo "nameserver = wxyz"> /etc/resolv.conf
echo "nameserver = 127.0.0.1" >> /etc/resolv.conf


2
Bu yanlış görünüyor (DNS arama yolunu ve VPN ad sunucusunun kalıcılığını düşünün), ancak bunu nereye koymasını istediğiniz de belirsiz.
Falcon Momot

'Nameserver' ve IP arasında boşluk olmalıdır.
lorenzog
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.