ไคลเอนต์ Openvpn บังคับเซิร์ฟเวอร์ DNS


10

การกำหนดค่า Linux Ubuntu ของเรามีเซิร์ฟเวอร์ DNS (ผูก 9)
และresolv.confก็มี

  nameserver 127.0.0.1

เมื่อใช้openvpnไคลเอนต์บน Linux นั้นเซิร์ฟเวอร์ชื่อจะไม่เปลี่ยนแปลง (โดยเซิร์ฟเวอร์ VPN) แต่ฉันต้องการตั้งค่า - ระหว่างเซสชัน VPN - เป็นเซิร์ฟเวอร์ DNS x.y.z.tอื่นโดยเปลี่ยนการตั้งค่าไคลเอนต์ openvpn

จากนั้นเมื่อopenvpnเซสชั่นปลายnameserver127.0.0.1ควรจะกลับไป

มีวิธี "สะอาด" (เช่นบรรทัดในไฟล์กำหนดค่าไคลเอนต์ openvpn) ทำเช่นนั้น?

(หมายเหตุ: การกำหนดค่าเซิร์ฟเวอร์ VPN ไม่สามารถเปลี่ยนแปลงได้)

คำตอบ:


17

หลังจาก googling มากขึ้นสามารถค้นหาคำตอบ - ด้านล่างถ้าสามารถช่วยใครบางคน

  • ติดตั้งresolvconfซึ่งสามารถบันทึกและกู้คืนresolv.confไฟล์กำหนดค่า
  • เพิ่มสคริปต์ที่จะดำเนินการโดยOpenVPNในชื่อ/usr/share/openvpn update-resolv-confสคริปต์จะกำหนดสิ่งที่ควรเป็นใหม่resolv.confและวิธีการคืนค่า (ดูลิงค์ด้านล่าง)
  • เพิ่ม

เส้นเหล่านี้

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

ในไฟล์กำหนดค่าไคลเอนต์ openvpn

อ่านวิกินี้สำหรับข้อมูลเพิ่มเติม


6
การติดตั้งใหม่ของ OpenVPN รวมถึงสคริปต์นี้ด้วยการติดตั้ง แทนการดาวน์โหลดและติดตั้งที่คุณสามารถหาได้ติดตั้งที่/usr/share/openvpn/update-resolv-conf /etc/openvpn/update-resolv-conf
Nate Lampton

เวอร์ชันของ OpenVPN เริ่มรวมไฟล์นี้หรือไม่
lanoxx

1
บิตปลายไปงานเลี้ยงที่นี่ แต่ฉันใช้2.4.6และจะได้รับการติดตั้งสำหรับฉัน
ชาน Bhumbra

1

พิจารณาใช้route-up/ route-downสคริปต์บนไคลเอนต์ของคุณเพื่อเปลี่ยนการกำหนดค่าของคุณในการตั้งค่าการเชื่อมต่อตามที่เห็นสมควร ดูเอกสาร OpenVPNเกี่ยวกับรายละเอียดวิธีการตั้งค่าและตัวแปรที่คุณอาจใช้ในสคริปต์เหล่านี้


+1 น่าสนใจและมีประโยชน์ resolvconfแก้ปัญหาผ่านทางขึ้นและลง (ด้านบนหรือด้านล่าง DEP. ในคะแนน .. ) มี แต่ขึ้นไปยังจุดและ IMO ทำความสะอาด
e2-e4

@ ring0 ฉันจะแนะนำให้ใช้route-upแทนupเพื่อลดสภาพการแข่งขัน เมื่อเรียกใช้งานupสคริปต์การเชื่อมต่อยังไม่ได้ตั้งค่าและคุณไม่มีโอกาสสอบถามตัวแก้ไขระยะไกลที่คุณตั้งค่า หากคุณเริ่มต้นไคลเอนต์ OpenVPN ในสถานการณ์ที่การตั้งค่าการเชื่อมต่อไม่สมบูรณ์คุณกำลังวางตัวแก้ไขของคุณให้อยู่ในสถานะที่ไม่สามารถใช้งานได้เป็นระยะเวลานาน ดูส่วน "คำสั่งสคริปต์ของการดำเนินการ" ในหน้าOpenVPNสำหรับรายละเอียด
the-wabbit

ฉันทำการทดสอบไม่กี่ครั้งและสคริปต์upจะถูกต้องเมื่อถึง "การเตรียมใช้งานการเตรียมใช้งานเสร็จสมบูรณ์" ไม่ถึงก่อน Btw ไม่พบ "เส้นทางลง" ในมนุษย์
e2-e4

1

นี่เป็นข้อมูลที่มีประโยชน์เพื่อช่วยฉันแก้ไขปัญหานี้

ฉันเป็นผู้ใช้ arch linux และสิ่งที่ฉันเห็นคือเมื่อใช้ไคลเอนต์ Linux กับ Access Server แล้วสิ่งนี้ไม่สามารถเปลี่ยนการตั้งค่า DNS บนไคลเอนต์ที่มีปัญหาถามว่าไม่ได้แก้ปัญหาโฮสต์เนื่องจากย่อมาจากOPEN VPN Documentation

ฉันสร้างสคริปต์ที่แก้ไขปัญหาและด้วยพารามิเตอร์พิเศษสองสามอย่างจัดการการเชื่อมต่อ openvpn ผ่านทางบรรทัดคำสั่ง

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

นี่คือคำสั่งหลักที่ถูกเรียกใช้สำหรับการเชื่อมต่อ:

  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 &

ข้อเสนอแนะใด ๆ มากกว่าชื่นชมมัน


-2

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


2
ดูเหมือนว่าไม่แน่นอน (ลองคิดถึงเส้นทางการค้นหา DNS และการคงอยู่ของเซิร์ฟเวอร์ชื่อ VPN) แต่ก็ไม่ชัดเจนว่าคุณต้องการให้เขาใส่สิ่งนี้ไว้ที่ใด
Falcon Momot

ควรมีช่องว่างระหว่าง 'nameserver' และ IP
lorenzog
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.