我有一个家庭局域网,使用 Dlink DIR-825 路由器连接到互联网。ISP:s dhcp 提供了一个外部 IP(例如 91.154.214.101,出于安全原因,这不是我的真实 IP),可以使用外部主机名访问(例如 mydns101.dlinkddns.com,出于安全原因,这不是我的真实主机名)。
我有一个端口转发规则(Dlink 路由器使用术语虚拟服务器),它将流量转发到端口 80 到具有本地 ip 129.168.0.120 的本地 centos6 服务器(见下图)。
我只想从我的家庭局域网访问这个本地服务器,但使用 urlhttps://mydns101.dlinkddns.com。现在我可以访问https://mydns101.dlinkddns.com来自四面八方。
我如何限制对此服务器的访问,以便只能从我的家庭局域网(91.154.214.101)访问它,但使用外部地址https://mydns101.dlinkddns.com?
我当然可以使用本地 IP 129.168.0.120 来访问它,而不使用任何端口转发,这意味着它无法从其他地方访问,但这样我就不能使用外部地址https://mydns101.dlinkddns.com。
当然,我可以使用本地服务器的 httpd.conf 来限制访问,但这不是我想要使用的方式,因为这个家庭服务器的目的是成为实时服务器的 1-1 开发服务器,并且我想在两者中使用相同的 httpd.conf。我想使用 Dlink 路由器来限制访问。
因为 91.154.214.101 是我的 IP,我认为允许从该 IP 访问并拒绝从其他 IP 访问是可行的方法。因此,我使用入站过滤器测试了所有组合(请参阅http://support.dlink.com/emulators/dir825/Advanced.html#Inbound_Filter):
名称操作远程 IP 范围 允许 允许 0.0.0.0-91.154.214.100, 91.154.214.102-255.255.255.255 拒绝 拒绝 0.0.0.0-91.154.214.100, 91.154.214.102-255.255.255.255 ALLOW2 允许 91.154.214.101-91.154.214.101 DENY2 拒绝 91.154.214.101-91.154.214.101
并将这些过滤器附加到“虚拟服务器”转发规则中,如下所示:
但这些规则都没有达到预期的效果。它们要么限制来自任何地方的访问,要么允许来自任何地方的访问,而这并不是所期望的行为。
答案1
尝试在客户端的文件中添加所需的翻译规则hosts
。具体操作取决于客户端操作系统(/etc/hosts
在 *nix 系统上)。
如果您使用本地 DNS,则可以在那里修复它,但否则您将需要以某种方式在客户端基础上执行此操作,并且该hosts
文件应该是一种全局的、简单的方法。
只需添加行
129.168.0.120 mydns101.dlinkddns.com
到每个想要的客户端hosts
,看看会发生什么。如果您不想进行外部访问,请按照您描述的方式从外部阻止 Web 服务器。