Saya menjalankan Ubuntu 14.04 di layanan cloud perusahaan saya (instance saya memiliki IP elastis). Saya ingin memeriksa alamat IP dari instance saya yang saya jalankan dengan baris perintah, tetapi tidak berhasil.
root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known
Saya tidak mengerti alasannya.
Saya mencoba melakukan ping ke ubuntu14-graphite tetapi katanya:
unknown host ubuntu14-graphite.
Apakah itu berarti tuan rumah saya bahkan tidak ada?
Saya memiliki server lain (bukan cloud contoh tetapi server fisik). Di server ini saya menginstal CentOS 6.7. Saya memeriksa IP nama host dan itu berhasil meskipun tidak ada yang istimewa di /etc/hosts
.
Inilah output dari cat /etc/hosts
:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
sumber
hostname
berbeda bahwa sistem berbasis RH .. masukkan127.0.1.1 ubuntu14-graphite
dalam/etc/hosts
file dan periksa..catatan, itu127.0.1.1
, bukan127.0.0.1
(yang dapat Anda simpan sendiri hanya untuk localhost, seperti127.0.0.0/8
blok loopback Anda dapat menggunakan alamat apa pun meskipun beberapa sistem memiliki alamat terbatas yang telah ditentukan sebelumnya )Cara yang sebenarnya untuk memeriksa alamat IP mesin adalah dengan menggunakan
ifconfig
perintah.Perhatikan bahwa tergantung pada pengaturan cloud yang sebenarnya, instance server mungkin tidak mengetahui IP publik dan hanya tahu IP VLAN. Untuk detail tentang ini, Anda perlu merujuk ke dokumentasi penyedia Anda.
sumber
ip a s
. Lihat serverfault.com/q/458628/89813 - ifconfig sudah ditinggalkan di Linux.Tambahkan
myhostname
entri kehosts
layanan di/etc/nsswitch.conf
.Dengan kata lain, ubah baris ini di
/etc/nsswitch.conf
:untuk ini:
Di mana biasanya nama host diselesaikan menggunakan
/etc/hosts
file dan dns, nama host sistem juga dapat diatasi dengan memberi tahu Switch Layanan Nama untuk melakukannya (karena perubahan konfigurasi ini akan dilakukan).Ini akan menjelaskan mengapa Anda tidak melihat sesuatu yang istimewa tentang
/etc/hosts
file pada sistem yang Anda dapat menyelesaikan nama host lokal.Informasi lebih lanjut tentang
myhostname
bendera ada di sini .sumber
Menurut pendapat saya itu tergantung pada versi perintah hostname (paket net-tools).
Lihat: https://bugzilla.redhat.com/show_bug.cgi?id=319981
hostname -i
- memberi saya informasi tentang IPv6 dan IPv4sumber
hostname -s
, bukanhostname -i
. Ini tidak terkait dengan versihostname
, ini terkait dengan apakah nama host yang diberikan olehhostname
dapat diatasi.Pergi ke etc / hosts.save periksa nama host Anda di sana. Dan kemudian edit
/etc/hosts
untuk menulis di sana nama host Anda dan nama host dihosts.save
. Periksa juga alamat IP. Contoh:sumber
/etc/hosts
tidak akan memberi mereka alamat IP yang sebenarnya. Saya juga gagal melihat mengapa Anda juga melihat/etc/hosts.save
mana yang teknis dan sangat tidak relevan.