telnet / nc не может отправить пакет после нескольких пакетов - PullRequest
0 голосов
/ 30 января 2019

Я сталкиваюсь с очень странным поведением в TCP-соединении.Созданный слушатель с помощью следующей команды:

ncat -4 -l 10000

Отправка данных:

telnet Public-IP 10000

Анализ данных с помощью tcpdump и проверка состояния соединения с помощью netstat.Когда я отправляю пакет данных (1,2,3,4,5 .... и так далее).На стороне сервера получено только 4 или 5 пакетов, тогда ничего не происходит.tcpdump не показывает поступающие пакеты, в то время как netstat показывает "Установленное" состояние соединения.

То же самое происходит с командой ncat public-ip 10000, используйте ее как клиент.

Когда я выйду сКоманда telnet с ^] and quit, тогда telnet не может соединиться с сервером (Ошибка: соединение отклонено удаленным хостом).Если я убью команду ncat -4 -l 10000 и перезапущу снова, то соединение с клиентом (telnet) будет установлено, и сервер получит только 4-5 пакетов.

Я перепроверил все параметры tcp по этому URL

Может кто-нибудь иметь представление о том, что происходит на стороне сервера и как я могу его отладить?

РЕДАКТИРОВАТЬ: 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 голосов
/ 30 января 2019

Убедитесь, что 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 могут отличаться.

...