我有一个TCP连接问题如下。 设置: VMWare虚拟机:Windows Server 2008 R2 DataCenter SP1,IP:192.168.2.111,DG:192.168.2.254主机:Windows 7 Professional SP1,IP:192.168.2.152,DG:192.168.2.254 两台机器都禁用了防火墙 虚拟机设置networking适配器=桥接模式 没有IP地址或MAC地址冲突(“arp -a”看起来不错,这个映射) 在VM和主机上运行的Wireshark Linux Box 2.6.18-194.e15,IP:10.1.0.120,DG:10.1.0.254 禁用防火墙 虚拟机和Linux机器在不同的子网上,但所有stream量都通过默认网关(192.168.2.254&10.1.0.254) 问题: 不能build立从Linux机器到虚拟机的TCP连接 在Linux上,如果我这样做:traceroute -T 192.168.2.111 -p5066 在主机(192.168.2.152)上运行的Wireshark上,而不是在虚拟机(192.168.2.111)上运行SYN消息,所以它们不能到达虚拟机。 在192.168.2.111端口上肯定有一个应用程序监听端口5066上的TCP,所以如果SYN到达虚拟机,它就会响应。 我可以从Linux ping 192.168.2.111,我可以做traceroute -I 192.168.2.111(它使用ICMP如ping),但TCP不起作用。 我可以通过从VM到Linux的另一种方式build立TCP连接,所以我不认为虚拟networkingadpater和主机物理networking适配器之间的映射有任何问题。 如果我ping 127.0.0.1,虚拟机可以自己ping,虚拟机和主机可以互相ping通,我可以在虚拟机和主机之间双向文件浏览。 我已经卸载并重新安装了虚拟机上的networking适配器以及用于IPv4的TCP / IP,但仍然没有运气。 任何build议,以尝试其他的事情? 谢谢
我似乎与我的SQL Server和我的MongoDB副本集看到这一点。 我一天只得到一小撮,但仍然牵涉到我。 尝试打开到远程系统的新连接时出现超时。 即使远程系统启动并响应,也会发生这种情况。 我有一个单一的SQL Server实例和一个3系统的mongodb副本集。 在中等到更高的负载下,它似乎是零星发生的。 我正在使用连接池,并且大小应该限制连接(当然每个进程),也不应该看到超过1k连接,只是我看到超时试图连接。 SQL服务器是windows(当然),mongodb实例在Ubuntu下,客户端是linux和windows下的node.js以及.Net 4.5应用程序的组合。 我正在创build一个更有弹性(尝试失败之前尝试3次)的架构,这个问题与我相同。 你在这方面的问题,你会寻找什么?
在我的Apache日志文件中,我发现了很多包含"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400或类似垃圾的条目。 他们来自非RFC2616连接(HTTP / 1.1没有主机名)。 我不希望我的日志文件垃圾邮件与此消息。 所以我想用iptables拒绝这些连接。 因此,我想在数据包有效负载中searchstring“HTTP / 1.1”,然后search两个后续的CR / LF(CR / LF / CR / LF)(总共给出了hex串485454502f312e310d0a0d0a )。 但是,当我知道它是在第一个数据包时,它在所有的TPC数据包中search这个string都是浪费CPU周期的愚蠢。 它甚至会是错误的,因为后面跟着两个CR / LF的“HTTP / 1.1”可能是http请求有效载荷内合法的传输部分。 这里http://spamcleaner.org/en/misc/w00tw00t.html是这个问题的一个解决scheme,但我不明白标识build立的tcp连接的第一个数据包的部分。 我不明白的是,为什么在INPUT-Chain中只能看到初始TCP-Handshake(SYN,ACK + SYN,ACK)的所有3个数据包,或者只能从INPUT到达的链中。 据我了解iptables及其链,第二个数据包(ACK + SYN)永远不会经过INPUT。 我认为它传递OUTPUT是因为它发送它的我(即服务器)。 这是spamcleaner.org的脚本,我在脚本的第一部分只改了一些注释,但是我保留了所有的命令: #!/bin/bash # allow loopback iptables -A INPUT -i lo -j ACCEPT # DROP any IP that is in the […]
我需要一个networking传感器来收集几个TCP连接的基本端到端统计信息(包丢失,抖动和networking延迟/ RTT),这些TCP连接指向Ubuntu 12.04上相同的目的地(ip-addr:port)。 传感器必须能够收集1秒的统计数据。 无源传感器是优选的。 你有什么build议可以用于我的目的的工具或工具集? 到目前为止我所探索的解决scheme使用tshark 。 例如: 我被动地收集相关TCP连接的原始数据。 tshark -i eth0 -f "tcp port 6666 and host 192.168.0.9" -w ./data.pcap 一旦捕获/实验完成,我提取时间戳和属于filter的数据包和前一个数据包之间的delta(应该是抖动,对吗?)。 tshark -r ./data.pcap -T fields -e frame.time_epoch -e frame.time_delta_displayed -E header=y > output.csv 问题是被捕获的文件太重(运行可能持续〜7小时),我不知道如何监视丢包和networking延迟/ RTT。
我已经尝试通过修改net.ipv4.tcp_wmem和net.ipv4.tcp_rmem值来更改tcp的窗口大小,但是我所做的更改对实际窗口大小没有影响,我可以使用wireshark进行检查。 我试图在2个不同的内核(3.2.69和2.6.38)上做这个,根本没有任何效果。 我甚至试图将最小/默认数字改成荒谬的级别,并禁用window_scaling,但仍然没有效果 – 窗口大小保持完全相同。 我做错了什么? – 编辑 – 我已经更新了内核3.14.57和TCP的窗口大小翻倍,没有做任何其他的更改。 它看起来像这个值被控制在其他地方,内核实际上忽略了net.ipv4.tcp_wmem / net.ipv4.tcp_rmem值。
我无法从Linux发送邮件到Exchange服务器。 当我从端口25从Linux telnet到Windows时,我没有收到来自Exchange的任何消息。 等待几秒钟后连接自动终止。 使用tcpdump我可以看到,Windows持续发送SYN + ACK,并最终closures连接。 即使Linux响应ACK消息,Windows也不会看到它。 如果我发送一些消息(远程logintesting)而不等待Exchange的“问候语”,则连接工作。 我已经validation了Windows防火墙,并且允许来自Linux机器的连接,并且我在防火墙日志中找不到任何数据包丢弃消息。 从Windows到Linux端口25的连接工作正常。 细节: Windows:xxx243 / 255.255.255.128; 网关= xxx129 Linux:xxx145 / 255.255.255.128; 网关= xxx129 Linux到Windows tcpdump root@yy01:~# tcpdump -nni eth0 host xxx243 and port 25 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes […]
我有一个千兆上联的服务器,并与iperf3 100个并行连接testing我得到至less600 MBit / s,这取决于其他服务器(我试过一些公共testing服务器)。 但是,当我运行iperf3与一个连接,我得到10-15 MBit/s ,两个20-30 MBit/s等。 我没有非常复杂的iptables规则,没有其他的想法,为什么这么慢。 单个TCP连接的限制因素是什么,它比可能的带宽慢10倍?
我知道在TCP端口80上运行网站的Web服务器可以从许多不同的短暂端口接收来自许多不同IP地址的TCP连接。 客户端可以使用相同的临时端口向TCP端口80上的不同Web服务器启动多个连接(完成TCP三次握手)吗? 例如: Source Port: 55555, Destination Port: 80, Destination IP: 1.1.1.1 Source Port: 55555, Destination Port: 80, Destination IP: 2.2.2.2 Source Port: 55555, Destination Port: 80, Destination IP: 3.3.3.3
我有一个在Amazon Web Services上运行的Windows Server 2012 R2实例。 由于某些原因,我无法在任何高于6000的端口上与服务器build立TCP连接。 所有低于6000的端口都可以工作。 我已经用一个简短的C#程序testing了这个问题,该程序监听指定端口上的TCP连接,并使用telnet启动连接。 为了消除可能的原因,我确保AWS上的安全组允许所有传入和传出通信,并closuresWindows防火墙。 有没有人有任何意见,以帮助我排除故障?
考虑在Windows 7机器上通过本地主机上的ncat进行TCP通信: terminalA >ncat -4kvvl 127.0.0.1 5001 Ncat: Version 7.12 ( https://nmap.org/ncat ) Ncat: Listening on 127.0.0.1:5001 Ncat: Connection from 127.0.0.1. Ncat: Connection from 127.0.0.1:52840. BAM NCAT DEBUG: Closing connection. terminalB >echo BAM | ncat -4vv 127.0.0.1 5001 Ncat: Version 7.12 ( https://nmap.org/ncat ) NCAT DEBUG: Using trusted CA certificates from … libnsock nsock_iod_new2(): nsock_iod_new […]