谁能解释两个主机名是否可以共享相同的 IP 地址?
如果一个主机名代表多个 IP 地址,那也可能吗?为什么?
主机名是否区分大小写?是
ping MYHOST
Run Code Online (Sandbox Code Playgroud)
等于
ping myhost
Run Code Online (Sandbox Code Playgroud)
它是否取决于所使用的 DNS?Win/Mac/Unix 系统之间有区别吗?
类似于可以以不同方式更改的主机名:
hostname命令/etc/hostname(或/etc/sysconfig/network或者/etc/HOSTNAME,这些文件由init脚本使用)我想更改我的域名。我可以使用该domainname命令,但是有没有办法让它在重新启动后永久生效?我认为它可以配置,/etc/resolv.conf但是这个文件通常是生成的,我不知道search和domain指令之间的区别。以及在什么时间将那里的信息传递给domainname程序以设置域名?
你对此有什么想法吗?
我希望在各个发行版之间大部分兼容。因此,如果有人对不同的发行版本有任何建议,我很乐意接受。
在我使用服务器的过程中,我遇到过配置文件,您应该在其中输入外部服务器的地址。我见过一些直接使用服务器的 IP 地址,但我听到很多建议使用主机名完全限定域名(FQDN) 来代替。为什么我应该使用主机名而不是直接 IP 地址?
因为如果您使用主机名,那么您将需要一个本地 DNS 服务器,它将每个主机名链接到一个 IP 地址。使用主机名或 IP 地址有什么缺点?
我试图向其发送邮件的某些远程 SMTP 服务器拒绝接受来自我的服务器的 HELO:
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname
显然,我的 Exim4 服务器localhost作为其 FQDN发送。搜索网络和一堆配置文件,我了解到在 HELO 期间作为 FQDN 发送的值是从primary_hostname配置变量中提取的。
我的问题是:在 Debian 系统中更改此变量的正确方法是什么?我想我可以简单地在 Exim4 配置文件中硬编码一个值,但恕我直言,如果该值自动对应于/etc/mailname或其他一些集中的名称配置,它似乎更有意义。
我有一种感觉,我的问题的答案可以在 Debian wiki 的这篇文章中找到:
Exim 在 EHLO/HELO 中使用的名称是从配置选项中提取的
primary_hostname。Debian 的 exim4 默认配置没有设置primary_hostname. 然后 Exim 默认使用 uname() 来查找主机名。如果该调用仅返回一个组件,则使用 gethostbyname() 或 getipnodebyname() 来获取完全限定的主机名。如果您的 Exim HELO 为 localhost.localdomain,那么您很可能是某些版本的 Debian 安装程序创建了错误配置的 /etc/hosts。在这种情况下,请修复您的 /etc/hosts.conf 文件。
不幸的是,我对 Linux 服务器管理不够熟悉,无法确切地知道这一切意味着什么:(
我在 serverfault 上搜索了这个问题的答案,但找不到。我知道这是可能的,但我不记得怎么做。如何更改 Linux 主机的主机名并在不重新启动的情况下使更改生效?
我正在使用 Ubuntu 16 和 Ubuntu 18。
Ubuntu 的一大特色是图形桌面和图形系统实用程序。但是,我们在生产环境中运行 Ubuntu,因此我们选择不使用图形桌面或实用程序,以免这些功能消耗我们在生产环境中所需的资源。
我知道要重命名主机,我会编辑文件:
/etc/hostname/etc/hosts在/etc/hostname一个只是用新的主机名替换当前的主机名(即将成为以前的主机名)。
/etc/hosts文件中的Ubuntu有一行:
127.0.1.1 your-hostname your-hostname
Run Code Online (Sandbox Code Playgroud)
当您的主机启动并在您的网络中建立自己时,它充当引导程序。在更改主机名之前,your-hostname是当前的(即将成为以前的主机名)并且作为更改主机的主机名的一部分,用新名称替换该名称。
我熟悉的是执行上述两个步骤,然后重新启动您的主机。但是很多时候,就像使用生产服务器一样,人们希望执行重命名,而不是重新启动主机。
如何更改主机上的主机名并在不重新启动主机的情况下使更改生效?
有没有办法本地化 dns 条目?这意味着,来自亚洲的用户将 mydomain.com 解析为另一个 IP,而不是来自美国或欧洲的用户。这将有助于为用户提供附近的服务器。DNS 是迄今为止唯一使用的技术,这意味着我无法放置一些软件路由或中央系统来代替 dns 来解决这个问题。
我使用“a.alpha”之类的名称作为我的 linux 机器的主机名,但这些名称似乎并不完全可用。hostnameshell 命令的响应是正确的 (a.alpha)。但是在我的用户帐户之后打印的名称是“user@a”而不是“user@a.alpha”。当我使用 avahi 时,我可以到达(通过hostname)“a.alpha”,但不能到达“b.alpha”。这是正常的吗?
这是一个我从来不知道该怎么做的问题,多年来它一直在不时地唠叨我。我已经阅读了我能找到的所有内容,包括这里的所有答案。他们都没有对这个问题给出真正的答案。所以在标记重复之前请仔细阅读;它不是。
dig、host、nslookup……似乎没有一个能得到我想要的。
我最多可以得到像 ec2-xxx-xxx-xxx-xxx.us-east-2.compute.amazonaws.com 这样的指针。
但是如果我使用这个在线工具,我就会得到我正在寻找的东西:解析为给定 IP 地址(或主机名)的每个域。在这种情况下,它是一项免费增值服务,因此它只会列出前几个,但它有效。在下图中,我使用了我拥有并从 VPS 提供服务的三个域。它们完全无关,但都出现在这里:
他们用的是什么黑魔法?我们如何复制它?
希望你们能帮助我解决我遇到的代理问题。
我已经拥有的
我已经设置了一个 apache http 反向代理,将请求从 *.proxy.domain 代理到 *.intern.domain。apache 是从外部网络访问我的内部 web 应用程序的唯一方法。
例子:
app.proxy.domain -> app.intern.domain
mail.proxy.domain -> mail.intern.domain
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我有以下问题。
问题
我想代理以下请求:
app.proxy.domain -> app.internal.domain
app-dev.proxy.domain -> app-dev.internal.domain
Run Code Online (Sandbox Code Playgroud)
这没问题,但不幸的是 app-dev 服务器运行 app 服务器 webapplication 的精确副本,并且这个 webapplication 只响应它的主机名(app.intern.domain)
所以我需要做的是代理以下内容
app.proxy.domain -> app.internal.domain (10.0.1.1)
app-dev.proxy.domain -> app.internal.domain (10.0.1.2)
Run Code Online (Sandbox Code Playgroud)
我可以通过在 /etc/hosts 中添加“10.0.1.2 app.internal.domain”来做第二件事,但这也意味着 app.proxy.domain 将登陆开发服务器。
我正在寻找一个选项,仅在 app-dev.proxy.domain 的 vhost 配置文件中设置 /etc/hosts 条目,以便所有其他 vhost 配置都将仅使用 app.intern.domain 的 DNS。
想法...
有没有办法告诉 apache 配置,
ProxyPass / http://10.0.1.2/
Run Code Online (Sandbox Code Playgroud)
但是发送 app.intern.domain 作为主机名?
编辑 dev-servers 网络应用程序以收听 app-dev 是没有选择的,因为它应该是一个精确的副本(不是我的决定......)
谢谢!
hostname ×10
debian ×2
ip ×2
linux ×2
apache-2.2 ×1
avahi ×1
domain-name ×1
exim ×1
fqdn ×1
http-headers ×1
networking ×1
redhat ×1
reverse-dns ×1
ubuntu ×1