似乎有很多实用程序可以管理 OSX 上的 hosts 文件。我甚至找不到一个像http://www.macupdate.com/app/mac/29949/gas-mask对于 Linux。我始终在 vim 中打开我的 hosts 文件,因为出于测试目的,我每天要多次切换映射。
我想要的是 GUI 或可以放入面板或小部件的东西,或者可以有一组主机配置文件的东西,这样我就可以预先配置它们,然后只需单击即可更改设置。有这样的实用程序吗?我在 Ubuntu 10.04 中。
答案1
管理和切换主机配置的小工具。已在 Linux、Windows 和 Mac OS X 上进行了测试。(由于 Qt 4.7 要求,在 ubuntu < 10.10 上无法使用)
Host Profiles 是一款跨平台主机文件管理工具。快速切换主机配置文件并自动刷新 DNS。目前,只有 root 用户可以启动该程序。
hostsadm 程序读取 MySQL 数据库并创建多个配置、文档文件和许可证报告。Linux/Unix 系统上的主机相关信息保存在多个配置文件中(即 /etc/hosts、/etc/ethers、/etc/netgroup 或相应的 LDAP OU)。添加或修改主机需要在多个位置进行一致的修改。将有关主机的所有信息集中在一个位置可以更轻松地进行维护并确保一致性。
网络文档与配置文件使用同一个数据库生成,因此与配置一致。由于许可证报告使用同一个数据库生成,因此主机名与网络文档一致。
SwitchHosts 可以让你快速轻松地管理和切换多个 hosts 文件。当然,DNS 刷新是一次性执行的。Hosts 文件经过审计,安全有保障。
虽然这不是您所要求的,但也值得了解:
C 库中的各种函数需要配置才能在本地环境中正常工作。传统上,这是通过使用文件(例如 /etc/passwd)来完成的,但其他名称服务(如网络信息服务 (NIS) 和域名服务 (DNS))变得流行,并被入侵到 C 库中,通常使用固定的搜索顺序(参见 frobnicate)。
GNU C 库包含一个更清晰的解决方案来解决这个问题。它的设计遵循了 Sun Microsystems 在 Solaris 2 的 C 库中使用的方法。GNU C 库沿用了他们的名字,并将此方案称为名称服务切换 (NSS)。
虽然接口可能与 Sun 的版本相似,但没有通用代码。我们从未见过 Sun 实现的任何源代码,因此内部接口不兼容。这也体现在我们使用的文件名中,我们将在后面看到。
使用 FireFox 的 FoxyProxy 插件避免编辑“hosts”文件
FoxyProxy 充当 Firefox 和互联网之间的代理服务器。您设置一个“代理”,它基本上允许您将流量引导到单个点 - 我使用将流量引导到“localhost”的代理 - 然后您可以添加与代理关联的任意数量的模式。一旦所有设置完成,您就可以通过在浏览器底部单击鼠标右键来打开或关闭此代理。对我来说,设置非常简单,而且效果很好。
好吧,这里有一个警告:有时我确实需要在不同的浏览器中测试网站。在这种情况下,这个浏览器插件根本无法满足我的大部分日常 Web 开发需求 - 它非常棒!
Dnsmasq 是一款轻量级、易于配置的 DNS 转发器和 DHCP 服务器。它旨在为小型网络提供 DNS 和可选的 DHCP。它可以为不在全局 DNS 中的本地计算机提供名称。DHCP 服务器与 DNS 服务器集成,并允许具有 DHCP 分配地址的计算机出现在 DNS 中,其名称可在每个主机或中央配置文件中配置。Dnsmasq 支持静态和动态 DHCP 租约以及用于无盘计算机网络启动的 BOOTP/TFTP/PXE。
Dnsmasq 针对的是使用 NAT 并通过调制解调器、电缆调制解调器或 ADSL 连接连接到互联网的家庭网络,但对于任何小型网络(已知最多可容纳 1000 个客户端)来说,它是一个不错的选择,因为低资源使用率和易于配置非常重要。
支持的平台包括 Linux(带有 glibc 和 uclibc)、Android、*BSD、Solaris 和 Mac OS X。Dnsmasq 至少包含在以下 Linux 发行版中:Gentoo、Debian、Slackware、Suse、Fedora、Smoothwall、IP-Cop、floppyfw、Firebox、LEAF、Freesco、fli4l、CoyoteLinux、Endian Firewall 和 Clarkconnect。它也可用作 FreeBSD、OpenBSD 和 NetBSD 端口,并用于 Linksys 无线路由器(dd-wrt、openwrt 和 stock 固件)和 m0n0wall 项目。
Dnsmasq 提供以下功能:
- 防火墙后面的机器的 DNS 配置很简单,不依赖于 ISP 的 DNS 服务器的详细信息
- 当调制解调器与互联网的连接中断时,尝试进行 DNS 查找的客户端将立即超时。
- Dnsmasq 将从防火墙机器上的 /etc/hosts 文件中提供名称:如果存在本地机器的名称,那么就可以对它们进行寻址,而无需在每台机器上维护 /etc/hosts。
- 集成的 DHCP 服务器支持静态和动态 DHCP 租约以及多个网络和 IP 范围。它跨 BOOTP 中继工作,并支持 DHCP 选项,包括 RFC3397 DNS 搜索列表。由 DHCP 配置的机器的名称会自动包含在 DNS 中,并且名称可以由每台机器指定,也可以通过在 dnsmasq 配置文件中将名称与 MAC 地址关联来集中指定。
- Dnsmasq 缓存互联网地址(A 记录和 AAAA 记录)和地址到名称映射(PTR 记录),从而减少上游服务器的负载并提高性能(尤其是在调制解调器连接上)。
- 可以将 Dnsmasq 配置为自动从 ppp 或 dhcp 配置中获取其上游名称服务器的地址。如果信息发生变化,它将自动重新加载。此功能对于 Linux 防火墙发行版的维护者来说尤其有趣,因为它允许自动进行 dns 配置。
- 在启用 IPv6 的设备上,dnsmasq 既可以通过 IPv6 与上游服务器通信,也可以通过 IPv6 提供 DNS 服务。在双栈(IPv4 和 IPv6)设备上,它可以同时使用两种协议,甚至可以充当 IPv6 到 IPv4 或 IPv4 到 IPv6 的转发器。
- Dnsmasq 可以配置为将针对特定域的查询发送到仅处理这些域的上游服务器。这使得与私有 DNS 系统的集成变得容易。
- Dnsmasq 支持 MX 和 SRV 记录,并且可以配置为返回任何或所有本地机器的 MX 记录。
该线程建议使用 WICD 前/后脚本,以便在 WICD GUI 中选择不同的网络会自动切换您的 /etc/hosts 文件:
Ubuntu 论坛 - 根据连接在 hosts 文件之间切换
WICD 网络管理器能够完全满足您的需求。您可以通过 Synaptic(或软件中心)安装它。请注意,由于它的功能与默认网络管理器相同,因此这将卸载后者。您可以随时通过安装 network-manager-gnome 包切换回来。
使用 WICD,您可以针对不同的无线和有线网络使用不同的预/后连接脚本。
如果您想保留默认的网络管理器,可以选择将脚本直接放入 /etc/network/if-* 文件夹中...尽管我对此没有什么经验,因为我很乐意使用 WICD。;)
答案2
答案3
你可以试试主机切换器,它在github上。
它是由 wxpython 构建的 GUI 工具,它使用 gedit 作为默认编辑器,您可以轻松地在多个主机文件之间切换主机。