Windows Server 2008-连接到127.0.0.1


9

在运行Windows Server 2008 R2的环境中,我们有一个应用程序,该服务器从服务器上的公共IP连接(绑定到)到127.0.0.1:8334 [连接到侦听0.0.0.0:8334的服务]

在Windows 2003中,这没有问题。我们可以使用从1.2.3.4 [eg]到127.0.0.1:8334的TCP进行连接。

在Windows 2008中,我们发现从公共IP(例如1.2.3.4到127.0.0.1:8334)的TCP连接甚至失败。但服务接受的连接范围是127.0.0.1至127.0.0.1:8334,以及127.0.0.1至1.2.3.4:8334。

尝试关闭Windows防火墙,配置其日志记录等(没有显示有用的日志条目),但无济于事。这是新的网络堆栈的问题吗?

编辑

1.2.3.4尝试连接到同一台计算机上的本地主机[127.0.0.1]

主机文件是默认的Windows 2008主机文件。

回送检查信息,有趣。尝试了...辛苦的工作。交叉检查以确认Id正确完成了所有操作-我已经这样做了。

我想知道是否有使用NAT或其他方式转发端口的解决方案-如果我将127.0.0.1:port转发到1.2.3.4:port,那行得通吗?假设应用程序在0.0.0.0:port上侦听,它将在1.2.3.4:port上建立连接

HOSTS文件确实包含localhost 127.0.0.1-但是,hosts文件仅用于主机名查找。在这种情况下,我们的应用程序将不查找任何主机名,因为127.0.0.1 IP地址被硬编码到其中(而不是localhost主机名)。因此,HOSTS文件不会在这里起作用。

至于1024以上的端口[想想您是指MaxUserPort问题?]我通过尝试简单连接到端口445进行了测试-从127.0.0.1开始工作,从源IP 1.2.3.4连接时不起作用。445是标准的Windows服务,因此应该可以使用!

当前未在计算机上运行NAT或RRAS ...正在想知道是否有办法进行重新路由-我猜测它无法正常工作,因为TCP / IP堆栈会在到达环回接口进行重新路由之前拒绝该数据包。

我检查过的路由打印-看起来不错,先路由公共IP,然后再路由127.0.0.0网络掩码255.255.255.0和127.0.0.1网络掩码255.255.255.255都回送。

编辑 似乎我找到了有关问题原因的答案。我使用eventvwr.msc,启用了Winsock日志记录,关闭了其他服务,只是尝试了此连接测试。当我用Google搜索时,发现了一个错误,该错误以十六进制映射到STATUS_INVALID_ADDRESS_COMPONENT。

那让我知道了:http : //social.msdn.microsoft.com/Forums/en-US/wfp/thread/d7cb6138-3f67-4467-a068-8325f56739ba

证实这是WFP for Vista / 7 / Server 2008 [windows过滤平台]中的设计更改。

[请参阅Anupama Vasanth的回复]

看来我将不得不走困难的路线并重写代码(很难,因为这意味着要与经理打交道!)

多谢您协助我找出/确认问题!


在您的描述中,是否在同一台计算机上是1.2.3.4和127.0.0.1?您在主机文件中为他们拥有什么?
纳季·瓦宁

Answers:


1

不要忘记,在Windows 2008中,默认情况下防火墙是打开的。即使在环回接口上,这也可能会阻止所有流量。此外,如果绑定到0.0.0.0,则表示您接受所有接口上的连接。防火墙仍将阻止此操作。您可以在测试时尝试关闭防火墙...,然后重新打开防火墙。连接到我在127.0.0.1上开发的各种程序时,我没有任何问题。


0

尝试在Vista / win2k8及更高版本中连接到127.0.0.2-听起来很有趣,但是可以。过去曾取得积极成果


-3

我最确定的是,它与环回检查安全性功能相关联,尽管我无法深入了解它的实现方式,而仅是如何克服它:

http://chillicode.wordpress.com/tag/loopback-check/

对于Windows 2008的“ APPLIES TO”,请参见http://support.microsoft.com/kb/896861


好吧,您的HOSTS文件中到底是什么?我没有W2008。您的意思是那里没有“ 127.0.0.1 localhost”吗?

我也确实读过某个地方,即默认的W2008安装程序不允许与大于1024的端口进行通信。


您可以通过以下方式直接向MS团队提交有关MS Windows Server 2008的反馈:

他们会回复

如果您尝试通过注册表编辑方法关闭“回送检查”,则需要重新启动。另一个-不。

机器内部有NAT?127.0.0.1未转发或路由,我相信是这样,它是内部的,您可以拔下网卡,您的1.2.3.4将消失,但127.0.0.1将继续存在。

您的(Run-> cmd-> route print)输出是什么?

我在想,还有一个片刻,尽管我不知道如何将其组合在一起。

127.0.0.1是localhost(接口),它是单标签名称,被认为是本地的。1.2.3.4是非单标签名称。

可能出现的问题是该名称可能被认为是外部名称


您可以分别尝试:

  1. 在网络适配器上禁用IPv6(如果启用了,如果禁用则启用)?

  2. 将1.2.3.4的一些单标签名称放入HOSTS文件中?


如果无法从1.2.3.4到127.0.0.1:8334通信,则eventvwr.msc中相应的事件描述,EventID等是什么?


“ 445是标准的Windows服务”

是否适用于通过TCP / IP的SMB-direct?用于文件共享?CIFS?

不太可靠... MS修补程序一直在对其进行黑客攻击。读:

(“NetBIOS的跨子网的浏览可以升级到Windows Server 2008后失败”) - http://blogs.technet.com/b/networking/archive/2008/07/25/netbios-browsing-across-subnets-may-fail -升级到Windows Server-2008.aspx之后?wa = wsignin1.0

然后,

“与Vista SP2计算机尝试访问Windows Server 2008 SP1或SP2文件共享时,我们遇到了相同的问题。文件共享服务受到Windows防火墙的保护,具有高级安全性,它使用预定义的文件共享(SMB)规则来建议安全连接”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.