git*_*rik 7 hostname hosts-file
所以我知道主机名应该(至少在 Debian 系统中)设置在/etc/hostname
. 要获取 FQDN(通过hostname -f
),系统会从主机名中找到 IP /etc/hosts
,然后返回该行中的第一个条目。
所以如果主机名是server1
,这是在/etc/hosts
:
192.0.2.1 server1.example.com server1
Run Code Online (Sandbox Code Playgroud)
它将返回server1.example.com
。所以这就是它在许多网站上的描述方式。但我在想:为什么不将主机名分配给环回地址?就像你做的那样localhost
:
127.0.0.1 server1.example.com server1 localhost
Run Code Online (Sandbox Code Playgroud)
使用这种方法,您不必知道外部 IP 地址。此外,可能使用 FQDN 的应用程序将直接在系统上发出请求,而不是通过网络。
那么,为什么不这样做呢?为什么互联网上的大多数示例都使用外部 IP 地址?
出于多种原因,这可能是个坏主意
如果你有一个 ip(并与其他主机通信),强烈建议将主机名放在外部已知的 ip 前面。
一些协议可能会说“告诉其他人你的主机名和它的 IP 地址”“好的。其他人,我是 foo.localnetwork(127.0.0.1)”。另一个人将收到此数据包,在 IP 级别为外部 IP,但在协议级别为 127.0.0.1 IP,因此如果该协议需要使用广告信息而不是IP 级别的(例如,SIP 可能有问题...)
此外,某些服务仅绑定在持有与主机名相关联的 ip 的接口上,因此这些服务只能通过环回设备与主机对话,没有其他人...
小智 4
这是默认设置,至少在新的 Ubuntu 版本上是这样。
这是我的/etc/hosts
配置:
127.0.0.1 localhost.localdomain localhost
127.0.1.1 sprinkler.internal.lan sprinkler
Run Code Online (Sandbox Code Playgroud)
无论如何,这都不是问题,而且事实上,它还有一个额外的效果,即某些操作不需要有效的 DNS。
我个人倾向于添加更多条目,例如本地 apt 存储库、一些构建器等。
归档时间: |
|
查看次数: |
12921 次 |
最近记录: |