是否可以添加仅特定于某个用户的主机列表?也许是用户特定的主机文件?
此机制还应补充/etc/hosts
文件中的条目。
我怎样才能让/etc/hosts
文件引用另一个配置文件的主机列表?
示例/etc/hosts
:
## My Hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#Other Configurations
<Link to /myPath/to/MyConfig/ConfigFile.txt>
#Other Addresses
3.3.3.3 MyAwesomeDomain.com
4.4.4.4 SomeplaceIWantToGoTo.com
Run Code Online (Sandbox Code Playgroud)
配置文件.txt
##My additional Hosts
1.1.1.1 SomeLocation.com
2.2.2.2 AnotherLocation.com
Run Code Online (Sandbox Code Playgroud)
如何向/etc/hosts
文件添加链接/参考以便加载 ConfigFile.txt?
有一段时间我一直在像这样格式化我的主机文件。注意两行相同的ip:
e.f.g.h foo.mydevsite.com
e.f.g.h foo.myOtherDevSite.com
Run Code Online (Sandbox Code Playgroud)
我最近读到别名应该合并在一行上:
e.f.g.h foo.mydevsite.com foo.myOtherDevSite.com
Run Code Online (Sandbox Code Playgroud)
但是,我不喜欢这种方法,因为您无法轻松注释掉某些别名或为特定别名添加注释,如下所示:
a.b.c.d foo.mydevsite.com # myDevSite on box 1
# a.b.c.d foo.myOtherSite.com # myOtherSite on box 1
a.b.c.d ubuntuBox
e.f.g.h foo.myOtherSite.com # myOtherSite testing environment
Run Code Online (Sandbox Code Playgroud)
到目前为止,这一直运行良好;这有问题吗?
据我所知,该hosts
文件是帮助在计算机网络中寻址网络节点的几种系统工具之一。但里面应该有什么?当我默认安装 Ubuntu 时
127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)
将在那里。为什么?
/etc/hosts
在 Cassandra 等 JVM 系统的情况下如何工作?我有一个域设置来使用动态 DNS 指向我的 LAN 的外部 IP,因为我的外部 IP 地址经常更改。但是,我想为此主机创建别名,以便我可以使用home
. 所以我将以下内容附加到我的/etc/hosts
:
domain.com home
但是,它似乎并不喜欢该域名。如果我将其更改为 IP:
0.0.0.0 home
……然后就可以了,但这当然违背了动态 DNS 的目的!
这可能吗?
粘贴在此问题下方的是/etc/hosts
来自 Linux (CentOS) 和 Windows 机器的文件示例。Linux 文件在 IP 地址之后有两个选项卡式条目(即 localhost.localdomain localhost),而 Windows 只有一个。如果我想在 Windows 中编辑主机文件以使用机器名称 (etest) 而不是 localhost,我只需将 localhost 替换为我想要的机器名称。机器不必是域的一部分。
在 Linux 机器中,这两个条目localhost.localdomain
和localhost
似乎表明我需要该机器成为域的一部分。这是真的?
我可以简单地编辑两个条目以etest
使其显示为:
127.0.0.1 etest etest
Run Code Online (Sandbox Code Playgroud)
还是需要我用一个域名替换一个条目?
另外,请让我知道/etc/hosts
Linux 机器上文件的第二行是做什么用的。
::1 localhost6.localdomain6 localhost6
Run Code Online (Sandbox Code Playgroud)
hosts
Linux机器上的文件:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
Run Code Online (Sandbox Code Playgroud)
hosts
windows机器上的文件:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is …
Run Code Online (Sandbox Code Playgroud) 有一个网站 www.example.com,我试图阻止自己访问,因为它浪费了我太多的时间。所以我配置了我的 /etc/hosts
文件。我添加了以下几行,以阻止 IPv4 和 IPv6 上的网站:
127.0.0.1 www.example.com
::1 www.example.com
127.0.0.1 http://www.example.com
::1 http://www.example.com
127.0.0.1 example.com
::1 example.com
Run Code Online (Sandbox Code Playgroud)
我重新启动了我的电脑,但我不能wget www.example.com
,pingwww.example.com
工作正常,但我的浏览器实际上并没有阻止该网站!我仍然可以在 Firefox 28 和 Chromium 中访问它。
/etc/networks
文件的实际用途是什么?据我了解,可以在此文件中为网络命名。例如:
root@fw-test:~# cat /etc/networks
default 0.0.0.0
loopback 127.0.0.0
link-local 169.254.0.0
google-dns 8.8.4.4
root@fw-test:~#
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在ip
实用程序中使用此网络名称,则它不起作用:
root@fw-test:~# ip route add google-dns via 104.236.63.1 dev eth0
Error: an inet prefix is expected rather than "google-dns".
root@fw-test:~# ip route add 8.8.4.4 via 104.236.64.1 dev eth0
root@fw-test:~#
Run Code Online (Sandbox Code Playgroud)
/etc/networks
文件的实际用途是什么?
实用程序,例如host
,dig
让您查看与主机名对应的 IP 地址。
还有getent
可用于查询/etc/hosts
或其他 NSS 数据库的实用程序。
我正在寻找一个方便的标准实用程序(例如在 Debian 中可用),它可以解析主机名,而不管它在哪里定义。
它应该或多或少相当于
ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'
Run Code Online (Sandbox Code Playgroud)