ping 8.8.8.8 ใช้งานได้ แต่ ping www.google.com ไม่ทำงาน


12

ฉันใช้เซิร์ฟเวอร์อูบุนตู 16.04.2 และapt-get updateคืนความล้มเหลวชั่วคราวในการแก้ไข "ทุกอย่างในรายการ"

  • เมื่อฉัน ping www.google.com มันจะตอบสนองกับโฮสต์ที่ไม่รู้จัก
  • เมื่อฉัน ping กับ 8.8.8.8 ฉันจะได้รับแพ็กเก็ตที่ส่งโดยไม่มีข้อผิดพลาด ฯลฯ

ฉันได้ลอง "แก้ไข" ทุกครั้งที่ฉันพบในฟอรัม Ubuntu และทั่วโลกอินเทอร์เน็ตที่เหลือและไม่มีอะไรทำงาน resolv.confว่างเปล่าแสดง ifconfig NIC ทำงานไฟร์วอลล์ปิดและผมโยนไปค้อนเพียงในกรณีที่ น่าเสียดายที่ฉันกำลังพิมพ์สิ่งนี้บนคอมพิวเตอร์เครื่องอื่นบนเครือข่ายเดียวกัน แต่ไม่สามารถแนบข้อความจากเอาต์พุตต่างๆเพื่อแสดงว่าเกิดอะไรขึ้น ต้องการความช่วยเหลือในเรื่องนี้โปรด

ไฟล์ resolv.conf มีบรรทัดเหล่านี้:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search 8.8.8.8 8.8.4.4

บรรทัดสุดท้ายถูกวางไว้โดยไฟล์อินเตอร์เฟสเมื่อคุณรีบูตระบบ นี่คือใหม่สำหรับ 16.04LTS ฉันคิดว่า Windows NT4 นั้นไม่ได้แย่ขนาดนั้นและ Ubuntu Server 12 ก็ไม่ได้เช่นกัน


2
ระบบของคุณใช้เป็นที่อยู่ IP ได้อย่างไร มันมาจากเซิร์ฟเวอร์ DHCP หรือไม่? มันเป็น IP แบบคงที่? ความสามารถในการ ping ที่อยู่ IP จะทำงานโดยไม่มีการตั้งค่า IP เซิร์ฟเวอร์ DNS แต่ดูเหมือนว่าคุณไม่มีการตั้งค่าที่อยู่ DNS หรือ DHCP ของคุณไม่ได้ให้บริการ
— Terrance

IP เป็นแบบคงที่ ฉันไม่เคยติดตั้งเซิร์ฟเวอร์ DNS เมื่อฉันติดตั้งซอฟต์แวร์เซิร์ฟเวอร์
— Gary Mercer

ดูaskubuntu.com/questions/143819/และเพิ่มรายการ DNS ของคุณเช่นเซิร์ฟเวอร์ DNS ของ Google ที่ 8.8.8.8 และ 8.8.4.4
— Terrance

ฉันทำทุกอย่าง IP แบบสแตติกของฉันมาจาก & t กล่อง vdsl ฉันใช้เซิร์ฟเวอร์ชื่อ dns และ ip-search ของ DNS สิ่งเดียวที่ฉันสามารถอนุมานได้คือที่ & t กำลังบล็อกคิวรี dns
— Gary Mercer

น่าสนใจ บางทีคุณอาจต้องการติดต่อ AT&T และดูว่าพวกเขากำลังบล็อกอยู่หรือไม่ ฉันเดาว่าคุณสามารถลองเปลี่ยนเซิร์ฟเวอร์ DNS เป็นเซิร์ฟเวอร์ Google DNS และดูว่าใช้งานได้หรือไม่
— Terrance

คำตอบ:


17

คุณต้องการเนมเซิร์ฟเวอร์ใน/etc/resolv.confไฟล์ของคุณ แก้ไขของคุณ/etc/resolv.confและเพิ่มเซิร์ฟเวอร์ชื่อที่ใช้งานได้ Google 8.8.8.8ให้ฟรีหนึ่ง

ทำเช่นนี้:

$ nano /etc/resolv.conf

วางสิ่งนี้เป็นบรรทัดแรกที่ไม่มีความคิดเห็น:

nameserver 8.8.8.8

คุณสามารถตรวจสอบการทำงานนี้ด้วย:

$ ping -c10 www.google.com

คุณสามารถทำให้การเปลี่ยนแปลงนี้อย่างถาวรโดยการเพิ่มเส้นไฟล์นี้ของคุณ/etc/resolvconf/resolv.conf.d/headไฟล์


Whoopie! ที่ประสบความสำเร็จ! ขอโทษนะ 36 ชั่วโมงในการต่อสู้กับกล่องนี้ ... มันใช้ได้ ฉันยังใส่ at & t ip's และใช้งานได้ ขอบคุณพวกคุณทุกคนสำหรับความช่วยเหลือและความรวดเร็ว (มิสเตอร์โมเดอเรเตอร์คนพวกนี้ต้องการตบหลังเพื่อให้ง่ายขึ้นกับขยะที่ไร้อารมณ์)
— Gary Mercer

