Cum pot depana rețelele pe Debian (Unix, Debian, Rețea)

dinozaur a intrebat.

Astăzi mi-am repornit boxul linux, iar în urma repornirii, boxul meu linux nu are conexiune la rețea.

Iată ce am încercat până acum:

  1. Folosiți un alt cablu ethernet care funcționează pe celălalt calculator al meu. Nicio schimbare.

  2. În NetworkManager (KDE), eliminați și recreați conexiunea de rețea cu fir. Nu a funcționat. Primesc în continuare notificări de sistem în colțul din dreapta jos al ecranului care spun

    Network Interface
    Connection New Wired Connection failed
    
  3. > sudo /etc/init.d/networking restart Se pare că a repornit cu succes, dar tot nu există nicio conexiune de rețea.
  4. Am verificat /etc/network/interfaces. Singurul cod de acolo este ceea ce spune internetul că ar trebui să fie:

    auto lo
    
    iface lo inet loopback
    
  5. M-am asigurat că nu este doar o problemă de DNS încercând să ping unul dintre serverele DNS publice ale Google.

    $ ping 8.8.8.8
    connect: Network is unreachable
    

    Nu pare a fi o problemă de DNS.

  6. NOU Corectarea rutării. Am folosit route pentru a adăuga un gateway implicit care să arate spre adresa IP a routerului meu (mulțumesc @chaos).

    $ /sbin/route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
    
  7. NOU Vezi dacă am o adresă IP

    $ /sbin/ifconfig -a
    eth0      Link encap:Ethernet  HWaddr 74:d4:35:5f:0b:09  
      inet6 addr: fe80::76d4:35ff:fe5f:b09/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2999 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:1711 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:365026 (356.4 KiB)  TX bytes:0 (0.0 B)
      Interrupt:73 Base address:0xc000 
    
    
    lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:4913 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4913 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:1559718 (1.4 MiB)  TX bytes:1559718 (1.4 MiB)
    

Se pare că am o adresă IPv6, dar nu și o adresă IPv4? M-aș aștepta la eth0 să am o linie care să înceapă cu inet addr:, , dar nu este așa.

Deci, cum obțin o adresă IP?

Iată mai multe informații care pot fi (sau nu) utile:

Informații despre sistem

$ uname -a
Linux mocha 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1 x86_64 GNU_Linux

Controler Ethernet

$ lspci | grep -i eth
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

Ce ar trebui să fac în continuare?

Comentarii

  • Aș încerca să pornesc de pe un CD și să văd dacă se conectează, pentru a mă asigura că de vină este configurația Debian. –  > Por Anthon.
  • Configurația Debian nu este de vină. Îl folosesc de luni de zile cu rețea. Rețeaua s-a stricat doar după o repornire recentă. –  > Por dinosaur.
3 răspunsuri
YoMismo

Aș (toate aceste comenzi ca root) ifconfig -a să verifici dacă interfața are o adresă IP, dacă nu are ai găsit problema, dacă are, atunci aș netstat -rn să verific dacă rutele sunt corecte. Dacă sunt, aș iptables -L să verific dacă există o regulă de firewall care nu mă lasă să ies. Dacă toate sunt în regulă, atunci poate că adresa IP nu aparține rețelei routerului.

Comentarii

  • Ați putea să indicați cum să remediați problemele, de exemplu, dacă interfața nu are o adresă IP sau dacă rutele sunt greșite. –  > Por dinosaur.
  • Dacă nu ai nici un IP poți fie să asiguri unul manual, caz în care ar trebui să cunoști segmentul de rețea în care se află routerul și să folosești un IP liber din acel interval (ifconfig eth0 192.168.1.15/24 înlocuind eth0 pentru interfața dvs. și 192.168.1.15/24 pentru adresa și masca de rețea), dacă doriți să încercați să obțineți un IP de la serverul DCHP dhclient ar trebui să obțină o adresă pentru dvs. Dar ar fi mai bine să specificați ceea ce doriți în /etc/network/interfaces și veți avea conexiunea de rețea funcțională ori de câte ori veți porni mașina. route add comanda vă va permite să setați rutele. –  > Por YoMismo.
  • Ce se întâmplă dacă atribuiți unul manual și tot nu are acces la rețea? (Nu există probleme de cablare, porturile funcționează pe alte sisteme de operare pornite) – -.  > Por Douglas Gaskell.
haos

connect: Network is unreachable indică o rută lipsă către acea rețea (ruta implicită în acest caz).

Utilizați:

route -n

Pentru a afișa tabelul de rutare curent. Trebuie să existe o rută care să arate astfel:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         <gateway-ip>    0.0.0.0         UG    0      0        0 eth0

Observați că, <gateway-ip> este adresa ip a routerului/gateway-ului. Și Iface poate fi, de asemenea, diferită, atunci când aveți mai multe interfețe de rețea în sistem.

Cu toate acestea, adăugați manual ruta implicită cu această comandă:

route add default gw <gateway-ip>

Comentarii

  • Configurația mea nu are rute și când am încercat să adaug o rută implicită, primesc o eroare SIOCADDRT: No such process –  > Por GisMofx.
Julian Garla

Problema aici este că interfața dvs. cablată (eth0) nu nu are o adresă IPv4. Ați adăugat manual o rută IPv4, dar, fără a avea o adresă IPv4, traficul nu poate fi direcționat, deoarece nu poate atribui o adresă IP pentru IP-ul sursă (al sistemului dvs.).

Fără a cunoaște mai multe informații despre mediul dumneavoastră (Folosiți o conexiune DSL? Sunteți într-o rețea corporativă? Cine ar trebui să vă furnizeze o adresă IP)? Aș presupune că înainte de repornire aveți fie o adresă IP configurată static, fie un server DHCP funcțional. Dacă aveați o adresă configurată static (ceea ce nu reiese din configurația dvs.), aceasta a fost pierdută după repornire.

Vedeți o adresă IPv6 pentru că acea adresă este „autoconfigurată”. Din moment ce nu ați configurat-o, interfața cablată doar creează una care poate fi utilizată pentru a comunica cu rețeaua locală.

Din informațiile ifconfig pe care le-ați furnizat se pare că placa de rețea primește pachete Ethernet, dar nu trimite niciunul. De asemenea, în mod ciudat, indică multe pachete pierdute.

Pentru început, v-aș sugera să faceți următoarele:

  1. Obțineți informații despre schema de adresare IP a rețelei dumneavoastră. Întrebați administratorul de rețea sau verificați informațiile furnizate de ISP-ul dumneavoastră. Alternativ, (dacă sunteți îndrăzneț) puteți asculta traficul de rețea din rețea rulând tcpdump -ni eth0 și să încercați să ghiciți adresarea rețelei interne pe baza pachetelor pe care le primește sistemul dvs.

    De acum înainte, să presupunem că rețeaua dvs. se află într-un interval de adrese IP private, deoarece acest lucru este destul de comun. Multe rețele din zilele noastre sunt preconfigurate în intervalul de spațiu 192.168.1.0/24, ceea ce înseamnă că adresele IP încep de la 192.168.1.1 și se termină la 192.168.1.254.

  2. Configurați interfața de rețea cu o adresă IP statică și o poartă de acces utilizând fie Network Manager (adică prin intermediul desktop-ului), fie configurând /etc/network/interfaces în mod corespunzător. Acest lucru este descris pe larg aici, în secțiunea Debian Wiki.

    Notă: Puteți, de asemenea, să o configurați manual rulând ip addr add 192.168.1.15 dev eth0; ip route add default via 192.168.1.1. Dar acest lucru va nu supraviețui unei reporniri a sistemului.

  3. Încercați să vedeți dacă ajungeți la gateway trimițându-i pachete. Acest lucru se poate face simplu, presupunând că gateway-ul dvs. este 192.168.1.1.1, rulând ping -c 10 192.168.1.1. Dacă comanda returnează că toate cele 10 teste au funcționat OK, atunci puteți vedea gateway-ul.

  4. Încercați apoi să accesați o adresă IP publică bine cunoscută. De exemplu, un server DNS Google, efectuând ping -c 10 8.8.8.8. Dacă acest lucru nu funcționează, atunci încercați să efectuați un test de urmărire folosind traceroute -n 8.8.8.8 pentru a vedea unde sunt pierdute pachetele.

  5. În cele din urmă, asigurați-vă că puteți efectua corect rezoluția DNS rulând host www.google.com sau ping -c 10 www.google.com

Dacă totul merge bine până la pasul 5, vă sugerez ca, pentru a diagnostica problemele viitoare, să instalați programul ifupdown-extra pachet. Acesta instalează network-test care efectuează multe dintre testele de rețea enumerate mai sus (și nu numai) pentru a diagnostica dacă există o problemă de rețea sau o configurație greșită.

Odată ce vă puteți conecta folosind o adresă IP statică. Încercați să vă întoarceți cu ceea ce ați avut anterior, care probabil a fost o configurație IP dinamică folosind DHCP.

Pentru a face acest lucru:

  1. Reconfigurați interfața pentru a utiliza o adresă IP dinamică.

  2. Așteptați ca Network Manager să își facă treaba. Veți vedea în mediul Desktop dacă nu reușește (sau nu), dar puteți obține, de asemenea, informații detaliate în jurnalele sistemului. Mai precis /var/log/syslog . Filtrarea pentru jurnalele Network Manager vă va oferi destul de multe informații, doar rulați grep NetworkManager /var/log/syslog și analizați rezultatul.

  3. Rulați network-test pentru a vedea dacă sunteți conectat corect

  4. Dacă nu sunteți conectat la rețea, încercați să solicitați manual o adresă IP rulând dhclient eth0 și vedeți dacă vă oferă o adresă IP.

Pe baza testelor de mai sus, ar trebui să cunoașteți mai bine ce s-a stricat și ce funcționează în rețeaua dumneavoastră și să vă configurați sistemul în consecință.