У меня есть причудливая проблема. Это запустилось с postgresql-9.3, не устанавливающего. Я нашел, что это не могло найти localhost
.
Я проверил /etc/hosts
и это имеет localhost
правильно как 127.0.0.1
Но когда я
ping localhost
Я добираюсь
PING localhost.Home (198.105.244.21) 56(84) bytes of data.
когда я
whois 198.105.244.21
Я получаю "SearchGuide Inc" в Колорадо
Как я заставляю свою систему правильно распознавать localhost?
Я выполняю испытанного тара 14.04.2 lts
Вот мой /etc/hosts
файл:
127.0.0.1 localhost
127.0.0.1 ourcomp
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
У меня была опечатка ранее. Это теперь исправлено.
Вот вывод nslookup localhost
:
nslookup localhost
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: localhost.Home
Address: 198.105.244.21
Name: localhost.Home
Address: 198.105.254.21
Вывод iptables -L
:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ufw
состояние неактивно
/etc/nsswitch
пробел
содержание /etc/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
nameserver 127.0.1.1
search Home
ifconfig
:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:46904 errors:0 dropped:0 overruns:0 frame:0
TX packets:46904 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2538766 (2.5 MB) TX bytes:2538766 (2.5 MB)
p5p1 Link encap:Ethernet HWaddr f0:4d:a2:9b:3b:b9
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 00:1b:b1:81:06:3d
inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21b:b1ff:fe81:63d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8968 errors:0 dropped:0 overruns:0 frame:0
TX packets:7779 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4212369 (4.2 MB) TX bytes:1142565 (1.1 MB)
Проблема оказалась недостающими соответствующими записями в /etc/nsswitch
конфигурационный файл.
При разрешении имен хостов к IP-адресу, библиотеке GNU C libc
использование этот файл для получения источников и порядка, в котором будет запрошен. Имя базы данных /etc/nsswitch.conf
включенный здесь hosts
. Существует также много других баз данных, понятых под libc
например. passwd
, protocols
и т.д.
Базы данных упоминаются в начале строки, сопровождаемой под названием источники, которые будут запрошены. Например, необходимая конфигурация для hosts
база данных (используемый для нахождения IP-адреса хоста) может принять форму:
hosts: files mdns4 dns
files
указывает что сначала соответствующие конфигурационные файлы в /etc
каталог, который будет запрошен сначала, следовательно /etc/hosts
запрашивается сначала
Затем mDNS (Многоадресная передача DNS) израсходован, чтобы проверить, может ли IP быть получен
Затем DNS т.е. серверы имен запрашиваются для IP-адреса.
Как Ваш /etc/nsswitch
конфигурационный файл ничего не содержит, я предложил бы, чтобы Вы поместили записи по умолчанию в файл:
passwd: compat
group: compat
shadow: compat
hosts: files mdns4 mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Проверить man 5 nsswitch.conf
получить больше идеи.