terminal bash shellถ้าหากใช้งาน wget แล้วเกิดปัญหาเรื่องการ resolve host เหมือน error ด้านล่าง

wget: unable to resolve host address domain.com

ตัวอย่าง

[shell][root@ezylinux ~]# wget www.ezylinux.com
–2013-06-01 05:26:52– http://www.ezylinux.com/
Resolving www.ezylinux.com… failed: Name or service not known.
wget: unable to resolve host address www.ezylinux.com[/shell]

แนวทางการแก้ไขเบื้องต้นให้เราตรวจสอบดูว่า network ของเครื่องสามารถใช้งานได้หรือไม่เป็นอันดับแรก ด้วยคำสั่ง ping ดังตัวอย่าง

[shell][root@ezylinux ~]# ping www.ezylinux.com
PING ezylinux.com (74.53.235.34) 56(84) bytes of data.
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=1 ttl=48 time=283 ms
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=2 ttl=48 time=319 ms
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=3 ttl=48 time=316 ms
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=4 ttl=48 time=340 ms
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=5 ttl=48 time=296 ms
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=6 ttl=48 time=282 ms
64 bytes from ezylinux.com (74.53.235.34): icmp_seq=7 ttl=48 time=299 ms
— ezylinux.com ping statistics —
7 packets transmitted, 7 received, 0% packet loss, time 6888ms
rtt min/avg/max/mdev = 282.505/305.501/340.585/19.648 ms[/shell]

ถ้าหากว่าไม่สามารถ Ping ได้แสดงว่าเป็นปัญหาที่ network แต่ถ้า Ping ได้ แสดงว่าปัญหาเกิดจาก wget พยายามใช้งาน ipv6 ซึ่งเครื่องที่เกิดปัญหาไม่มีการใช้งาน ipv6 จึงทำให้ไม่สามารถใช้งานได้

วิธีการแก้ไขปัญหา wget: unable to resolve host address domain.com สามารถทำได้หลายวิธีดังนี้

  1. ใช้ option -4 หรือ –inet4-only เพื่อให้ wget ใช้งาน ipv4 ดังตัวอย่าง
    [shell][root@ezylinux ~]# wget –inet4-only www.ezylinux.com[/shell]
    หรือ
    [shell][root@ezylinux ~]# wget -4 www.ezylinux.com[/shell]
  2. ทำการ map host กับ ip ที่ไฟล์ /etc/hosts ดังตัวอย่าง
    [shell]74.53.235.34 ezylinux.com[/shell]
  3. แก้ไขค่า config ของ wget โดยแก้ไขไฟล์ /etc/wgetrc และให้เพิ่ม parameter ด้านล่างลงไป
    [shell]inet4_only = on[/shell]

จากนั้นลองทดสอบใช้งานดูอีกครั้งครับ 🙂