Я владею сервером в соответствии с Ubuntu 16 на моей LAN, куда я выполняю Apache2 со многими vHost веб-сайтами.
Одна вещь беспокоит меня:
Имя хоста сервера является тем от vHost вместо один записанный в /etc/hostname
файл.
Какая-либо идея о том, как зафиксировать это?
Я уже отредактировал имя хоста и файлы hosts, работал hostnamectl
и перезапущенный система, но это все еще дает мне имя от vHost вместо того, чтобы дать мне имя, которое я хочу.
Имя показали в motd для "последнего входа в систему от", когда я использовал сервер для соединения с другим через ssh, и это показывает в части Имени хоста, когда я выполняю "Сердитый IP Сканер" (nMap эквивалент).
Из комментариев существует беспорядок здесь между локальным именем хоста, как установлено hostnamectl
, апачские имена серверов и DNS (Служба именования доменов).
HOSTMAME
Это - установка, только используемая на Вашем localhost.
Для установки имени хоста локального компьютера использовать hostnamectl
sudo hostnamectl set-hostname new_hostname
IMO это предпочтительно для ручного редактирования /etc/hostname
и /etc/hosts
поскольку это - единственная команда, менее подверженная опечаткам, и менее вероятно повредить sudo.
DNS
Серверы доменных имен (DNS) являются отдельными, и определите, как компьютеры соединяются с другими компьютерами, которые аналогия "телефонной книги" используется, чтобы описать, как DNS работает, но это - сеть так, чтобы можно было использовать имя скорее затем IP-адрес для соединения по сетевому протоколу с сервером, т.е. http://google.com скорее затем IP-адрес.
Для получения дальнейшей информации на DNS см. https://webhostinggeeks.com/guides/dns/или подобный.
Это несколько связано с FQDN - https://serverfault.com/questions/269838/what-is-the-difference-between-a-hostname-and-a-fully-qualified-domain-name
В этом обсуждении я буду использовать FQDN для обращения к сетевому имени, которое Вы используете для соединения с сервером по сетевому протоколу, такому как http или ssh. Серверы DNS используют FQDN, только такой как foo.com и не нечто,/etc/host может использовать не FQDN, такой как нечто скорее затем foo.com или даже оба.
Так же в какой-то момент, как часть Вашей установки веб-сервера / конфигурация, Вы зарегистрировали один или несколько FQDN в поставщике DNS, такие как godaddy или подобный. Эти выполненные сервисы и поддерживают серверы DNS и, в Вашем случае, отображают Ваши апачские серверы имен на Ваш общедоступный IP-адрес.
СЕТЕВОЕ ИСПОЛЬЗОВАНИЕ ПРИЛОЖЕНИЙ/etc/hosts и серверы DNS для разрешения FQDN
Сетевые приложения будут обычно выглядеть первыми в/etc/hosts для разрешения FQDN к IP-адресу. Если не будет никакой записи в/etc/hosts, то они будут использовать DNS для разрешения IP-адреса.
Никакие сетевые приложения не используют информацию, которую системный администратор пишет в/etc/hostname для разрешения DNS.
NMAP
Таким образом, при выполнении nmap он использует обратный сервис DNS и/etc/hosts для разрешения FQDN.
См. nmap документацию для деталей - https://nmap.org/book/man-host-discovery.html
См. также это обсуждение отказа сервера - https://serverfault.com/questions/153776/nmap-find-all-alive-hostnames-and-ips-in-lan
Существует, вероятно, некоторая опция или конфигурация, чтобы вынудить nmap использовать/etc/hosts или отключить поиск DNS, и возможно кто-то разместит ту информацию здесь, но это вне этого обсуждения.
Короткий ответ является nmap, ssh, http, и другие сетевые протоколы используют DNS и/или инвертируют поиск DNS для разрешения FQDN к ipaddress, как определено серверами DNS или/etc/hosts и не/etc/hostname или на локальной машине или на удаленном сервере.
SSH
SSH будет использовать и/etc/hosts и серверы DNS.
См. ssh документацию или https://linux-tips.com/t/disabling-reverse-dns-lookups-in-ssh/222 для того, как отключить ssh от useing сервисов DNS.
Если ssh не возвратит имя хоста, то Вы ожидаете, что необходимо заняться расследованиями далее, видеть https://serverfault.com/questions/266897/why-is-hostname-lookup-in-ssh-returning-a-different-result для получения дополнительной информации о том, как сделать это.
Таким образом в Вашем случае я предполагаю, что ssh также использует сервисы DNS скорее затем надежда только на/etc/hosts для разрешения FQDN, который Вы используете на командной строке.
Моя практика я лично не использую свой апачский FQDN для моего локального имени хоста, и при этом я не использую свой FQDN для ssh в мой сервер, и при этом я обычно не передаю FQDN nmap, и при этом я не использую NMAP для определения локального имени хоста сервера.
nmap скажет Вам FQDN, зарегистрированный к FQDN, если он будет существовать, он не говорит Вам, что находится в/etc/hostname удаленного сервера.
Посмотрите, что ошибка Apache "Не могла надежно определить полностью определенное доменное имя сервера"
Пример:
NMAP IP-адресом
Это работает, предполагая, что IP-адрес общедоступен, и удаленный хост произошел и не firewalled для блокирования nmap ;)
bodhi@daemon:~$nmap --top-ports 10 8.8.8.8
Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-28 16:10 MDT
Nmap scan report for google-public-dns-a.google.com (8.8.8.8)
Host is up (0.081s latency).
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
25/tcp filtered smtp
80/tcp filtered http
110/tcp filtered pop3
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds
3389/tcp filtered ms-wbt-server
Nmap done: 1 IP address (1 host up) scanned in 2.15 seconds
NMAP FQDN
Это также работает пока имя, которое Вы даете, зарегистрированный FQDN
bodhi@daemon:~$nmap --top-ports 10 google.com
Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-28 16:10 MDT
Nmap scan report for google.com (172.217.11.238)
Host is up (0.10s latency).
Other addresses for google.com (not scanned): 2607:f8b0:400f:800::200e
rDNS record for 172.217.11.238: den02s01-in-f14.1e100.net
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
25/tcp filtered smtp
80/tcp open http
110/tcp filtered pop3
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds
3389/tcp filtered ms-wbt-server
Nmap done: 1 IP address (1 host up) scanned in 2.36 seconds
NMAP с поддельным / не существующий FQDN
bodhi@daemon:~$nmap foo.bar
Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-28 16:10 MDT
**Failed to resolve "foo.bar".**
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.55 seconds
Если Вы испытываете затруднения, нам нужна определенная информация.
/etc/hostname
и /etc/hosts
Без дополнительной информации мы не можем разъяснить беспорядок между Вашим локальным именем хоста и сетью FQDN или отладить Ваши соединения, если FQDN не решат к удаленному серверу, то Вы ожидаете.