resolv.conf ไม่ได้รับอนุญาตให้แก้ไข
— Syam kumar KK

ตรงกันข้ามกับคำตอบของ @Ragy Morkos มันใช้ได้กับฉันเช่นกันใน Ubuntu 18.04 LTS
— Gwang-Jin Kim

ขอบคุณมาก! ฉันไม่สามารถ ping www.google.com หลังจาก ching-ing เข้าสู่อูบุนตูของฉัน ขอบคุณวิธีแก้ปัญหาของคุณตอนนี้ฉันสามารถทำการติดตั้งและอื่น ๆ ในพาร์ติชัน chroot-ed
— Gwang-Jin Kim

3

คำตอบที่ทำเครื่องหมายไว้แล้วไม่ทำงานบน Ubuntu 18.04.01 ในการแก้ไขปัญหานี้นี่คือสิ่งที่ฉันทำ:

  • ปฏิบัติ sudo gedit /usr/lib/systemd/resolv.conf
  • วางnameserver 8.8.8.8(และ / หรือเนมเซิร์ฟเวอร์อื่นที่คุณต้องการ) จากนั้นบันทึกและออก
  • เพิ่ม symlink โดยดำเนินการ sudo ln -sf /usr/lib/systemd/resolv.conf /etc/resolv.conf

เครดิตไปที่https://askubuntu.com/a/1050280/899241


2

คุณสามารถโพสต์ลิงค์ไปยังหน้าที่บอกว่าไฟล์ resolv.conf ควรว่างเปล่าหรือไม่? ฉันเดาว่ามันทำให้เข้าใจผิดที่ดีที่สุด

แก้ไขไฟล์นั้นด้วยคำสั่งsudo nano /etc/resolv.confและใส่บรรทัดเดียว:

nameserver 8.8.8.8

ที่ควรแก้ไขการจำแนกชื่อของคุณและโปรแกรมต่าง ๆ ที่ใช้งาน - ping, apt-get, etc.

คุณควรตรวจสอบสาเหตุที่ resolv.conf ว่างเปล่า บางทีเซิร์ฟเวอร์ DHCP ของคุณไม่ได้รับการกำหนดค่าอย่างเหมาะสม


นี่คือสิ่งที่ไฟล์มี: # Dynamic resolv.conf (5) ไฟล์สำหรับ glibc resolver (3) ที่สร้างขึ้นโดย resolvconf (8) # อย่าแก้ไขไฟล์นี้ด้วยมือ - การเปลี่ยนแปลงของคุณจะถูกค้นอีกครั้ง 8.8.8.8 8.8.4.4 บรรทัดสุดท้ายถูกวางไว้โดยไฟล์อินเตอร์เฟสเมื่อคุณรีบูตระบบ
— Gary Mercer

@GaryMercer โปรดเพิ่มคำถามของคุณ เป็นการยากที่จะอ่านในความคิดเห็น
— wjandrea

0

ไม่ได้เป็นความคิดที่ดีบน Ubuntu 16.04.x /etc/resolv.confเพียงเขียนทับ ระบบปฏิบัติการจะเขียนทับมันด้วยตัวเองมีโอกาสมากที่สุด

ไฟล์/etc/resolv.confมักจะเป็นลิงก์สัญลักษณ์ไปยังไฟล์อื่น:

ls -lisa /etc/resolv.conf
1310924 0 lrwxrwxrwx 1 root root 29 Jul 13  2016 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

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

ลองnmtuiและเพิ่มเซิร์ฟเวอร์ DNS ที่ถูกต้องที่นั่น ฉันจะใช้8.8.8.8เป็น DNS สำรองเท่านั้น DNS หลักของคุณควรเป็นเครื่องหรือเราเตอร์ใกล้กับเครือข่ายท้องถิ่นของคุณหรืออะไรก็ตามที่คุณมี


ไม่มีผู้จัดการเครือข่าย มันเป็นเซิร์ฟเวอร์ที่ไม่มีกุย ฉันติดตั้ง dnsutils ก่อนที่จะเลิกเชื่อมต่อกับที่เก็บ
— Gary Mercer

@Gary Mercer: คุณนำอินเทอร์เฟซเครือข่ายมาได้อย่างไร (ifup และ ifdown?) Network Managers GUI เป็นองค์ประกอบเสริม nmtuiเป็นข้อความตามที่หนึ่ง
— แกร์ฮาร์ดสไตน์

