我已经隔离了一个问题: 在Windows XP Pro SP2上,如果有人尝试在循环中打开TCP / IP套接字(基本上,监听端口7000,监听端口7001等) 在大约649个打开的套接字之后,将会出现错误:没有可用的缓冲空间(达到最大连接数?) 问题是,什么registry设置等编辑,以增加收听这个错误之前可以打开的侦听套接字的数量?
我禁用了TCP / IP NetBIOS Helper,并开始获取EventIDs 1030和1058. 这个线程说我需要启用它。 事实上,当我开始的时候,问题立即消失了。 我的问题是,为什么? 我以为NetBIOS是不需要的,除非你的networking上有Win98客户端?
由于在迷雾中丢失的原因,我们较早的Windows(2000,2003)服务器configuration了“pipe理”IP地址和三个“主机”IP地址。 对于拥有SSL证书的网站,还有其他IP。 “pipe理”IP地址是我们所有的内部configuration,监控和其他应用程序所绑定的地方。 我们将其locking,不允许从外界访问(除了通过我们的VPN)。 三个“主机”IP地址用于IIS网站托pipe(与主机标头一起使用)。 历史上,通过这三个IP地址轮换新的站点IP地址分配。 我不确定为什么。 我正在构build一批新的服务器,我正在考虑只有一个托pipeIP地址。 我们的服务器可以在一台机器上托pipe多达1200个站点。 可以绑定到单个IP地址的IIS站点的数量是否有技术限制? 我们的Linux平台似乎只用一个共享的IP +主机头就可以。 我最初认为这可能是一个search引擎优化的事情,但考虑到IPv4地址空间的保护是至高无上的,我不认为谷歌或其他search引擎可以合理地惩罚网站排名,因为数百个网站挂起相同的IP。
这种怪异的,至less对我来说。 我使用Windows身份validation,在服务器2k3 R2 SP2上安装了MSSQL服务器2k5(STD)(由于某些传统软件尚不支持x64或Server 2008)。 它被configuration为通过TCP / IP(2)或命名pipe道(3)接受本地或远程连接。 (我试过禁用命名pipe道,没有帮助。) 我可以从我们的任何SQL服务器远程连接到它,如果我拉起SQL SMS,我可以连接,如果我冲“。\实例”或[IP] \实例,但不是如果我尝试[主机名] \实例甚至[FQDN] \实例 – 我得到“无法连接,因为目标机器积极拒绝它”代码10061 TCP / IP错误。 当然,nslookup会返回服务器的FQDN和正确的IP地址。 顺便说一句,SQL Server代理也不会启动,因为它超时试图连接到[hostname] \实例,这让我感到特别奇怪,因为其他四个服务开始就好,他们的属性(在SQL服务器configurationpipe理器)说,他们正在连接到[主机名],并改变它的选项是灰色的。 只有其他的事情我可以想到补充的是,服务设置为在域名SA帐户下启动,而不是它应该有所作为。 有什么想法吗? (究竟是什么原因造成的,或者如何纠正?)
我有服务器哪个IP地址被列入白名单在外部系统。 另外,我也有一些软件开发人员使用dynamicIP来开发软件,他们需要连接到外部系统,但是他们的IP没有被列入白名单,因为它们是dynamic的,所以不能被列入白名单。 因此,我有连接到外部系统的IP 1.2.3.4的服务器,并且系统知道(通过防火墙规则等)1.2.3.4在白名单中并允许连接。 但是开发者拥有dynamic的IP(less数B类networking,没有办法将这么多地址列入白名单)。 是否有任何软件,TCP / IP端口转发代理或任何正确的名称,允许开发人员使用服务器IP地址连接到外部系统? 因此,外部系统开发人员的IP地址不是连接到服务器,而是服务器将stream量转发到外部系统。 我不想强制开发人员以其他方式安装某些代理客户端或更改系统范围的设置。 更新:我真的很抱歉。 服务器是Windows Server 2008 R2。 我错过了如此重要的信息:-(
我正在解决两个Linux机器之间的连接超时问题,在服务器的堆栈上看起来SYN-ACK的ACK已经丢失。 tcpdump在服务器端完成。 客户端得到syn-ack,发送ACK和数据包,并再次发送数据4次。 服务器在发送syn-ack 4秒钟后重新发送syn-ack,表明来自客户端的ACK在服务器堆栈上丢失。 客户端用ACK进行响应。 然后大约3秒后,客户端重新发送数据,并获得服务器的ACK。 客户端在10秒发送了FIN,因为客户端应用程序已经设置了10秒的超时时间。 所以问题是:tcpdump显示ACK到SYN-ACK到达服务器。 在这种情况下服务器可以重新发送SYN-ACK吗? 在服务器端是内核还是应用程序问题? 如何进一步debugging? 感谢你的帮助。 20:31:01.159098 IP client.cport> server.sport:S 2848162415:2848162415(0)win 5840 20:31:01.159103 IP server.sport> client.cport:S 901143055:901143055(0)ack 2848162416 win 5792 20:31:01.159192 IP client.cport> server.sport:。 ack 1 win 46 20:31:01.159276 IP client.cport> server.sport:P 1:426(425)ack 1 win 46 20:31:01.380395 IP client.cport> server.sport:P 1:426(425)ack 1 win 46 20:31:01.824367 IP client.cport> server.sport:P […]
在这篇关于Windows Server 2008的MSS限制的Technet文章中 ,它提到: 在分析源Windows 2008 Server上收集的networking跟踪之后,我们发现远程系统提供了512字节的TCP MSS大小,而Windows 2008服务器一直在发送MSS大小为536字节的数据包 你怎么去做这个,即做一个networking跟踪,然后确定Windows应该使用和目前正在使用的MSS值?
我的SSH会话随时会死掉 – 响应会停止,然后几秒钟后,PuTTY会popup一个消息,提示“ 服务器意外closuresnetworking连接 ”。看起来最常发生在空闲时,但并不总是如此 -甚至可能在我inputvim或其他东西的时候死掉(非常令人沮丧!)。 但是这很频繁 – 如果我非常幸运,它可能会存活几个小时,但是如果我不走运,它可能会在几秒钟或几分钟内login。 服务器:VPS与CentOS 5.6,WebMin 1.62,OpenSSH 4.3 客户: FTTH(或者更准确地说,对大楼有104个公寓) 运行NAT和安全的路由器#1 路由器#2作为无线接入点运行 Windows 7笔记本电脑(但我有一个XP桌面相同的问题) PuTTY 0.62 大多数情况下,我甚至不使用无线networking,只是将TCP-IP(与集线器)连接到路由器#1,但问题仍然存在。 我认为根本的原因是在我的ISP的连接(或在build设中)打嗝,但我可能无法解决这个问题,所以我问这个在ServerFault的原因是因为我只是想configurationSSH(或腻子或任何需要),以便它不会轻易终止会话。 我尝试了其他人认为有用的各种东西: 设置PuTTY的连接 – >“Keepalives之间的秒”,以不同的非零值(我不知道这个设置是像TCPKeepAlive还是更像ServerAliveInterval,但它是唯一可用的设置在PuTTY中) 试图通过closuresPuTTY的keepalive(0),然后在服务器上,包括这个在sshd_config中,使服务器做的工作: TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3000 更改为我的电脑的静态IP(这是SuperUser.com上这个问题的解决scheme) 但它仍然在所有的变化中死亡 – 很难判断一套设置是否比另一套稍好,但是即使在不到一个小时的时间内,每个设置都失败了。 从长远来看,这个问题是相当一致的 – 我已经忍受了几年来我一直在pipe理这个服务器(我主要是程序员,所以我不花大量时间在SSH上,但是当我确实需要它,继续失去我的会议令人沮丧)。 有什么想法吗?
这个问题主要针对Linux。 虽然我自己可以find答案,但我希望有人能够隐含地知道答案,并且可以节省一些时间。 如果我连接到面向套接字的服务(例如HTTP服务器),那么机器是否仍然使用相同的TCP握手协商连接,就好像地址是远程的(服务器端和客户端)? 同样,有没有一个FIN断开? 我想,我想知道如果基于数据包的连接dynamic不同,并成为标准的UNIX文件IO操作,如果没有路由参与。
让我先说一下,我对这个级别的networking知识足够了解是危险的,所以如果我说一些愚蠢的话,请善良。 我在3台Apache服务器前使用了一个Big IP负载均衡器。 这3个Apache服务器都在同一台物理机器上(运行Linux),绑定到三个不同的虚拟IP地址的端口80,但我不认为这是在这个问题上的一部分。 我们configuration了LB,以便同一个客户端每次获得相同的WEB服务器,通过LB提供的cookie进行控制。 如果我通过LB来访问我们的应用程序,我会偶尔(5-15%的时间)得到一个浏览器正在旋转的页面,永远不会返回。 如果我直接打到每个WEB服务器上,我都不会那么做。 使用WireShark,我查看了我的电脑,LB和我通过LB打的WEB服务器发生了什么,我看到了以下内容: 1)大多数时候,PC用来打LB的端口是LB用来打WEB服务器的端口,我认为是“正常”的。 所有3次我复制我的问题,端口是不同的(例如1234之间的PC / LB和2345之间的LB / WEB)。 但是,并不是所有的时代,他们是不同的,我看到一个问题。 这可能是一个红鲱鱼…. 2)PC < – > LB通信与1260字节长的数据包; LB – > WEB报文为1260字节,LB < – WEB报文为1260的几倍。当WEB向LB发送2520字节时,LB收到2×1260字节报文,只发送一个ACK。 然后它将发送回PC 2×1260字节的数据包,并从PC接收一个ACK。 我不明白为什么2520被分成2×1260,我也不明白为什么PC知道只发送一个ACK。 这也可能是一个红鲱鱼…. 3)在某些时候,WEB服务器向没有收到ACK的LB发送数据,然后重新发送启动这个数据序列的数据包。 但是,我不知道为什么重新传输会发生,因为只有0.6秒的时间,所以不能超时(呃,我想是可能的,但看起来似乎不太可能)。 此外,原始的WEB-> LB数据包是5040字节(4×1260),但重传仅为1260.LB接收到来自原始5040发送的所有4个数据包,但是从不发送任何原因的ACK。 我看到其他时候,LB已经能够处理发送给它的5040个字节,它确认得很好,所以看起来好像发送的数据包的长度不是问题。 但是,这些数据包都没有从LB发送回PC。 4)尽pipe只有第一个1260块的数据从WEB重新发送到LB。 有一个小的延迟(0.4秒),然后是第二次重传数据,从第一个1260块开始,这次所有的4×1260数据包都被重新发送。 然而,由LB发回的ACK是全部5个重新发送的数据包,即使它们中的一个明显地重新发送了两次(我基于WireShark所示的相对seq编号;发回的ACK等于seq即使第二重发分组的序号与第一重发分组相同,也是第一重发分组的编号+ 5×1260)。 这似乎很糟糕。 5)最糟糕的是,我认为,港口都搞砸了。 原来的对话端口如下: PC <-> LB == 2723 LB <-> WEB == 2722 […]