localhost
我想从具有主机名的主机exthost
通过互联网访问具有主机名的外部主机。的公共IP地址exthost
由Internet提供商动态分配。
我想指的是exthost
始终使用其名称,并根据提供商可能会更改的值将其映射到其实际IP地址。
为此,我想使用/etc/hosts
,正确更新与相关的行的IP地址值exthost
。
例如,/etc/hosts
Linux中的行可能如下所示:
<ip_address> exthost.domain exthost
我正在使用Ubuntu 18.04,但这肯定也适用于其他发行版/类Unix系统。
是否可以这样做,而避免仅为此目的设置DNS(以及动态DNS,有时它不是免费服务)?
例如,是否可以使用<ip_address>
对引用仅包含所需IP作为字符串的另一个文件的引用,而不是显式的引用?这样用户可以根据IP值(可能会有所不同)访问和修改此文件。
注意:这个问题似乎不一样,因为它与本地计算机有关。我指的是外部主机。
在Linux上没有用户定义的主机文件之类的东西,您可以使用与规范名称一起使用的HOSTALIASES。
如果我正确回答了您的问题,则可以使用DynDNS或No-IP之类的动态DNS服务来始终为您的ISP分配正确的公共IP地址。
然后,您可以使用HOSTSALIASES映射exthost
到动态DNS服务提供的FQDN名称。
使用导出HOSTALIASES值,export HOSTALIASES=~/.hosts
然后在~/.hosts
文件中添加以下行,以将exthost映射到由no-ip提供的FDQN名称。
exthost yourname.no-ip.org
HOSTALIASES仅适用于规范名称,而不适用IP,这就是为什么您应该使用一些动态DNS服务来获得FQDN名称的原因,但是您只能使用该FQDN,而完全跳过HOSTALIASES。
我认为您必须先设置一些DNS服务,或者在远程站点上编写脚本脚本以始终向您发送其公共IP,然后再在本地/etc/hosts
文件中更改该IP,否则您就无法做到这一点。
另一个选择是授予用户更改权限/etc/hosts
或在chroot环境中设置该用户的权限,并在chroot环境中为其提供自己的/etc/hosts
文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句