当我创建 VM 时,我的自动主机名是 localhost.localdomain。这会导致从我的虚拟机到我拥有的另一台 Windows 计算机(无法 ping 通我的虚拟机)出现一些网络问题。如何更改虚拟机的主机名?我是否还需要在虚拟机和 vSphere Client 中进行更改?
更新:
我已将 RHEL VM 的主机名更改为“MyVM”,并在 /etc/hosts 和/etc/sysconfig/network. 但是,我仍然无法从网络上的另一台 Windows 计算机 ping 到 MyVM。这和dns域名有什么关系吗?我明白了dnsdomainname: Unknown host。在我的 vSphere Client 上,它仍然显示主机是localhost.localdomain,但从您下面的回复来看,vSphere Client 的显示内容应该不重要。
有什么想法吗?
谢谢!!
我有一个 Ubuntu 服务器。它将是一个 URI 为 的 Web 服务器www.example.com。www.example.com我有一条指向服务器 IP 地址的DNS A 记录。
假设我选择“trinity”作为该服务器的主机名。
我想正确设置 DNS 记录。我需要反向 DNS 到www.example.com,因此 CNAMEwww.example.com似乎不合适。这是我的问题:
设置两条 DNS 记录(在我的情况下可能是两条 A 记录),一条用于www.example.com,一条用于trinity.example.com,都指向该服务器的 IP 地址,这是否被认为是最佳实践?(或者,即使它不被接受为最佳实践,它是一个好主意吗?)
如果是这样,以下是正确的 /etc/hosts 文件吗?
$ cat /etc/hosts
127.0.1.1 trinity.local trinity
99.100.101.102 trinity.example.com trinity www.example.com
Run Code Online (Sandbox Code Playgroud)
该服务器是 Linode,Linode 的文档似乎暗示上述方法是最好的(如果我正确阅读它们)。这是相关部分。我将似乎适用于此的那条线加粗了。
更新/etc/hosts
接下来,编辑 /etc/hosts 文件以类似于以下示例,将“plato”替换为您选择的主机名,将“example.com”替换为系统的域名,将“12.34.56.78”替换为系统的 IP 地址。与主机名一样,FQDN 的域名部分不一定需要与服务器上托管的网站或其他服务有任何关系(尽管如果您愿意,也可以这样做)。例如,您的服务器上可能托管“www.something.com”,但系统的 FQDN 可能是“mars.somethingelse.com”。
文件:/etc/hosts
Run Code Online (Sandbox Code Playgroud)127.0.0.1 localhost.localdomain localhost 12.34.56.78 plato.example.com plato您指定为系统 FQDN 的值应该在 DNS 中具有指向您的 Linode IP 地址的“A”记录。有关配置 DNS …
从我的本地网络发送电子邮件一切顺利。还可以通过 Thunderbird 或使用本地安装的 Roundcube 进行远程操作。但现在,我在亚洲,尝试使用 Thunderbird 发送电子邮件。日志中出现以下错误:
postfix/submission/smtpd[4588]: NOQUEUE: reject: RCPT from unknown[110.170.163.146]: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [110.170.163.146]; from=<<me>@<mydomain.com>> to=<<me>@<mydomain.co>> proto=ESMTP helo=<[10.10.3.55]>
Run Code Online (Sandbox Code Playgroud)
dig +short -t A mail.<mydomain.com> 给出:xxx.xxx.xxx.xxx,我的服务器的 IP。
dig +short -x 110.170.163.146 给出:110-170-163-146.static.asianet.co.th。在这里你可以看到,我现在在泰国。
在雷鸟我有:
Server Name: mail.<mydomain.com>
Port: 587
Connection security: STARTTLS
Authentication method: Normal password
Username: <me>@<mydomain.com>
Run Code Online (Sandbox Code Playgroud)
master.cf 中的所有 smtpd 行:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_wrappermode=no
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o smtpd_sasl_auth_enable=yes
-o …Run Code Online (Sandbox Code Playgroud) 我有一个需要更改主机名的 redhat (EL5) 服务器。我正在尝试将其恢复到已知状态以帮助进行服务器配置活动。
作为更改主机名的一部分,我正在更新 /etc/sysconfig/network 和 /etc/hosts。我也有一个对主机名的显式调用。我想要的状态是服务器认为它的主机名是“localhost”。对“主机名”的调用将返回“localhost”。
我遇到的问题是,当我重新启动时,主机名恢复为“localhost.companyname.com”,这不是我想要的。如何确保在重新启动时将主机名设置为“localhost”?
我的 /etc/sysconfig/network 文件包含:
NETWORKING=yes
HOSTNAME=localhost
GATEWAY=123.123.123.123 #I do have a proper IP address here
Run Code Online (Sandbox Code Playgroud)
我的 /etc/hosts 文件包含:
127.0.0.1 localhost.localdomain localhost
172.21.1.1 localhost.companyname.com localhost
Run Code Online (Sandbox Code Playgroud) 我有两台服务器,其中一台似乎已经配置了一些“开箱即用”的东西,以允许“ssh servername.local”工作。我真的很喜欢这个并研究了它,但我看不出它们的配置有什么不同。
server1:(按名称 ssh有效)
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server1
server2:(按名称 ssh不起作用)
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server2
server1.local 连接正常,server2.local 得到此响应:
ssh: Could not resolve hostname server2.local: Name or service not known
我没做DNS设置,两台服务器的revolv.conf文件是一样的。
server2 运行 ubuntu server 9.04 32 位(jaunty),server1 运行 ubuntu桌面9.10 64 位(karmic)。
谁能告诉我应该在哪里查看有什么不同,以及为什么它适用于一个而不适用于另一个?
我正在使用 VirtualBox 进行测试并拥有最新的稳定版 Debian。
当我尝试使用两者设置机器的主机名时:
hostname ayil
Run Code Online (Sandbox Code Playgroud)
并编辑/etc/hostname和运行/etc/init.d/hostname.sh start以确保它被激活。
每当我运行hostname -f它返回:
Unknown-08-00-27-47-ef-30.config
而不是ayil。
我不知道还能做什么,在正确的方向上有帮助的观点将不胜感激。
我知道 Windows 有 ipconfig 命令来查找有关我的主机名和 IP 地址的信息。在 Ubuntu 上我试过:
tpconfig - 没有安装在我的机器上 iwconfig - 没有提供有用的信息 ifconfig - 提供了以下内容:
inet 地址:128.48.204.195 广播:128.48.204.255
我在防火墙后面。这些是我的 IP 地址吗?或者他们代表什么?
另外,每台计算机都有主机名吗?如果是这样,我如何找到它?
谢谢,亚历克斯
我遇到了多个网站共享一个 IP 地址的情况。我让 nginx 接受请求并将它们传递给实际上为站点提供服务的 Apache。我知道这里并不真正需要 Apache,但由于历史原因,它是这样设置的,如果不需要,我宁愿不更改它。
事情的设置方式,nginx 接受对 example.com 的请求并将其传递给 Apache,如下所示:
server {
listen 80;
server_name example.com www.example.com;
access_log /var/log/nginx/example.log;
error_log /var/log/nginx/example.log;
location / {
proxy_read_timeout 120;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8100;
}
}
Run Code Online (Sandbox Code Playgroud)
在 httpd.conf 中,我们有
<VirtualHost localhost:8100>
ServerName www.example.com
ServerAlias example.com
Options Indexes
DocumentRoot /export/sites/example/live
ServerAdmin info@example.net
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都运行良好,但我已经向站点添加了一个 PHP 脚本(不是我自己的),但它无法获得正确的主机名。$_SERVER["HTTP_HOST"] 和/或 $_SERVER['SERVER_NAME'] 正在返回 localhost:8100 而不是 example.com。
是否可以进行设置以便 PHP 获得正确的主机名?
我已经成功地在我的服务器上设置了多个站点,并且由于它们都被分配到端口 80,我在 IIS 站点绑定中为每个站点分配了一个唯一的主机名。
首先,这是正确的做事方式吗?
其次,现在有什么方法可以使用我的服务器 IP 访问这些文件吗?我尝试了“ http://ServerIP:80/HostName.com ”的各种组合,但我无法让它工作。
先感谢您。
在我的私人本地网络上,我需要一个 Ubuntu 主机来说服自己(好吧,更具体地说是 Erlang“长名称”工具)它有一个 FQDN。它是什么并不重要。但是假设我的真实主机名是apps-dev-01我想hostname -f返回,例如,apps-dev-01.internal。
我假设某种组合/etc/hosts和/etc/resolv.conf操纵会让我到达那里,但我无法弄清楚它到底是什么。这里的正确方法是什么?
请注意,我不在内部运行 DNS 服务器,而且鉴于我的网络很小,我宁愿不承担这种麻烦。