ฉันนำนิคขึ้นมาโดยการรีบูตระบบ ตั้งแต่เซิร์ฟเวอร์มันไม่เคยถูก "ปิด" ฉันพบว่าการใช้บริการเริ่มต้นใหม่นั้นไม่สามารถใช้งานได้เสมอไปเนื่องจากส่วนประกอบอื่น ๆ ที่เกี่ยวข้องกับอินเตอร์ซึ่งประกอบกันเป็นบริการทั้งหมดที่ใช้อินเทอร์เฟซ ง่ายและมีประสิทธิภาพที่สุดในการรีสตาร์ทบริการทั้งหมดด้วยคำสั่งรีบูตอย่างง่าย
— Gary Mercer

การรีบูทระบบของคุณเป็น "ผู้จัดการ" จะต้องนำอุปกรณ์ของคุณมาด้วย คุณกำหนดค่าที่อยู่ IP แบบคงที่ใด
— แกร์ฮาร์ดสไตน์

0

ฉันมีปัญหาเดียวกันจนกระทั่งฉันแก้ไขด้วยค่าต่อไปนี้คือไฟล์ 50-cloud-init.yaml

 network:
    ethernets:
        eno2:
            addresses:
            - 192.168.0.50/24 (my static ip address)
            dhcp4: false
            gateway4: 192.168.0.42
            nameservers:
                addresses: [208.67.222.222,208.67.220.220]
                search: [208.67.222.222]

หวังว่ามันจะเหมาะกับคุณเช่นกัน


หากใช้netplanเซิร์ฟเวอร์และ Google DNS จะ addresses: [8.8.8.8,8.8.4.4] (อาจจะดีกว่าใช้ของ CloudFlare 1.1.1.1 ) บนแล้ว/etc/netplan/50-cloud-init.yaml sudo netplan --debug apply
— Pablo Bianchi

0

คุณกำลังประสบปัญหาที่เกี่ยวข้องกับเซิร์ฟเวอร์ DNS ที่คุณระบุไว้สำหรับระบบของคุณ ตรวจสอบรายการเนมเซิร์ฟเวอร์ของคุณใน /etc/resolv.conf

ปัญหาคือคำสั่ง ping ไม่สามารถระบุได้ว่า "www.google.com" คืออะไรเพราะเซิร์ฟเวอร์ DNS ของคุณไม่สามารถแก้ไขได้และให้ที่อยู่ IP ของ Google ที่แท้จริง (ทุกเซิร์ฟเวอร์สามารถเข้าถึงได้โดยที่อยู่ IP เท่านั้น)

สารละลาย

/etc/resolv.confแก้ไขรายการใน ให้เซิร์ฟเวอร์ DNS ที่ถูกต้องสำหรับตัวเลือก/etc/resolve.confซึ่งสามารถแก้ไข "www.google.com"

หรือ y คุณสามารถระบุโปรแกรมแก้ไขระบบในเครื่องของคุณซึ่งมีที่อยู่ IP เป็น 127.0.0.53 โดยเพิ่มบรรทัด

nameserver 127.0.0.53

หรือระบุ IP เซิร์ฟเวอร์ DNS ของ Google (หนึ่งในนั้น): 8.8.8.8 หรือ 8.8.4.4

nameserver 8.8.8.8**

PS คุณสามารถเข้าใจได้ดีขึ้นว่า DNS ทำงานที่นี่ได้อย่างไร


-2

ปัญหาที่เรากล่าวถึงในที่นี้คือปัญหาที่ต้มลงมาเพื่อแก้ไขชื่อโดเมนให้เป็นที่อยู่ IP ภายใน ผมเชื่อว่าตั้งแต่เซิร์ฟเวอร์ Ubuntu เวอร์ชัน 15 ใช้ระบบไฟล์การตั้งค่าแบบไดนามิกที่เปลี่ยนแปลงทุกครั้งที่บริการหรือระบบรีสตาร์ทหรือรีบูต หากผู้ดูแลระบบทำการเปลี่ยนแปลงไฟล์ resolv.conf การเปลี่ยนแปลงเหล่านั้นจะถูกลบเมื่อเริ่มบริการตัวแก้ไข

เพื่อทำการเปลี่ยนแปลงอย่างถาวร Ubuntu ได้ทำการเปลี่ยนแปลงผู้ใช้อย่างถาวรโดยไม่มีผลต่อการกำหนดค่าแบบไดนามิกของไฟล์กำหนดค่า คำแนะนำจาก LD James (ด้านบน) คือการเพิ่มการเปลี่ยนแปลงที่ฉันต้องการใน/etc/resolvconf/resolv.conf.d/headไฟล์

host not foundนี่เองที่ทำให้การเปลี่ยนแปลงที่ถาวรและแก้ไขปัญหาของการแก้ไขชื่อโดเมนเกิดข้อผิดพลาด มันเป็นวิธีการแก้ปัญหาในการตั้งค่าเนมเซิร์ฟเวอร์ dns ในไฟล์อินเตอร์เฟสจากนั้นนำมันไปยังโปรแกรมแก้ไขเช่นกัน ขอบคุณทุกท่านสำหรับความพยายามสูงสุดในการแก้ปริศนานี้

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