Windows Server 2008 – 连接到127.0.0.1

在运行Windows Server 2008 R2时,我们有一个应用程序从服务器上的公共IP连接到127.0.0.1:8334 [连接到服务监听0.0.0.0:8334]

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

在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的连接。

试图closuresWindows防火墙,configuration其日志等(没有有用的日志条目出现),无济于事。 这是新的networking堆栈的问题吗?

编辑

1.2.3.4正试图连接到同一台机器上的本地主机[127.0.0.1]

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

环回检查信息,有趣。 试过了…没有工作。 通过Crosschecked来validationId是否正确地做了一切 – 我有。

我想知道是否有解决scheme使用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地址被硬编码到它(而不是本地主机名)。 所以HOSTS文件不会在这里发挥作用。

至于1024以上的端口[可能是指MaxUserPort问题?]我试图通过简单的连接到端口445 – 从127.0.0.1工作,从源IP 1.2.3.4连接不工作。 445是一个标准的Windows服务,所以应该工作!

目前没有在机器上运行NAT或RRAS …想知道是否有办法做重新路由 – 我猜测它不会工作,因为TCP / IP堆栈将拒绝数据包,然后到达回路接口重新路由。

路由打印我已经检查 – 似乎很好,公共IP路由第一,然后终于127.0.0.0networking掩码255.255.255.0和127.0.0.1networking掩码255.255.255.255都回送。

编辑似乎我已经find了问题的原因的答案。 我使用eventvwr.msc,启用Winsock日志logging,closures其他服务,只是试过这个连接testing。 当我search到它时,得到了一个hex映射到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过滤平台]中的一个devise变更。

[见Anupama Vasanth的回应]

看起来我必须走艰难的路线,重写代码[很难,因为这意味着与经理打交道!]

感谢您帮助我find/确认问题!

    不要忘记,在Windows 2008中,防火墙默认是开启的。 这可能会阻止任何和所有的stream量,即使在回送接口。 另外,如果绑定到0.0.0.0,则表示您正在接受所有接口上的连接。 防火墙仍然会阻止这个。 您可以尝试在testing时closures防火墙,然后再打开它。 我没有任何问题连接到我在127.0.0.1上开发的各种程序。

    尝试连接到Vista / win2k8及以上的127.0.0.2 – 听起来很有趣,但它的工作原理。 过去有这个积极的结果

    我最肯定的是它与环回检查安全function连接,虽然我无法深入详细介绍它是如何实现的,只有如何克服它:

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

    而对于“适用于”Windows 2008,请参阅http://support.microsoft.com/kb/896861


    那么,你的HOSTS文件究竟是什么? 我没有W2008。 你的意思是说那里没有“127.0.0.1 localhost”?

    我也读了一些地方,默认的W2008安装程序不允许与大于1024的端口通信。


    您可以直接向MS团队提交MS Windows Server 2008的反馈意见

    他们会回复

    如果您尝试通过registry编辑方法closures“回送检查”,则需要重新启动。 另一个 – 不是。

    机器内部的NAT? 127.0.0.1是不是转发或路由,我相信是这样,它是内部的,你可以拔掉网卡,你的1.2.3.4将消失,但127.0.0.1将继续在那里。

    什么是你的(运行 – > cmd – >路由打印)的输出?

    还有一个时刻,我想,虽然我不知道如何把它放在一起。

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

    可能的问题是这样的名字可能被认为是外部的


    你可以单独尝试一下:

    1. 禁用(如果启用并启用,如果禁用)networking适配器上的IPv6?

    2. 把一些单标签名称为1.2.3.4到HOSTS文件中?


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


    “445是一个标准的Windows服务”

    它是通过TCP / IP的SMB直接吗? 用于文件共享? CIFS?

    不太可靠…它不断被MS修补程序黑客入侵。 读:

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

    然后,

    “我们遇到与前面描述的Vista SP2计算机试图达到Windows Server 2008 SP1或SP2文件共享相同的问题,文件共享服务受到Windows防火墙的保护,使用预先定义的文件共享(SMB)规则,安全连接“