วิธีการตั้งค่าตัวแก้ไข DNS ใน Fedora โดยใช้ network-manager?


16

ฉันต้องการลองใช้ DNS สาธารณะของ Google สำหรับเรื่องนี้ฉันต้องเปลี่ยนที่อยู่ nameserver ฉันรู้ว่ามันอยู่ในไฟล์/etc/resolv.confแต่เมื่อใดก็ตามที่ฉันเริ่มnetwork-managerมันจะเขียนทับค่าในไฟล์นั้นด้วยสิ่งที่ได้รับโดยใช้ DHCP

ฉันจะบอกได้อย่างไรว่าจะไม่ทำ ฉันดูผ่าน GUI แต่ฉันสามารถหาตัวเลือกเพื่อเพิ่มที่อยู่ IP เพิ่มเติมเท่านั้น

ด้านล่างเป็นรางวัล :)

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


11

วิธีที่ # 1

ค้นหาแฟ้มการกำหนดค่า NetworkManager และเพิ่ม / แก้ไขรายการต่อไปนี้ (ใน CentOS5 มันอยู่ใน/etc/NetworkManager/nm-system-settings.confหรือ/etc/NetworkManager/system-connections/) และไฟล์แก้ไขเชื่อมต่อ DSL ของคุณ:

[ipv4]
method=auto
dns=8.8.8.8;4.2.2.2;
ignore-auto-dns=true

หมายเหตุ: - หาก[ipv4]ไม่ได้ผลให้ลองใช้[ppp]

วิธีที่ # 2

คุณสามารถเปลี่ยนได้รับอนุญาตจาก/etc/resolv.confเพื่อที่จะไม่สามารถเขียนได้โดยการให้บริการอื่น ๆ chattrหรือคุณสามารถใช้

วิธีที่ # 3

สร้างสคริปต์ตามที่ระบุไว้ด้านล่าง/etc/Networkmanager/dispatcher.d/และอย่าลืมที่จะใช้งานได้:

#!/bin/bash
#
# Override /etc/resolv.conf and tell
# NetworkManagerDispatcher to go pluck itself.
#
# scripts in the /etc/NetworkManager/dispatcher.d/ directory
# are called alphabetically and are passed two parameters:
# $1 is the interface name, and $2 is "up" or "down" as the
# case may be.

# Here, no matter what interface or state, override the
# created resolver config with my config.

cp -f /etc/resolv.conf.myDNSoverride /etc/resolv.conf

รายการของ /etc/resolv.conf.myDNSoverride

nameserver 8.8.8.8

ไม่ :) มันจะต้องเขียนทับในภายหลังหลังจากที่ได้รับข้อมูลบางอย่างจาก ISP แต่นี่ทำให้ฉันมีความคิดบางอย่างฉันจะไปดังก้องผ่านnetwork-scriptsบางทีอาจจะมีบาง ...
wvxvw

หากวิธีที่ # 3 ไม่ทำงานคุณอาจได้รับการแก้ไขที่ประสบความสำเร็จมากกว่า/etc/ppp/ip-up.localซึ่งเรียกได้ว่าเมื่อ pppd สร้างการเชื่อมต่อแล้ว
Drav Sloan

@DravSloan ฉันขอบคุณ ans ของคุณมันใช้งานได้ แต่ฉันพบแฮ็คบน Google ที่ฉันโพสต์ที่นี่ .. มาดูกัน
ราหุลปาติล

# 1 ใช้งานได้สำหรับฉันขอบคุณมาก!
wvxvw

อย่างน้อยบน Debian Jessie ไฟล์ nm-system-settings.conf ไม่มีอยู่แม้ว่าจะมี man page สำหรับมัน man page statest ที่ nm-system-settings เลิกกับ NetworkManager / NetworkManager.conf เป็นค่าเริ่มต้นใหม่
jeremiah

7

มองไปที่:

$ man NetworkManager.conf

มันดูเหมือนว่าถ้าคุณเพิ่มเส้นด้วยdns=noneใน[main]ส่วน NetworkManager /etc/resolv.confจะไม่ได้สัมผัส


1
ไม่ไม่ช่วย มันเขียนมันใหม่อยู่ดี มากเท่าที่ฉันจะอนุมานได้จากไฟล์นั้นปลั๊กอินในส่วนนั้นมีไว้สำหรับแคชระเบียน DNS ที่ดึงมา แต่ฉันอาจจะผิด
wvxvw

2
คุณรีสตาร์ท NetworkManager หลังจากแก้ไขไฟล์หรือไม่
rickhg12hs

ฉันปิดใช้งานและเปิดใช้งานเครือข่ายผ่านวิดเจ็ต KDE ฉันเชื่อว่าสิ่งนี้ควรเริ่มต้นใหม่ น่าเสียดายที่การรีสตาร์ทผ่านservice NetworkManager restartไม่ทำงาน - ไม่ทราบสาเหตุ: | มันล้มเหลวในการเชื่อมต่อหลังจากฉันลองรีสตาร์ทเช่นนี้
wvxvw

แปลกมากที่restartไม่ได้ผล ฉันไม่ได้พบว่าในระบบใด ๆ ที่ฉันใช้
rickhg12hs

