我在我的公司使用我的域example.org 。 我可以使用www.example.org来查看我的网站。 如果我从公司外部尝试http://example.org ,没有任何问题,但如果我从内部尝试,我的Windows DNS服务器会传递域控制器的IP地址。
我该如何解决这个问题? 我可以阻止我的域名注册在我的域名为example.org ,这会成为我的环境问题吗?
如果你已经命名你的Active Directory example.org那么你不能阻止这个。 你已经违反Microsft命名AD的最佳实践,你看到了其中一个症状。
你有几个select:
迁移到正确命名的AD。 像corp.example.org 。
在每个DC上安装Web服务器,并将其configuration为将example.org Web请求转发到www.example.org 。 这是肮脏的,不应该做,但它是一个选项。
训练您的用户在内部访问www.example.org 。
我已经多次公布了关于AD命名最佳实践的链接,并链接到官方微软源代码。 你应该阅读它们:
http://www.mdmarra.com/2013/04/best-practices-for-configuring-new.html http://www.mdmarra.com/2012/11/why-you-shouldnt-use-local-in -hour.html http://www.mdmarra.com/2013/07/more-documentation-from-microsoft-about.html
如果你想要短版本:
不要使用与外部DNS名称相同的名称创build新的Active Directory林。 例如,如果您的Internet DNS URL是http://contoso.com ,则必须为内部林select一个不同的名称以避免将来的兼容性问题。 这个名称应该是唯一的,不可能用于networkingstream量。 例如:corp.contoso.com。
如果您在DC上运行Exchange,请勿设置PortProxy – 这可能会不用说,但会破坏托pipe在端口80上的Exchange服务。
我意识到这篇文章是相当古老的,但你仍然可以做到这一点,没有在DC上安装IIS。 在每个DC上,运行以下命令将portproxy端口80连接到外部Web服务器。
netsh interface portproxy add v4tov4 listenport=80 listenaddress={Static IP v4 address of DC) connectport=80 connectaddress={IP Address of public Web Server}
所以,我不知道这是否会阻止其他人,但是对于这个问题的最佳解决scheme可能只是获得具有不同后缀的二级域名,尤其是如果由于Exchange位于DC而无法使用PortProxy(或者由于主机头问题与您的networking主机。)
例如:如果内部AD域是EXAMPLE.com ,那么您应该简单地购买EXAMPLE.NET供内部使用。
这是内部networking访问最便宜和最简单的解决方法。
这对我们有效。
您可以通过两种方式解决您的问题,但是需要在您的DC上放置一个HTTP服务器:
您可以使用URLredirect(HTTP 301代码)进行redirect,IIS 7可以为您执行此操作,也可以安装反向代理(Apache for Windows)并使用以下代码:
ProxyPass / http://www.example.com/
ProxyPassRever / http://www.example.com/
ProxyPreserveHost打开