Am o problemă pe serverul meu Arch Linux (actualizat). Am reușit să-l reproduc cu netcat.
Dacă încep să ascult pe serverul meu cu:
ncat -l -p 2000 -k
și apoi
telnet (ip-ul meu local) 2000
de la o mașină locală, pot vedea conexiunea funcționând în ambele sensuri.
Cu toate acestea, dacă fac telnet de la o mașină de la distanță, conexiunea este stabilită, dar nimic din ce scriu pe server nu apare pe partea de la distanță. Dacă scriu ceva pe partea de la distanță, de îndată ce este apăsat Enter, prima linie apare pe partea serverului, dar apoi conexiunea se întrerupe cu Conexiune închisă de către gazda externă.
.
Am putut confirma că această problemă nu este legată de routerul meu: redirecționarea aceluiași port către o altă mașină Debian, totul funcționează. Acest lucru împiedică nginx și alte servere să funcționeze.
Nu am nicio regulă iptables momentan:
$ iptables --list
INTRARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
Lanț FORWARD (politica ACCEPT)
target prot opt sursă destinație
Ieșire în lanț (politica ACCEPT)
target prot opt sursă destinație
ncat:
# ncat -l -p 2000 -k -v
Ncat: versiunea 7.92 ( https://nmap.org/ncat )
Ncat: Ascultare pe :::2000
Ncat: Ascultare pe 0.0.0.0:2000
Ncat: Conexiune de la (IP public la distanță).
Ncat: Conexiune de la (IP public la distanță):60990.
tcpdump pe mașina locală:
# tcpdump -nnvvS portul 2000
tcpdump: ascultare pe eth0, tip link EN10MB (Ethernet), lungime instantanee 262144 octeți
13:09:46.847867 IP (to 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), lungime 60)
(ip local server).2000 > (ip public la distanță).60990: Flags [S.], cksum 0x5399 (incorect -> 0x8744), seq 1434025023, ack 276028935, win 65160, opțiuni [mss 4342460 val, 4342460, TS 42474, TS ecr 3525397188,nop,wscale 7], lungime 0
13:09:46.870265 IP (to 0x0, ttl 64, id 14989, offset 0, flags [DF], proto TCP (6), lungime 53)
(ip local server).2000 > (ip public la distanță).60990: Flags [P.], cksum 0x5392 (incorect -> 0xa864), seq 1434025024:1434025025, ack 276028935, win 51028935, opțiuni, [no val 510,nop 422478455 ecr 3525397212], lungime 1
13:09:49.931230 IP (to 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), lungime 40)
(ip local server).2000 > (ip public la distanță).60990: Flags [R], cksum 0x94ad (corect), seq 1434025024, câștig 0, lungime 0
tcpdump pe mașina de la distanță:
# tcpdump -nnvvS portul 2000
tcpdump: ascultare pe eth0, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
13:09:46.835291 IP (to 0x10, ttl 64, id 59780, offset 0, flags [DF], proto TCP (6), lungime 60)
(ip public la distanță).60990 > (ip public server).2000: Flags [S], cksum 0xff3a (incorect -> 0x4c94), seq 276028934, win 64240, opțiuni [mss 1460,sackOK,TS val 3528,nocr9 ,wscale 7], lungime 0
13:09:46.858924 IP (to 0x0, ttl 48, id 0, offset 0, flags [DF], proto TCP (6), lungime 60)
(ip public server).2000 > (ip public la distanță).60990: Flags [S.], cksum 0xdbaa (corect), seq 1434025023, ack 276028935, win 65160, opțiuni [mss 1452,sackOK, ecr 8343224, TS val 8343224 nop,wscale 7], lungime 0
13:09:46.858957 IP (to 0x10, ttl 64, id 59781, offset 0, flags [DF], proto TCP (6), lungime 52)
(ip public la distanță).60990 > (ip public server).2000: steaguri [.], cksum 0xff32 (incorect -> 0x06ea), seq 276028935, ack 1434025024, win 502, opțiuni [nop,nop,TS ecr 74312525347431225 ], lungime 0
13:09:49.920045 IP (to 0x10, ttl 64, id 59782, offset 0, flags [DF], proto TCP (6), lungime 58)
(ip public la distanță).60990 > (ip public server).2000: Flags [P.], cksum 0xff38 (incorect -> 0x0603), seq 276028935:276028941, ack 1434025024, win 502,nop TS, opțiuni 3525400273 ecr 422478433], lungime 6
13:09:49.941752 IP (to 0x0, ttl 48, id 0, offset 0, flags [DF], proto TCP (6), lungime 40)
(ip public server).2000 > (ip public la distanță).60990: Flags [R], cksum 0xe90b (corect), seq 1434025024, câștig 0, lungime 0