Błąd internetu

Błąd ERR_SYN_REPLY_NOT_RECEIVED – przyczyny i naprawa

Mateusz Sobociński
Autor: Mateusz Sobociński - CEO & Red. Nacz. @ asMAX
17 min. czytania
  1. Czym jest błąd ERRSYNREPLYNOTRECEIVED?
  2. Przyczyny wystąpienia błędu
  3. Rozwiązania dla użytkowników końcowych
  4. Rozwiązania dla webmasterów i deweloperów
  5. Zaawansowana diagnostyka
  6. Prewencja i najlepsze praktyki

Czym jest błąd ERRSYNREPLYNOTRECEIVED? {#wprowadzenie}

Definicja techniczna

Błąd ERRSYNREPLYNOTRECEIVED to problem komunikacji na poziomie protokołu TCP/IP, który występuje podczas nawiązywania połączenia między przeglądarką a serwerem. Jest to specyficzny błąd przeglądarki Google Chrome (oraz innych przeglądarek opartych na Chromium).

Proces „Three-Way Handshake”

Aby zrozumieć problem, należy poznać podstawy nawiązywania połączenia TCP:

  1. SYN (Synchronize) – Klient wysyła pakiet SYN do serwera
  2. SYN-ACK (Synchronize-Acknowledge) – Serwer odpowiada pakietem SYN-ACK
  3. ACK (Acknowledge) – Klient potwierdza otrzymanie odpowiedzi

Błąd występuje, gdy

  • Klient wysyła pakiet SYN
  • Serwer NIE odpowiada pakietem SYN-ACK w określonym czasie
  • Połączenie kończy się niepowodzeniem

Komunikaty towarzyszące

Użytkownik może zobaczyć:

  • „Ta strona nie działa”
  • „ERRSYNREPLYNOTRECEIVED”
  • „Nie można połączyć się z serwerem”

Przyczyny wystąpienia błędu {#przyczyny}

1. Problemy sieciowe

Po stronie klienta:

  • Niestabilne połączenie internetowe
  • Problemy z routerem lub modemem
  • Błędna konfiguracja DNS
  • Problemy z ISP (dostawcą internetu)

Po stronie serwera:

  • Przeciążony serwer
  • Problemy z konfiguracją firewalla
  • Ograniczenia przepustowości
  • Problemy z load balancerem

2. Blokady i filtry

  • Firewall systemowy – zbyt restrykcyjne reguły
  • Oprogramowanie antywirusowe – blokowanie połączeń
  • Corporate firewall – polityki bezpieczeństwa w firmie
  • ISP filtering – blokowanie przez dostawcę internetu

3. Problemy konfiguracyjne

  • Nieprawidłowe ustawienia proxy
  • Konflikt między VPN a lokalną siecią
  • Błędna konfiguracja MTU (Maximum Transmission Unit)
  • Problemy z IPv6

4. Problemy z przeglądarką

  • Uszkodzona pamięć cache
  • Konflikt rozszerzeń
  • Przestarzała wersja przeglądarki
  • Błędy w profilu użytkownika

5. Problemy serwerowe

  • Niewłaściwa konfiguracja TCP
  • Limity połączeń
  • Problemy z SSL/TLS
  • Błędy w konfiguracji serwera WWW

Rozwiązania dla użytkowników końcowych {#dla-uzytkownikow}

Rozwiązanie 1 – Podstawowe sprawdzenia

Krok 1 – Sprawdź połączenie internetowe

1. Otwórz inną stronę internetową (np. google.com) 2. Jeśli inne strony działają – problem jest specyficzny dla danej witryny 3. Jeśli żadna strona nie działa – problem z twoim połączeniem 

Krok 2 – Restart urządzeń

1. Zamknij przeglądarkę całkowicie 2. Zrestartuj router/modem: - Odłącz zasilanie na 30 sekund - Podłącz ponownie - Poczekaj 2-3 minuty na pełne uruchomienie 3. Zrestartuj komputer 

Rozwiązanie 2 – Czyszczenie cache i cookies

Google Chrome:

1. Naciśnij Ctrl + Shift + Delete (Windows) lub Cmd + Shift + Delete (Mac) 2. Wybierz zakres czasu: "Cały czas" 3. Zaznacz: ☑ Pliki cookie i inne dane witryn ☑ Obrazy i pliki w pamięci podręcznej 4. Kliknij "Wyczyść dane" 5. Zrestartuj przeglądarkę 

Mozilla Firefox:

1. Naciśnij Ctrl + Shift + Delete 2. Zakres czasu: "Wszystko" 3. Zaznacz odpowiednie opcje 4. Kliknij "Wyczyść teraz" 

Microsoft Edge:

1. Naciśnij Ctrl + Shift + Delete 2. Wybierz "Cały czas" 3. Zaznacz cache i cookies 4. Kliknij "Wyczyść teraz" 

Rozwiązanie 3 – Wyłączenie rozszerzeń

Metoda A – Tryb incognito

1. Otwórz Chrome 2. Naciśnij Ctrl + Shift + N (tryb incognito) 3. Spróbuj otworzyć problematyczną stronę 4. Jeśli działa – problem z rozszerzeniem 

Metoda B – Ręczne wyłączanie

1. Wpisz w pasek adresu: chrome://extensions/ 2. Wyłącz wszystkie rozszerzenia 3. Włączaj po kolei, testując każde 4. Zidentyfikuj problematyczne rozszerzenie 

Najczęściej problematyczne rozszerzenia

  • AdBlockery (AdBlock, uBlock Origin)
  • VPN extensions
  • Proxy switchers
  • Security/Privacy tools

Rozwiązanie 4 – Zmiana DNS

Windows 10/11:

1. Naciśnij Win + R 2. Wpisz: ncpa.cpl i naciśnij Enter 3. Kliknij prawym na aktywne połączenie 4. Wybierz "Właściwości" 5. Zaznacz "Protokół internetowy w wersji 4 (TCP/IPv4)" 6. Kliknij "Właściwości" 7. Wybierz "Użyj następujących adresów serwerów DNS:" Preferowany serwer DNS: 8.8.8.8 Alternatywny serwer DNS: 8.8.4.4 (lub Cloudflare: 1.1.1.1 i 1.0.0.1) 8. Kliknij OK 9. Zrestartuj komputer 

macOS:

1. Otwórz Preferencje Systemowe 2. Kliknij "Sieć" 3. Wybierz aktywne połączenie 4. Kliknij "Zaawansowane" 5. Zakładka DNS 6. Kliknij + i dodaj: 8.8.8.8 8.8.4.4 7. Kliknij OK, następnie Zastosuj 

Linux:

# Edytuj plik resolv.conf sudo nano /etc/resolv.conf # Dodaj: nameserver 8.8.8.8 nameserver 8.8.4.4 # Zapisz i wyjdź (Ctrl + X, Y, Enter) 

Rozwiązanie 5 – Flush DNS i reset połączeń sieciowych

Windows:

# Otwórz Wiersz polecenia jako Administrator # Flush DNS ipconfig /flushdns # Odnowienie IP ipconfig /release ipconfig /renew # Reset Winsock netsh winsock reset # Reset TCP/IP netsh int ip reset # Zrestartuj komputer 

macOS:

# Flush DNS sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder # Odnowienie DHCP sudo ipconfig set en0 DHCP 

Linux:

# Flush DNS (Ubuntu/Debian) sudo systemd-resolve --flush-caches # Restart network manager sudo systemctl restart NetworkManager 

Rozwiązanie 6 – Wyłączenie antywirusa/firewalla (tymczasowo)

⚠️ UWAGA – Wykonuj tylko w celach testowych i na własne ryzyko

Windows Defender:

1. Otwórz "Zabezpieczenia Windows" 2. Przejdź do "Zapora i ochrona sieci" 3. Kliknij na aktywną sieć 4. Wyłącz "Zaporę Windows Defender" (tymczasowo) 5. Przetestuj połączenie 6. WŁĄCZ ponownie firewall 

Inne oprogramowanie antywirusowe:

  • Poszukaj ikony w zasobniku systemowym
  • Kliknij prawym przyciskiem
  • Wybierz opcję tymczasowego wyłączenia (np. na 10 minut)

Rozwiązanie 7 – Wyłączenie proxy

Windows:

1. Naciśnij Win + R 2. Wpisz: inetcpl.cpl 3. Zakładka "Połączenia" 4. Kliknij "Ustawienia sieci LAN" 5. Odznacz "Użyj serwera proxy dla sieci LAN" 6. Kliknij OK 

Chrome (niezależnie od systemu):

1. Otwórz chrome://settings/ 2. Wpisz "proxy" w wyszukiwarkę 3. Kliknij "Otwórz ustawienia serwera proxy komputera" 4. Wyłącz wszystkie ustawienia proxy 

Rozwiązanie 8 – Zmiana MTU

⚠️ Dla zaawansowanych użytkowników

Windows:

# Sprawdź obecne MTU netsh interface ipv4 show subinterfaces # Ustaw MTU na 1400 (testowo) netsh interface ipv4 set subinterface "Nazwa połączenia" mtu=1400 store=persistent # Typowe nazwy: "Ethernet", "Wi-Fi", "Połączenie lokalne" 

Przykład:

netsh interface ipv4 set subinterface "Wi-Fi" mtu=1400 store=persistent 

Rozwiązanie 9 – Aktualizacja przeglądarki

Chrome:

1. Otwórz chrome://settings/help 2. Przeglądarka sprawdzi aktualizacje automatycznie 3. Jeśli dostępna - zainstaluj 4. Zrestartuj przeglądarkę 

Rozwiązanie 10 – Reset ustawień przeglądarki

Chrome – pełny reset:

1. Otwórz chrome://settings/reset 2. Kliknij "Przywróć ustawienia do ich pierwotnych wartości domyślnych" 3. Kliknij "Resetuj ustawienia" 4. Zrestartuj przeglądarkę 

⚠️ Uwaga – Utraci się zapisane hasła (jeśli niesynchronizowane), rozszerzenia i ustawienia

Rozwiązania dla webmasterów i deweloperów {#dla-deweloperow}

Diagnostyka po stronie serwera

Krok 1 – Weryfikacja dostępności serwera

# Sprawdź czy serwer odpowiada ping twojadomena.pl # Sprawdź routing traceroute twojadomena.pl # Linux/Mac tracert twojadomena.pl # Windows # Test połączenia TCP telnet twojadomena.pl 80 telnet twojadomena.pl 443 # Alternatywnie (nc - netcat) nc -zv twojadomena.pl 80 nc -zv twojadomena.pl 443 

Krok 2 – Analiza logów serwera

Apache

# Logi błędów tail -f /var/log/apache2/error.log # Logi dostępów tail -f /var/log/apache2/access.log # Wyszukiwanie SYN-related issues grep -i "syn" /var/log/apache2/error.log 

Nginx –

# Logi błędów tail -f /var/log/nginx/error.log # Logi dostępów tail -f /var/log/nginx/access.log 

Analiza połączeń

# Sprawdź aktywne połączenia netstat -an | grep :80 netstat -an | grep :443 # Statystyki TCP netstat -s | grep -i syn # Alternatywnie (ss) ss -tan state syn-sent ss -tan state syn-recv 

Rozwiązanie 1 – Optymalizacja ustawień TCP na serwerze

Linux – sysctl configuration

Plik: /etc/sysctl.conf

# Backup oryginalnego pliku sudo cp /etc/sysctl.conf /etc/sysctl.conf.backup # Edytuj plik sudo nano /etc/sysctl.conf 

Dodaj/zmodyfikuj następujące parametry

# Zwiększ backlog kolejki SYN net.ipv4.tcp_max_syn_backlog = 8192 # Zwiększ maksymalną liczbę połączeń w kolejce net.core.somaxconn = 4096 # Szybsza recyrkulacja połączeń TIME-WAIT net.ipv4.tcp_tw_reuse = 1 # Timeout dla SYN-ACK retransmission net.ipv4.tcp_synack_retries = 2 # Timeout dla SYN retransmission net.ipv4.tcp_syn_retries = 2 # Ochrona przed SYN flood net.ipv4.tcp_syncookies = 1 # Zwiększ bufory TCP net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # Timeout nieaktywnych połączeń net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_intvl = 60 net.ipv4.tcp_keepalive_probes = 3 # Wyłącz TCP timestamps (opcjonalnie, jeśli występują problemy) # net.ipv4.tcp_timestamps = 0 

Zastosuj zmiany –

sudo sysctl -p 

Weryfikacja

sysctl net.ipv4.tcp_max_syn_backlog sysctl net.core.somaxconn 

Rozwiązanie 2 – Konfiguracja Firewall

iptables (Linux)

Sprawdź obecne reguły –

sudo iptables -L -n -v sudo iptables -L -n -v -t nat 

Podstawowa konfiguracja firewall

# Zaakceptuj ustanowione połączenia sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Zezwól na HTTP sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # Zezwól na HTTPS sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # Ochrona przed SYN flood sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT # Rate limiting dla nowych połączeń sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 15 -j DROP # Zapisz reguły sudo iptables-save > /etc/iptables/rules.v4 

UFW (Ubuntu/Debian)

# Sprawdź status sudo ufw status verbose # Zezwól na HTTP/HTTPS sudo ufw allow 80/tcp sudo ufw allow 443/tcp # Rate limiting sudo ufw limit 80/tcp sudo ufw limit 443/tcp # Włącz firewall sudo ufw enable 

firewalld (CentOS/RHEL)

# Status sudo firewall-cmd --state # Dodaj serwisy sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # Przeładuj sudo firewall-cmd --reload # Sprawdź sudo firewall-cmd --list-all 

Rozwiązanie 3 – Konfiguracja Apache

Plik: /etc/apache2/apache2.conf lub /etc/httpd/conf/httpd.conf

# Zwiększ limit timeout Timeout 300 # Zwiększ KeepAlive KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 # MPM Prefork/Worker - zwiększ limity <IfModule mpm_prefork_module> StartServers 10 MinSpareServers 10 MaxSpareServers 20 MaxRequestWorkers 256 MaxConnectionsPerChild 10000 </IfModule> <IfModule mpm_worker_module> StartServers 4 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 10000 </IfModule> # Zwiększ backlog (wymaga modułu mpm) ListenBackLog 511 

Włącz moduły

sudo a2enmod mpm_event # lub mpm_worker sudo a2enmod http2 sudo systemctl restart apache2 

Rozwiązanie 4 – Konfiguracja Nginx

Plik: /etc/nginx/nginx.conf

user www-data; worker_processes auto; worker_rlimit_nofile 65535; events { worker_connections 4096; use epoll; multi_accept on; } http { # Podstawowe ustawienia sendfile on; tcp_nopush on; tcp_nodelay on; # Timeouts keepalive_timeout 65; keepalive_requests 100; client_body_timeout 60; client_header_timeout 60; send_timeout 60; # Bufory client_body_buffer_size 128k; client_max_body_size 20m; client_header_buffer_size 1k; large_client_header_buffers 4 8k; # Rate limiting limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; limit_conn_zone $binary_remote_addr zone=addr:10m; # Backlog listen 80 backlog=4096; listen 443 ssl backlog=4096; # Rate limiting w server block server { listen 80; server_name twojadomena.pl; limit_req zone=one burst=20 nodelay; limit_conn addr 10; # Reszta konfiguracji... } } 

Zastosuj zmiany

# Test konfiguracji sudo nginx -t # Przeładuj sudo systemctl reload nginx 

Rozwiązanie 5 – Konfiguracja SSL/TLS

Certbot (Let’s Encrypt)

# Instalacja sudo apt update sudo apt install certbot python3-certbot-nginx # Dla Nginx sudo certbot --nginx -d twojadomena.pl -d www.twojadomena.pl # Dla Apache sudo certbot --apache -d twojadomena.pl -d www.twojadomena.pl # Test odnowienia sudo certbot renew --dry-run 

Optymalizacja SSL w Nginx

server { listen 443 ssl http2; server_name twojadomena.pl; # Certyfikaty ssl_certificate /etc/letsencrypt/live/twojadomena.pl/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/twojadomena.pl/privkey.pem; # Protokoły i szyfry ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; # Session cache ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_session_tickets off; # OCSP Stapling ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/twojadomena.pl/chain.pem; # DH parameters ssl_dhparam /etc/ssl/certs/dhparam.pem; } 

Generowanie dhparam –

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 

Rozwiązanie 6 – Load Balancer i Reverse Proxy

Nginx jako Reverse Proxy

upstream backend { least_conn; server 192.168.1.10:8080 max_fails=3 fail_timeout=30s; server 192.168.1.11:8080 max_fails=3 fail_timeout=30s; server 192.168.1.12:8080 max_fails=3 fail_timeout=30s backup; keepalive 32; } server { listen 80; server_name twojadomena.pl; location / { proxy_pass http://backend; # Headers proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; # Buffers proxy_buffering on; proxy_buffer_size 4k; proxy_buffers 8 4k; # Keep-alive proxy_http_version 1.1; proxy_set_header Connection ""; } } 

Rozwiązanie 7 – CDN i Cache

Cloudflare Configuration

1. Dodaj domenę do Cloudflare

1. Zarejestruj się na cloudflare.com 2. Dodaj swoją domenę 3. Zmień nameservery u rejestratora 

2. Ustawienia optymalizacji –

Speed → Optimization

  • ✅ Auto Minify (HTML, CSS, JS)
  • ✅ Brotli
  • ✅ Early Hints
  • ✅ HTTP/2 to Origin
  • ✅ HTTP/3 (with QUIC)

Speed → Caching –

Caching Level: Standard Browser Cache TTL: 4 hours (lub więcej) 

Firewall

Security Level: Medium Challenge Passage: 30 minutes Browser Integrity Check: On 

Page Rules – przykład –

URL: twojadomena.pl/statyczne/* Settings: - Cache Level: Cache Everything - Edge Cache TTL: 1 month - Browser Cache TTL: 1 day 

Varnish Cache

Instalacja

sudo apt update sudo apt install varnish 

Plik: /etc/varnish/default.vcl

vcl 4.0; backend default { .host = "127.0.0.1"; .port = "8080"; .connect_timeout = 600s; .first_byte_timeout = 600s; .between_bytes_timeout = 600s; } sub vcl_recv { # Remove cookies for static files if (req.url ~ "\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$") { unset req.http.Cookie; } # Don't cache admin pages if (req.url ~ "^/admin" || req.url ~ "^/wp-admin") { return (pass); } } sub vcl_backend_response { # Cache for 1 hour by default set beresp.ttl = 1h; # Cache for 1 week for static files if (bereq.url ~ "\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$") { set beresp.ttl = 1w; } } 

Konfiguracja: /etc/default/varnish

DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" 

Zmień port Apache/Nginx na 8080 –

Apache:

sudo nano /etc/apache2/ports.conf # Zmień Listen 80 na Listen 8080 

Restart

sudo systemctl restart varnish sudo systemctl restart apache2 

Rozwiązanie 8 – Monitoring i alerting

Instalacja monitoring stack

Netdata (real-time monitoring) –

# Instalacja bash <(curl -Ss https://my-netdata.io/kickstart.sh) # Dostęp http://twoj-serwer-ip:19999 

Prometheus + Grafana

# Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz tar xvfz prometheus-*.tar.gz cd prometheus-* ./prometheus --config.file=prometheus.yml # Grafana sudo apt-get install -y software-properties-common sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" sudo apt-get update sudo apt-get install grafana sudo systemctl start grafana-server 

Skrypt monitoringu połączeń TCP

Plik: tcp_monitor.sh

#!/bin/bash LOGFILE="/var/log/tcp_monitor.log" THRESHOLD=1000 while true; do TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') # Liczba połączeń SYN_RECV SYN_RECV=$(netstat -an | grep SYN_RECV | wc -l) # Liczba połączeń ESTABLISHED ESTABLISHED=$(netstat -an | grep ESTABLISHED | wc -l) # Liczba połączeń TIME_WAIT TIME_WAIT=$(netstat -an | grep TIME_WAIT | wc -l) echo "$TIMESTAMP - SYN_RECV: $SYN_RECV, ESTABLISHED: $ESTABLISHED, TIME_WAIT: $TIME_WAIT" >> $LOGFILE # Alert jeśli SYN_RECV przekracza threshold if [ $SYN_RECV -gt $THRESHOLD ]; then echo "ALERT: High SYN_RECV count: $SYN_RECV" | mail -s "TCP Alert" [email protected] fi sleep 60 done 

Uruchom

chmod +x tcp_monitor.sh nohup ./tcp_monitor.sh & 

Rozwiązanie 9 – DDoS Protection

Fail2ban

Instalacja –

sudo apt update sudo apt install fail2ban 

Konfiguracja: /etc/fail2ban/jail.local

„`ini [DEFAULT] bantime = 3600 findtime = 600 maxretry = 5 destemail = admin

Podziel się artykułem
CEO & Red. Nacz. @ asMAX
Obserwuj:
Ex-redaktor w GW (Technologie) i ex-PR w koreańskim start-upie technologicznym. Absolwent Imperial College Business School (MBA) i Politechniki Warszawskiej. Od 2025 CEO i redaktor naczelny w asMAX.
Brak komentarzy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *