telnet / nc在发送完几个数据包后无法发送数据包

时间:2019-01-30 07:10:21

标签: linux tcp redhat tcpdump netcat

我在TCP连接中面临非常奇怪的行为。 使用以下命令创建了侦听器:

  

ncat -4 -l 10000

发送数据:

  

telnet公共IP 10000

使用tcpdump分析数据,并使用netstat检查连接状态。当我发送数据包时(1、2、3、4、5 ....等等)。在服务器端仅接收到4或5个数据包,则什么也没有发生。 当netstat显示“已建立”连接状态时,tcpdump不显示任何即将到来的数据包。

ncat public-ip 10000命令也会发生同样的情况,请使用它作为客户端。

当我将使用telnet命令wih ^] and quit退出时,则telnet无法与服务器连接(错误:远程主机拒绝连接)。如果我将杀死ncat -4 -l 10000命令并再次重新启动,则将从客户端(远程登录)建立连接,而服务器将仅接收4-5个数据包。

我已经通过this url

交叉检查了所有tcp参数

任何人都可以知道服务器端发生了什么以及如何调试它吗?

编辑:1:

客户端计算机上的TCPDUMP

//Data-pkt-3
    13:26:55.844538 IP (tos 0x10, ttl 64, id 37219, offset 0, flags [DF], proto TCP (6), length 55)
        10.240.8.230.53839 > PUBLIC-IP.PORT: Flags [P.], cksum 0x9660 (correct), seq 9:12, ack 4, win 229, options [nop,nop,TS val 301276907 ecr 436759593], length 3

   //Data-pkt-4 
    13:26:59.916512 IP (tos 0x10, ttl 64, id 37220, offset 0, flags [DF], proto TCP (6), length 55)
        10.240.8.230.53839 > PUBLIC-IP.PORT: Flags [P.], cksum 0x8035 (correct), seq 12:15, ack 4, win 229, options [nop,nop,TS val 301277925 ecr 436763991], length 3
    13:27:00.179644 IP (tos 0x10, ttl 64, id 37221, offset 0, flags [DF], proto TCP (6), length 55)
        10.240.8.230.53839 > PUBLIC-IP.PORT: Flags [P.], cksum 0x7ff3 (correct), seq 12:15, ack 4, win 229, options [nop,nop,TS val 301277991 ecr 436763991], length 3
    13:27:00.443650 IP (tos 0x10, ttl 64, id 37222, offset 0, flags [DF], proto TCP (6), length 55)
        10.240.8.230.53839 > PUBLIC-IP.PORT: Flags [P.], cksum 0x7fb1 (correct), seq 12:15, ack 4, win 229, options [nop,nop,TS val 301278057 ecr 436763991], length 3

1 个答案:

答案 0 :(得分:0)

确保iptables不会阻止您的连接:

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

还要验证您是否在tcpdump中捕获了正确的接口

运行以下命令以获取与tcpdump一起使用的接口的列表:

# ip a|grep :|egrep -v 'link|inet'|awk '{print $2}'|sed 's/://'
lo
enp0s31f6
wlp2s0

因此,您要尝试的dcpdump命令将被(有线)连接:

# tcpdump -i enp0s31f6

或(wifi):

# tcpdump -i wlp2s0

Linux上的接口名称可能不同。