Linux ping dan telnet secara otomatis menambahkan .com ke nama domain yang tidak ada

2

Saya memiliki masalah aneh dengan resolusi nama domain pada VPS saya. Masalahnya adalah ketika saya melakukan ping, atau telnet ke nama domain yang tidak ada , maka nama domain tingkat atas ".com" secara otomatis ditambahkan ke nama domain asli.

1) tes nslookup

[root@myhost etc]# nslookup www.dhjfdghfgdhafgdh.com
Server:         168.144.1.130
Address:        168.144.1.130#53

** server can't find www.dhjfdghfgdhafgdh.com: NXDOMAIN

OK - hasil yang diharapkan

2) tes ping

[root@myhost etc]# ping -v www.dhjfdghfgdhafgdh.com
PING www.dhjfdghfgdhafgdh.com.com (208.73.211.69) 56(84) bytes of data.
64 bytes from 208.73.211.69: icmp_seq=1 ttl=238 time=78.2 ms
64 bytes from 208.73.211.69: icmp_seq=2 ttl=238 time=74.5 ms
64 bytes from 208.73.211.69: icmp_seq=3 ttl=238 time=76.4 ms
^C
--- www.dhjfdghfgdhafgdh.com.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2427ms
rtt min/avg/max/mdev = 74.594/76.431/78.264/1.498 ms

NOK - domain yang tidak ada akan teratasi sebagai ".com" yang secara ajaib ditambahkan ke domain asli. com.com adalah nama domain terdaftar sehingga saya dapat melakukan ping, tetapi saya melakukan ping ke domain yang berbeda dengan yang saya maksudkan.

3) tes telnet

[root@myhost etc]# telnet www.dhjfdghfgdhafgdh.com 80
Trying 208.73.211.69...
Connected to www.dhjfdghfgdhafgdh.com.
Escape character is '^]'.

NOK - sama seperti ping. Namun kali ini, telnet tidak memberi tahu saya bahwa saya sebenarnya terhubung dengan host com.com. Saya hanya bisa tahu dari alamat IP.

Ini adalah /etc/resolv.conf saya:

nameserver 168.144.1.130
nameserver 108.59.242.6

Terima kasih atas petunjuknya.


sumber
Ini bukan pertanyaan pemrograman.
James Polley

Jawaban:

3

Ini adalah fitur, bukan bug.

Katakan bahwa domain lokal Anda example.com, dan Anda memiliki mesin yang disebut server. Senang bisa ping serverdan memiliki semua yang Anda Tahu (TM) yang Anda maksudkan server.example.com.

Untuk mencapai hal ini, ada beberapa pengaturan yang dapat dikonfigurasi. Pengaturan ini bisa di komputer lokal Anda (mungkin diatur oleh server dhcp Anda, jika Anda memilikinya); atau mereka bisa berada di server nama hulu, sehingga ketika sistem Anda bertanya hulu "Apa alamat untuk server?" jawabannya adalah "konyol, maksudmu server.example.com, dan btw 1.2.3.4".

Dua hal yang mengontrol pencarian ini adalah pengaturan yang disebut "ndots"; jika nama host memiliki titik "titik", itu tidak akan diterapkan pencarian tambahan bermanfaat ini. Biasanya ndots diatur ke 1 - sehingga serverakan mendapatkan bantuan tambahan, tetapi server.localtidak. Dalam kasus Anda, sepertinya ndots diset ke minimal 2 - sepertinya www.blah.commasih dilakukan pencarian tambahan.

Fitur lainnya adalah searchdaftar - daftar domain yang ditambahkan ke hostname untuk mencoba menemukan kecocokan. Dalam kasus biasa, ini akan menjadi "example.com". Dalam kasus Anda, kedengarannya seolah-olah "com" telah berakhir di daftar - saya menduga sehingga orang dapat memasukkan "yahoo" dan "yahoo.com" dikembalikan.

Sekali lagi, ini mungkin sedang diatur oleh server DHCP Anda ketika membagikan sewa. Jika dikonfigurasi pada mesin lokal Anda, mungkin akan terdaftar di /etc/resolv.conf.

James Polley
sumber
3

Menambahkan ke jawaban James Polley , Anda biasanya dapat mengesampingkan perilaku pencarian dengan secara eksplisit menentukan bahwa resolusi nama harus dimulai pada zona root DNS. Itu dilakukan dengan menambahkan satu .ke nama host yang sepenuhnya memenuhi syarat.

Jadi, alih-alih abc.server.example.com, Anda akan menggunakan abc.server.example.com.. Ekstra .menginstruksikan resolver untuk mencoba hanya nama ini dan tidak menggunakan domain pencarian yang dikonfigurasi.

sebuah CVn
sumber
poin yang sangat bagus! (no pun intended;)
James Polley
0

Saya juga mengalami masalah ini. Perbaiki dengan cara ini:

Nama host saya adalah qifeiye.com. Lalu saya mengubahnya menjadi qifeiye. Anda dapat mengubah nama host di / etc / hostname.

Dan jalankan perintah:

hostname qifeiye

Dan restart server. Masalah hilang.

Saya pikir itu disebabkan oleh sistem otomatis menemukan .com di hostname dan berpikir semua nama domain yang tidak dikenal akan berada di domain .com.

Chen
sumber