บทนำ:
dnscrypt-proxy คืออะไร?
- DNSCrypt เข้ารหัสและตรวจสอบการรับส่งข้อมูล DNS ระหว่างผู้ใช้และตัวแก้ไข DNS ป้องกันการปลอมแปลงแบบสอบถาม DNS ในเครื่องทำให้มั่นใจได้ว่าการตอบกลับ DNS จะถูกส่งโดยเซิร์ฟเวอร์ที่เลือก (วิกิพีเดีย)
dnsmasq คืออะไร?
- dnsmasq ให้บริการเช่นแคช DNS และเซิร์ฟเวอร์ DHCP ในฐานะเซิร์ฟเวอร์ชื่อโดเมน (DNS) สามารถแคชแบบสอบถาม DNS เพื่อปรับปรุงความเร็วในการเชื่อมต่อไปยังไซต์ที่เยี่ยมชมก่อนหน้านี้และในฐานะเซิร์ฟเวอร์ DHCP สามารถใช้ dnsmasq เพื่อระบุที่อยู่ IP ภายในและเส้นทางไปยัง คอมพิวเตอร์บน LAN สามารถใช้บริการใดบริการหนึ่งหรือทั้งสองอย่างได้ dnsmasq ถือว่ามีน้ำหนักเบาและง่ายต่อการกำหนดค่า ออกแบบมาเพื่อใช้กับคอมพิวเตอร์ส่วนบุคคลหรือใช้กับเครือข่ายที่มีคอมพิวเตอร์น้อยกว่า 50 เครื่อง นอกจากนี้ยังมาพร้อมกับเซิร์ฟเวอร์ PXE (วิกิพีเดีย)
ฉันใช้อะไร:
- เพื่อแก้ไขไฟล์กำหนดค่าที่ฉันใช้ นาโน.
- ตลอดเวลาฉันทำกับบัญชีรูทของฉัน แต่ถ้าพวกเขากำหนดค่าไว้ sudoพวกเขาสามารถใช้งานได้อย่างเงียบ ๆ
- ในการตรวจสอบแคชด้วยคำสั่ง dig พบได้ในเครื่องมือผูก
ภายในที่เก็บอย่างเป็นทางการ pacman -S เครื่องมือผูก 🙂
การติดตั้ง:
- ในฐานะรูทหรือใช้ sudo ในเทอร์มินัลหรือ tty เราติดตั้งแพ็คเกจ dnscrypt-proxy และ dnsmasq ดังนี้:
- ข้อความเตือนเป็นเพราะฉันได้ติดตั้งไว้แล้วคุณเพียงแค่ต้องยืนยันโดยกด Enter:
การตั้งค่า:
1 - มาเปิดใช้งาน dnscrypt-proxy (จำไว้ว่าเป็นรูทหรือใช้ sudo):
2 - ตอนนี้เราแก้ไขไฟล์ / etc / resolv.conf และในเนมเซิร์ฟเวอร์เราจะลบสิ่งที่มีอยู่และใส่ 127.0.0.1 (หากต้องการให้สามารถสำรองไฟล์ได้) และควรมีลักษณะดังนี้:
- เมื่อพิจารณาว่า NetworkManager เขียนไฟล์ resolv.conf สิ่งที่เราจะทำคือป้องกันไม่ให้เขียนด้วยคำสั่งต่อไปนี้:
3 - ตอนนี้สิ่งที่เรากำลังจะทำคือมองหาเซิร์ฟเวอร์ที่ใกล้กับตำแหน่งของเรามากที่สุด แต่คุณสามารถใช้เซิร์ฟเวอร์ที่มาตามค่าเริ่มต้นซึ่งเป็น dnscrypt.eu-nl รายการสามารถเปิดด้วย localc ได้ที่นี่: / usr / share / dnscrypt-proxy / dnscrypt-resolvers.csv เช่นนี้: - หากเราต้องการแก้ไขเซิร์ฟเวอร์ที่แก้ไข DNS เริ่มต้นเราสามารถแก้ไขได้ดังนี้:
- ในตอนท้ายของไฟล์ในส่วน [บริการ] เราแก้ไขสิ่งที่เลือกเป็นสีเทาและเราวางเซิร์ฟเวอร์ที่เราเลือกไว้แล้วในรายการ:
4 - โดยค่าเริ่มต้น dnscrypt-proxy จะใช้พอร์ต 53 เนื่องจาก dnsmasq ก็ทำเช่นกันดังนั้นสิ่งที่เราจะทำคือเปลี่ยนใหม่โดยใช้:
systemctl แก้ไข dnscrypt-proxy.service –full และในส่วน [Socket] เราปล่อยไว้ดังนี้:
5 - ตอนนี้เรากำหนดค่า dnsmasq เรากำลังจะแก้ไขไฟล์ /etc/dnsmasq.conf และเพิ่มสามบรรทัดนี้ในตอนท้าย:
ไม่ได้รับการแก้ไข
เซิร์ฟเวอร์ = 127.0.0.1 # 40
ฟังที่อยู่ = 127.0.0.1
เราบันทึกการเปลี่ยนแปลงและปิด
6 - ตอนนี้เราทำสิ่งต่อไปนี้:
- เรารีสตาร์ท dnscrypt-proxy:
systemctl รีสตาร์ท dnscrypt-proxy
- เราเปิดใช้งาน dnsmasq:
systemctl เปิดใช้งาน dnsmasq
- เราดำเนินการ dnsmasq:
systemctl เริ่ม dnsmasq
- เราเริ่มการเชื่อมต่ออินเทอร์เน็ตของเราใหม่:
systemctl รีสตาร์ท NetworkManager
7 - ตอนนี้เราทดสอบว่ามันใช้งานได้จริงกับ ping หรือไม่เช่นไปที่ google.com.ar:
8 - เราตรวจสอบว่าแคช DNS ทำงานร่วมกับคำสั่ง dig หรือไม่:
- ที่นี่เราพิจารณาว่าการขุดครั้งแรกที่ฉันทำมีความล่าช้า 349 มิลลิวินาทีและเมื่อฉันค้นหาอีกครั้งด้วยการขุดจะเกิดอะไรขึ้น 0 msec จึงแคชถูกต้อง
9 - พร้อม dnscrypt-proxy และ dnsmasq กำหนดค่าและทำงานอย่างถูกต้อง!
หมายเหตุ: ฉันต้องการชี้แจงหลังจากค้นหาในหลาย ๆ ที่แล้วมันไม่ได้ผลสำหรับฉันในลักษณะที่พวกเขาแสดงใน arch wiki เวอร์ชันภาษาสเปนแปลได้ไม่ดี (จะเป็นคำถามว่ามีใครแปลได้ดีหรือฉันจะทำในบางจุด) ดังนั้นฉันจึงใช้เวอร์ชันนี้ใน ภาษาอังกฤษ. ดังนั้นฉันจึงพึ่งพาวิกิที่กล่าวโดยทั่วไปแล้วให้เครดิตกับพวกเขาทั้งหมด ในกรณีนี้เป็นขั้นตอนที่ฉันใช้และได้ผลสำหรับฉัน
คำถามหรือความไม่สะดวกใด ๆ โปรดแจ้งให้เราทราบและเราจะพูดคุยกันจนกว่าจะได้ผล!
กอดเป้าหมาย! 😀
ฉันไม่สังเกตเห็นความแตกต่างใด ๆ กับ dnsmasq บางทีเมื่อมีผู้ใช้มากขึ้นแคชก็จะใช้งานได้อย่างน้อยก็มีเพียงคอมพิวเตอร์ของฉันเท่านั้นที่ฉันไม่เห็นการเปลี่ยนแปลงความเร็ว
เวลาขุดที่มีและไม่มี dnsmasq ยังคงเหมือนเดิมอาจมีคนรู้เกี่ยวกับวิธีการอื่นและแบ่งปัน
ความนับถือ
ตามที่เห็นบนหน้าจอคุณจะเห็นความแตกต่างมากมายฉันคิดว่ามันจะขึ้นอยู่กับแบนด์วิดท์ด้วย ... 🙂
ภาพที่แนบมา:
imgur .com / 9RQ7yhF.png
ที่อยู่ DNS อยู่ในแคชด้วย dnsmasq นานเท่าใด ฉันจำได้ว่าเคยลองมาแล้วและหลังจากนั้นไม่กี่นาที 10 หรือ 5 dnsmasq ก็ลืมทุกอย่าง
ฉันไม่ได้เห็นสิ่งนั้นจริงๆ ... จุดที่ดี จะมีการปรึกษาหารืออาจมีนักวิชาการบางคนรู้และจะตอบเรา🙂
สวัสดีเมื่อฉันให้เป็น root "systemctl start dnsmasq" ฉันได้รับข้อผิดพลาดเมื่อให้คำสั่ง "systemctl status dnsmasq.service" นี่คือสิ่งที่ฉันได้รับ:
● dnsmasq.service - DHCP ที่มีน้ำหนักเบาและแคชเซิร์ฟเวอร์ DNS
โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/dnsmasq.service; เปิดใช้งานค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่จันทร์ 2016-03-07 11:41:41 ART; 18s ที่แล้ว
เอกสาร: man: dnsmasq (8)
กระบวนการ: 7747 ExecStart = / usr / bin / dnsmasq -k –enable-dbus –user = dnsmasq –pid-file (code = exited, status = 2)
กระบวนการ: 7742 ExecStartPre = / usr / bin / dnsmasq –test (code = exited สถานะ = 0 / SUCCESS)
PID หลัก: 7747 (รหัส = ออกสถานะ = 2)
อ. 07 11:41:41 Wisdom systemd [1]: การเริ่มต้น DHCP ที่มีน้ำหนักเบาและแคชเซิร์ฟเวอร์ DNS ...
อ. 07 11:41:41 Wisdom dnsmasq [7742]: dnsmasq: ไวยากรณ์ตรวจสอบตกลง
อังคาร 07 11:41:41 Wisdom dnsmasq [7747]: dnsmasq: ไม่สามารถสร้างซ็อกเก็ตการฟังสำหรับพอร์ต 53: แอดเดรสถูกใช้งานแล้ว
อังคาร 07 11:41:41 Wisdom systemd [1]: dnsmasq.service: ออกจากกระบวนการหลัก code = exited สถานะ = 2 / INVALIDARGUMENT
อ. 07 11:41:41 Wisdom systemd [1]: ล้มเหลวในการเริ่ม DHCP ที่มีน้ำหนักเบาและแคชเซิร์ฟเวอร์ DNS
อ. 07 11:41:41 Wisdom systemd [1]: dnsmasq.service: หน่วยเข้าสู่สถานะล้มเหลว
อ. 07 11:41:41 Wisdom systemd [1]: dnsmasq.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
ฉันควรทำอย่างไรดี? ขอขอบคุณ.
ฉันทำตามขั้นตอนของจดหมายตรวจสอบบทแนะนำต้นฉบับในบล็อกของฉัน ฉันฝากวิดีโอไว้ด้วย
@ice ice เปรียบเทียบโพสต์นี้กับวิดีโอของคุณฉันเห็นว่ามีข้อผิดพลาดในขั้นตอนที่ 4 เขียนไว้ที่นี่ และข้อผิดพลาดคือไฟล์ที่จะแก้ไขไม่ใช่ "systemctl edit dnscrypt-proxy.service –full" แต่ต้องแก้ไข "systemctl edit dnscrypt-proxy.socket –full" (โปรดทราบว่าแทนที่จะเป็น. service คุณต้องเขียน. socket)
นั่นเป็นเหตุผลที่ @wisse wisse ได้รับข้อความแสดงข้อผิดพลาดเมื่อต้องการเริ่มบริการ dnsmasq (เนื่องจากสิ่งเดียวกันนี้เกิดขึ้นกับฉันด้วย)
ทักทาย!