Я владею сервером под Ubuntu 16 в своей локальной сети, где я запускаю Apache2 со многими веб-сайтами vHost.
Меня беспокоит одно: имя хоста сервера является одним из vHost вместо одного написанный в файле /etc/hostname.
Любая идея о том, как это исправить?
Я уже редактировал имя хоста и файлы hosts, запускал hostnamectl и перезапустил систему, но это все еще давая мне имя из vHost вместо того, чтобы дать мне имя, которое я хочу.
Имя было показано в motd для «последнего входа с», когда я использовал сервер для подключения к другому через ssh и он отображается в разделе «Имя хоста», когда я запускаю «Angry Ip Scanner» (эквивалент nMap).
Из комментариев существует путаница между локальным именем хоста, установленным hostnamectl, именами сервера Apache и DNS (служба имен доменов).
HOSTMAME
Это это параметр, который используется только на вашем локальном хосте.
Чтобы установить имя хоста вашего локального компьютера, используйте hostnamectl
sudo hostnamectl set-hostname new_hostname
IMO, это предпочтительнее для ручного редактирования /etc/hostname и /etc/hosts, поскольку это единственная команда, менее подверженная опечаткам и менее склонная к прерыванию sudo.
HOSTMAME
Серверы доменных имен (DNS) является отдельным и определяет, как компьютеры подключаются к другим компьютерам, аналог «телефонной книги» используется для описания работы DNS, но это сеть, поэтому вы можете использовать имя, а не IP-адрес для подключения по сетевому протоколу к серверу , т. е. http://google.com, а не ip-адрес.
Подробную информацию о DNS см. в http://google.com или аналогичном.
Это несколько связано с FQDN - https://serverfault.com/questions/269838/what-is-the-difference-between-a-hostname-an d-a-full-qual-domain-name
В этом обсуждении я буду использовать полное доменное имя, чтобы ссылаться на сетевое имя, которое вы используете для подключения к серверу по сетевому протоколу, например http или ssh. DNS-серверы используют только FQDN, такие как foo.com, а не foo, / etc / host могут использовать не полное доменное имя, например foo, а не foo.com или даже оба.
Итак, в какой-то момент, как часть установка / настройка вашего веб-сервера, вы зарегистрировали одно или несколько FQDN с DNS-провайдером, таким как godaddy или аналогичным. Эти службы запускают и обслуживают DNS-серверы и, в вашем случае, сопоставляют ваши серверы имен Apache с вашим общедоступным IP-адресом.
СЕТЕВЫЕ ПРИЛОЖЕНИЯ USE / etc / hosts и DNS-серверы для разрешения полного доменного имени
Сетевые приложения обычно будут сначала искать в / etc / hosts для разрешения FQDN на IP-адрес. Если в / etc / hosts нет записи, они будут использовать DNS для разрешения IP-адреса.
Сетевые приложения не используют информацию, которую системный администратор записывает в / etc / hostname для разрешения DNS.
NETWORK APPS USE / etc / hosts и DNS-серверы для разрешения FQDN
Поэтому, когда вы запускаете nmap, он использует обратную службу DNS и / etc / hosts для разрешения полного доменного имени.
Подробнее см. документацию nmap - https://serverfault.com/questions/269838/what-is-the-difference-between-a-hostname-and-a-fully-qualified -domain-name
См. также это обсуждение по ошибке сервера - https://serverfault.com/questions/153776/nmap-find-all-alive-hostnames-and-ips-in -lan
Возможно, есть какой-то параметр или настройка, чтобы заставить nmap использовать / etc / hosts или отключить поиск DNS, и, возможно, кто-то опубликует эту информацию здесь, но это выходит за рамки этого обсуждения.
Короткий ответ: nmap, ssh, http и другие сетевые протоколы используют DNS и / или обратный просмотр DNS чтобы решить ваше полное доменное имя в ipaddress, как определено DNS-серверами или / etc / hosts, а не / etc / hostname на вашем локальном компьютере или удаленном сервере.
SSH
SSH будет использовать как / etc / hosts, так и DNS-серверы.
См. документацию ssh или https://serverfault.com/questions/153776/nmap-find-all-alive-hostnames-and- ips-in-lan для того, как отключить ssh от использования DNS-сервисов.
Если ssh не возвращает имя хоста, которое вы ожидаете, вам нужно продолжить расследование, см. https://serverfault.com/ questions / 266897 / why-is-hostname-lookup-in-ssh-return-a-different-result для получения подробной информации о том, как это сделать.
Итак, в вашем случае я предполагаю, что ssh также использует службы DNS вместо того, чтобы полагаться только на / etc / hosts, чтобы разрешить полное доменное имя, которое вы используете в командной строке.
SSH Я лично не использую мое полное доменное имя apache для моего имени локального хоста, используйте мое FQDN для ssh на моем сервере, и я обычно не передаю FQDN для nmap, и не использую NMAP для определения loc al. hostname сервера.
nmap сообщит вам полное доменное имя, зарегистрированное в FQDN, если оно существует, оно не сообщит вам, что находится в / etc / hostname удаленного сервера.
См. [D35] https://serverfault.com/questions/266897/why-is-hostname-lookup-in-ssh-returning-a-different-result
Пример:
NMAP по ip адресу
Это работает, предполагая, что ip-адрес является общедоступным, а удаленный хост включен, а не защищен брандмауэром для блокировки 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 по ip адресу
Это также работает до тех пор, пока имя, которое вы даете, является зарегистрированным 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 Сообщите нам полное доменное имя всех ваших зарегистрированных доменных имен по соответствующим разделам ваших файлов конфигурации apache. Отправьте точные команды nmap и ssh, которые вы используете, и их выход.Без дополнительной информации мы не можем прояснить любую путаницу между вашим локальным именем хоста и сетевым FQDN или отладить ваши соединения, если полное доменное имя не будет разрешено на ожидаемом удаленном сервере.
Из комментариев существует путаница между локальным именем хоста, установленным hostnamectl, именами сервера Apache и DNS (служба имен доменов).
HOSTMAME
Это это параметр, который используется только на вашем локальном хосте.
Чтобы установить имя хоста вашего локального компьютера, используйте hostnamectl
sudo hostnamectl set-hostname new_hostname
IMO, это предпочтительнее для ручного редактирования /etc/hostname и /etc/hosts, поскольку это единственная команда, менее подверженная опечаткам и менее склонная к прерыванию sudo.
HOSTMAME
Серверы доменных имен (DNS) является отдельным и определяет, как компьютеры подключаются к другим компьютерам, аналог «телефонной книги» используется для описания работы DNS, но это сеть, поэтому вы можете использовать имя, а не IP-адрес для подключения по сетевому протоколу к серверу , т. е. http://google.com, а не ip-адрес.
Подробную информацию о DNS см. в http://google.com или аналогичном.
Это несколько связано с FQDN - https://serverfault.com/questions/269838/what-is-the-difference-between-a-hostname-an d-a-full-qual-domain-name
В этом обсуждении я буду использовать полное доменное имя, чтобы ссылаться на сетевое имя, которое вы используете для подключения к серверу по сетевому протоколу, например http или ssh. DNS-серверы используют только FQDN, такие как foo.com, а не foo, / etc / host могут использовать не полное доменное имя, например foo, а не foo.com или даже оба.
Итак, в какой-то момент, как часть установка / настройка вашего веб-сервера, вы зарегистрировали одно или несколько FQDN с DNS-провайдером, таким как godaddy или аналогичным. Эти службы запускают и обслуживают DNS-серверы и, в вашем случае, сопоставляют ваши серверы имен Apache с вашим общедоступным IP-адресом.
СЕТЕВЫЕ ПРИЛОЖЕНИЯ USE / etc / hosts и DNS-серверы для разрешения полного доменного имени
Сетевые приложения обычно будут сначала искать в / etc / hosts для разрешения FQDN на IP-адрес. Если в / etc / hosts нет записи, они будут использовать DNS для разрешения IP-адреса.
Сетевые приложения не используют информацию, которую системный администратор записывает в / etc / hostname для разрешения DNS.
NETWORK APPS USE / etc / hosts и DNS-серверы для разрешения FQDN
Поэтому, когда вы запускаете nmap, он использует обратную службу DNS и / etc / hosts для разрешения полного доменного имени.
Подробнее см. документацию nmap - https://serverfault.com/questions/269838/what-is-the-difference-between-a-hostname-and-a-fully-qualified -domain-name
См. также это обсуждение по ошибке сервера - https://serverfault.com/questions/153776/nmap-find-all-alive-hostnames-and-ips-in -lan
Возможно, есть какой-то параметр или настройка, чтобы заставить nmap использовать / etc / hosts или отключить поиск DNS, и, возможно, кто-то опубликует эту информацию здесь, но это выходит за рамки этого обсуждения.
Короткий ответ: nmap, ssh, http и другие сетевые протоколы используют DNS и / или обратный просмотр DNS чтобы решить ваше полное доменное имя в ipaddress, как определено DNS-серверами или / etc / hosts, а не / etc / hostname на вашем локальном компьютере или удаленном сервере.
SSH
SSH будет использовать как / etc / hosts, так и DNS-серверы.
См. документацию ssh или https://serverfault.com/questions/153776/nmap-find-all-alive-hostnames-and- ips-in-lan для того, как отключить ssh от использования DNS-сервисов.
Если ssh не возвращает имя хоста, которое вы ожидаете, вам нужно продолжить расследование, см. https://serverfault.com/ questions / 266897 / why-is-hostname-lookup-in-ssh-return-a-different-result для получения подробной информации о том, как это сделать.
Итак, в вашем случае я предполагаю, что ssh также использует службы DNS вместо того, чтобы полагаться только на / etc / hosts, чтобы разрешить полное доменное имя, которое вы используете в командной строке.
SSH Я лично не использую мое полное доменное имя apache для моего имени локального хоста, используйте мое FQDN для ssh на моем сервере, и я обычно не передаю FQDN для nmap, и не использую NMAP для определения loc al. hostname сервера.
nmap сообщит вам полное доменное имя, зарегистрированное в FQDN, если оно существует, оно не сообщит вам, что находится в / etc / hostname удаленного сервера.
См. [D35] https://serverfault.com/questions/266897/why-is-hostname-lookup-in-ssh-returning-a-different-result
Пример:
NMAP по ip адресу
Это работает, предполагая, что ip-адрес является общедоступным, а удаленный хост включен, а не защищен брандмауэром для блокировки 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 по ip адресу
Это также работает до тех пор, пока имя, которое вы даете, является зарегистрированным 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 Сообщите нам полное доменное имя всех ваших зарегистрированных доменных имен по соответствующим разделам ваших файлов конфигурации apache. Отправьте точные команды nmap и ssh, которые вы используете, и их выход.Без дополнительной информации мы не можем прояснить любую путаницу между вашим локальным именем хоста и сетевым FQDN или отладить ваши соединения, если полное доменное имя не будет разрешено на ожидаемом удаленном сервере.