GNU/Linux >> Belajar Linux >  >> Linux

curl:(6) Tidak dapat menyelesaikan host:google.com; Nama atau layanan tidak diketahui

Mungkin Anda memiliki beberapa aturan SELinux yang sangat aneh dan membatasi?

Jika tidak, coba strace -o /tmp/wtf -fF curl -v google.com dan coba temukan dari /tmp/wtf file keluaran apa yang terjadi.


Masalahnya adalah:

  1. IPV6 diaktifkan
  2. Server DNS salah

Inilah cara saya memperbaikinya:

Menonaktifkan IPV6

  • Buka Terminal
  • Ketik su dan enter untuk masuk sebagai pengguna super
  • Masukkan kata sandi root
  • Ketik cd /etc/modprobe.d/ untuk mengubah direktori menjadi /etc/modprobe.d/
  • Ketik vi disableipv6.conf untuk membuat file baru di sana
  • Tekan Esc + i untuk memasukkan data ke file
  • Ketik install ipv6 /bin/true pada file untuk menghindari pemuatan modul terkait IPV6
  • Ketik Esc + : lalu wq untuk menyimpan dan keluar
  • Ketik reboot untuk memulai ulang fedora
  • Setelah reboot, buka terminal dan ketik lsmod | grep ipv6
  • Jika tidak ada hasil, berarti Anda telah menonaktifkan IPV6 dengan benar

Tambahkan server DNS Google

  • Buka Terminal
  • Ketik su dan enter untuk masuk sebagai pengguna super
  • Masukkan kata sandi root
  • Ketik cat /etc/resolv.conf untuk memeriksa server DNS apa yang digunakan Fedora Anda. Sebagian besar ini akan menjadi alamat IP Modem Anda.
  • Sekarang kita harus Menemukan server DNS yang kuat. Untungnya ada server DNS terbuka yang dikelola oleh Google.
  • Buka halaman ini dan temukan "alamat IP DNS Publik Google"
  • Hari ini adalah 8.8.8.8 dan 8.8.4.4 . Namun di masa mendatang hal tersebut dapat berubah.
  • Ketik vi /etc/resolv.conf untuk mengedit resolv.conf berkas
  • Tekan Esc + i untuk menyisipkan data ke file
  • Komentari semua hal dalam file dengan menyisipkan # di awal setiap baris. Jangan hapus apa pun karena dapat berguna di masa mendatang.
  • Ketik dua baris di bawah ini pada file

    server nama 8.8.8.8
    server nama 8.8.4.4

    -Ketikkan Esc + : lalu wq untuk menyimpan dan keluar

  • Sekarang Anda selesai dan semuanya bekerja dengan baik (Tidak perlu memulai ulang).
  • Tetapi setiap kali Anda me-restart komputer /etc/resolv.conf Anda akan diganti secara default. Jadi saya akan membiarkan Anda menemukan cara untuk menghindarinya.

Inilah posting blog saya tentang ini:http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html


Coba nslookup google.com untuk menentukan apakah ada masalah DNS.192.168.1.254 adalah alamat jaringan lokal Anda dan sepertinya sistem Anda menggunakannya sebagai server DNS. Apakah ini router gateway/modem Anda juga? Apa yang terjadi ketika Anda mencoba melakukan ping ke google.com. Bisakah Anda menjelajahinya di browser web Internet?


Saya punya hari ini masalah yang sama. Tapi lebih aneh.

  • host - berfungsi host pl.archive.ubuntu.com
  • dig - berfungsi pada default dan pada semua dig pl.archive.ubuntu.com DNS lainnya , dig @127.0.1.1 pl.archive.ubuntu.com
  • keriting - tidak berfungsi! tetapi untuk beberapa alamat memang demikian. ANEH! Sama di Ruby, APT, dan banyak lagi.
$ curl -v http://google.com/
*   Trying 172.217.18.78...
* Connected to google.com (172.217.18.78) port 80 (#0)
> GET / HTTP/1.1
> Host: google.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Cache-Control: private
< Content-Type: text/html; charset=UTF-8
< Referrer-Policy: no-referrer
< Location: http://www.google.pl/?gfe_rd=cr&ei=pt9UWfqXL4uBX_W5n8gB
< Content-Length: 256
< Date: Thu, 29 Jun 2017 11:08:22 GMT
<
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.pl/?gfe_rd=cr&ei=pt9UWfqXL4uBX_W5n8gB">here</A>.
</BODY></HTML>
* Connection #0 to host google.com left intact

$ curl -v http://pl.archive.ubuntu.com/
* Could not resolve host: pl.archive.ubuntu.com
* Closing connection 0
curl: (6) Could not resolve host: pl.archive.ubuntu.com

Wahyu

Akhirnya saya menggunakan strace di curl dan menemukan bahwa itu adalah koneksi ke nscd setan.

connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0

Solusi

Saya telah memulai ulang layanan nscd (Name Service Cache Daemon) dan ini membantu menyelesaikan masalah ini!

systemctl restart nscd.service

Linux
  1. Layanan Keriting

  2. Masalah Pemasangan EFS "Gagal menyelesaikan server:Nama atau layanan tidak dikenal"

  3. systemctl:perintah tidak ditemukan

  1. layanan:perintah tidak ditemukan

  2. chkconfig:perintah tidak ditemukan

  3. Kode python untuk memeriksa apakah layanan sedang berjalan atau tidak.?

  1. SCardEstablishContext:Layanan tidak tersedia

  2. `ssh <host>` adalah shell login, tetapi `ssh <host> <command>` bukan?

  3. wkhtmltopdf - QXcbConnection:Tidak dapat terhubung ke tampilan