3
ตกลงดังนั้นการตั้งค่าdns=noneใน/etc/NetworkManagerบน Fedora 24 ... (ยังมีเก่าPEERDNS=noneใน/etc/sysconfig/network-scripts/ifcfg-${IFNAME}(ตามที่อธิบายไว้ที่นี่เช่น ... มันยังคงใช้) ... เริ่มต้นใหม่ทั้งกล่องเพื่อตรวจสอบมันทำงานอย่างไร..
เดวิด TONHOFER

3

PPPD senario

การใช้pponและอาจหมายถึงคุณกำลังใช้ppoff pppdซึ่งในกรณีนี้จะรันสคริปต์pon /etc/ppp/ppp_on_bootถ้าคุณจัดหาอาร์กิวเมนต์ไปก็จะโหลดการตั้งค่าจากpon /etc/ppp/peers/providerถ้าคุณให้ทะเลาะกันก็จะพูดเช่นนั้นก็จะมองหาpon interwebz /etc/ppp/peers/interwebzนอกจากนี้ยังมี/etc/ppp/optionsการตรวจสอบด้วย

usepeerdnsฉันคิดว่าไฟล์นี้มีการตั้งค่า จาก pppd man page:

usepeerdns
   Ask the peer for up to 2 DNS server addresses. The addresses supplied by the peer 
   (if any) are passed to the /etc/ppp/ip-up script in the environment variables 
   DNS1 and DNS2, and the environment variable USEPEERDNS will be set to 1. In 
   addition, pppd will create an /etc/ppp/resolv.conf file containing one or two
   nameserver lines with the address(es) supplied by the peer. 

แสดงความคิดเห็นตัวเลือกนี้หยุดpppdด้วยpoffแก้ไขของคุณresolv.confแล้วเริ่มต้นใหม่pppdด้วยponและดูว่าสามารถแก้ไขปัญหาได้หรือไม่

sen0 senario

หากคุณแก้ไขไฟล์การตั้งค่าอินเทอร์เฟซของคุณ ( /etc/sysconfig/network-scripts/ifcfg-eth0สำหรับ eth0) คุณสามารถดูว่าผู้จัดการเครือข่ายการตั้งค่าใดกำลังใช้งานอยู่

ถ้าคุณได้ DHCP ทำงานบนอินเตอร์เฟซที่BOOTPROTO=yesแล้วคุณสามารถบอกได้ว่ามันจะไม่แทนที่การตั้งค่า DNS PEERDNS=noของคุณด้วย หากคุณใช้ที่อยู่คงที่จากนั้นคุณสามารถตั้งค่า DNS ด้วย

DNS1="8.8.4.4"
DNS2="8.8.8.8"
SEARCH="yourdomain.com"

ขอบคุณปิด แต่ยังไม่ อินเทอร์เฟซที่ใช้อยู่pppและไม่มีifcfg-pppไฟล์ที่เกี่ยวข้อง: |
wvxvw

การเชื่อมต่อแบบจุดต่อจุดของคุณสร้างขึ้นอย่างไร? มันเป็นวิธีการกำหนดค่า?
Drav Sloan

สิ่งที่น่าสนใจเกี่ยวกับมันคือฉันไม่รู้ว่ามันถูกสร้างขึ้นมาอย่างไร :) ทั้งหมดที่ฉันรู้คือponและใช้poffงานได้อย่างวิเศษและ NetworkManager สามารถใช้งานได้ การเดาครั้งแรกของฉันคือว่ามันเคยเป็นpppoeconfมา แต่มันไม่ได้ติดตั้งที่นี่ ...
wvxvw

อัปเดตเพื่อดูว่าคุณสามารถเปลี่ยนได้ด้วยการตั้งค่าของ pppd
Drav Sloan

ขอบคุณมากสำหรับเวลาของคุณแม้ว่าในที่สุดฉันก็ใช้คำตอบของราหุลปาติลนี่เป็นเรื่องการศึกษามาก!
wvxvw

2

คุณสามารถทำได้ใน GUI การกำหนดค่าตัวจัดการเครือข่ายแม้ว่าเท่าที่ฉันสามารถเห็นมันจะต้องทำต่อการเชื่อมต่อและไม่สามารถทำได้ทั่วโลกซึ่งหมายความว่าคุณต้องกำหนดค่าเป็นรายบุคคลสำหรับการเชื่อมต่อ wifi แต่ละ (นั่นเป็นเรื่องที่น่ารำคาญ แต่ก็มีข้อได้เปรียบเนื่องจากเครือข่าย wifi จำนวนมากบล็อก DNS ไปยังสิ่งใดนอกจากเซิร์ฟเวอร์ภายในสำหรับดีกว่าหรือแย่กว่าดังนั้นการกำหนดค่าส่วนบุคคลจึงมีความจำเป็นสำหรับสิ่งที่ทำงานได้)

ไม่ว่าในกรณีใดก็ตามใน Fedora 19 ให้ไปที่กล่อง "การตั้งค่าเครือข่าย" ที่คุณได้รับจากการเลื่อนลงโดยผู้จัดการเครือข่ายหรือเรียกใช้แผงการตั้งค่าการเชื่อมต่อเครือข่าย (เพราะเหตุใดทั้งสองจึงแตกต่างกันฉันเดาว่าจะมีการเปลี่ยนแปลง) ในกรณีใด ๆ คุณสามารถแก้ไขแต่ละการเชื่อมต่อและในอินเทอร์เฟซทั้งสองให้ค้นหาแท็บ IPv4

ในตัวกำหนดค่าเครือข่ายให้เปลี่ยนอัตโนมัติจากเปิดเป็นปิดและใส่ที่อยู่ Google หรือใน GUI การเชื่อมต่อเครือข่ายให้เปลี่ยนวิธีจาก "อัตโนมัติ (DHCP)" เป็น "ที่อยู่อัตโนมัติ (DHCP) เท่านั้น" และป้อน DNS ในกล่องอีกครั้ง


1

ฉันเพิ่มdns=noneไปยังส่วนหลักของ/etc/Networkmanager/NetworkManager.confจากนั้นรีบูตซึ่ง NetworkManager หยุดการเขียนคำสั่งการค้นหา/etc/resolv.confมากเกินไป

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