Hur man ställer in och konfigurerar TCP/IP-filer på Linux (TCP/IP-inställningar för Linux)

Även icke-nördar har förmodligen hört talas om " TCP/IP " men vet alla vad det är eller hur man konfigurerar det på en Linux -server med hjälp av kommandoraden(using the command line) ?

Det hjälper att definiera grundläggande terminologi först. Åtminstone låter det dig utveckla ett ramverk som du kan bygga din förståelse på. TCP/IP är inget undantag. 

Detta avsnitt om terminologi är inte en uttömmande lista. Det kommer att ge dig en grund för att börja din resa till att förstå nätverk och hur du konfigurerar TCP/IP filer på Linux

The *Nix World

Har du någonsin undrat vad *nix betyder? Hur är det med hur Unix och Linux är relaterade(Unix and Linux are related) (för att inte tala om alla de olika versionerna av varje)?

*nix är en metod för att referera till Linux och/eller Unix (eller någon distribution) med hjälp av ett jokertecken (stjärnan) för att göra det. 

* Nix utvecklades i slutet av 1960-talet. AT& T Bell Labs utvecklade Unix ungefär samtidigt. genom olika iterationer och utvecklingar föddes även Linux .

Resultatet av dessa parallella innovationer är att när du väl lär dig hur du utför installationer på en server via kommandoraden, har du lärt dig en färdighet som troligen är kompatibel med många andra uppgifter på en mängd olika Unix- eller Linux- servrar. 

Man Pages – information till hands(Man Pages – Information at Your Fingertips)

Precis som Google har Linux sin egen uppsättning sök- och forskningsverktyg som gör det möjligt för användare att hitta de resurser de behöver. Dessa resurser är kända som "man-sidor". När du är inloggad på en Linux -server (eller Linux- baserat operativsystem) kan du öppna kommandoradsapplikationen och skriva in det du vill undersöka, som att skriva in en sökterm i en interaktiv dokumentationsfil.

Om du väljer ett ämne du vill undersöka, som ett Linux- verktyg, verktyg, demon, skript(daemon, script) , kan du slå upp det genom att skriva "man" och sedan ordet. Du kommer att lära dig hur du gör detta senare i den här artikeln.

Man-sidor är lätta att använda. Börja bara(Just) skriva ett par ord och Linux OS kommer att börja returnera informationen till dig. Om det inte finns någon man-sida för ett visst ämne kommer Linux att berätta det.

För det mesta är man-sidorna någorlunda korrekta för den programvaruversion de visas på. Till exempel, om du är inloggad på en Linux -server som är 10 år gammal, visar man-sidan information om den versionen (och åldern).

Man-sidor är lätta att använda och exakta, men det finns ett par varningar. Låt oss illustrera dessa varningar via bilder. 

I bilden nedan indikerar man-sidan för ARP att ARP är föråldrat (under avsnittet "anteckningar") och att man istället bör slå upp ip neigh . Det verkar, med den notationen, som att man kanske vill skriva " man ip neigh " för att få tillgång till information om ersättningsverktyget/-protokollet. 

Men att skriva " man ip neigh " letar inte upp man-sidan för "ip neigh". Istället kommer den att slå upp två man-sidor... en för "ip" och den andra för "neigh". 

Även om det är sant att du kommer att få en man-sida om du skriver "man ip neigh", såvida du inte är mycket uppmärksam, kan du missa att det faktiskt inte är vad du letade efter. 

Du kan lägga till ett streck (även om det inte är det som visas på man-sidan när du hänvisar till ersättningsverktyget)... Så om du lägger till ett streck och skriver "man ip-neigh" fungerar det också bra men det är inte korrekt antingen.

Du kan prova att skriva " man ip-neighbour " (observera den brittiska stavningen). När du skriver den specifika frasen kommer du att se rätt man-sida för att ersätta ARP- man-sidan (eller ersätta ARP- protokollet). Summan av kardemumman är denna: Om du inte hittar det du behöver, försök att använda olika kombinationer tills du får önskad man-sida.

Försök som ett exempel att leta upp man-sidan för verktyget nslookup. Du gör detta genom att skriva "man nslookup". När du gör det kommer du att se en man-sida som liknar bilden/skärmdumpen nedan. Du kommer att lära dig allt du vill veta om verktyget nslookup.

Efter att man-sidan dyker upp på din skärm kan du rulla ner, läsa, tillämpa, testa och till och med stänga man-sidan (genom att skriva bokstaven "q" och låta man-sidan stängas automatiskt).

Om du begär en man-sida som inte finns, kommer Linux att ge dig feedback om att det inte finns någon post för den man-sidan och att prova en annan.

IPv4 och IPv6(IPv4 and IPv6)

Både IPv4 och IPv6 är tekniskt sett samma, men de ser inte likadana ut för oss människor. De är ett sätt att identifiera maskiner eller enheter på ett lokalt nätverk ( LAN ). De är privata på det sättet att de identifierar enheterna i LAN .

IPv4 använder siffror separerade med punkter/punkter. De flesta av oss är bekanta med den typ av IP-adresser vi ser för datorer som är anslutna till våra privata nätverk med IPv4 -formatet.

Datorer i ett nätverk har också en IPv6- adress, men den ser annorlunda ut. IPv6 består av alfanumeriska tecken separerade med kolon ( : ). 

Så vad är skillnaderna mellan IPv4 och IPv6 ? Se(Think) det som ett nätverksnamn. Det ena är som förnamnet och det andra är efternamnet. Båda namnen pekar på samma person (eller i det här fallet en dator). Precis som vi i allmänhet har ett annat förnamn jämfört med vårt efternamn, kommer IPv4 " namnet" att skilja sig från IPv6 " namnet" även om de båda pekar på samma maskin.

Carla Schroeder har skrivit en lättläst och användbar artikel om IPv4 och IPv6(useful article about IPv4 and IPv6) .

Root Access på en Linux-server (och su och sudo)(Root Access on a Linux Server (and su and sudo))

För många av de uppgifter som behöver slutföras krävs root-åtkomst (alias administratör eller superanvändare). Det beror på att många av dessa verktyg och appar är tillräckligt känsliga för att de är begränsade av säkerhetsskäl. 

En alternativ lösning för att logga in som root eller utlösa superanvändaråtkomst (su) är att lägga till ett kommando med "sudo" som talar om för Linux -maskinen att just det kommandot måste köras som superanvändare/root, men att efterföljande kommandon inte gör det (om inte också föregås av "sudo"-direktivet). 

I fall där "sudo" används och föregås av kommandot, kommer Linux att begära su-lösenordet för att autentisera superanvändaridentiteten och behörigheterna.

Nätverksprotokoll(Networking Protocols)

det finns många olika protokoll att tänka på när man diskuterar Linux . De två protokoll som är primära för den här artikeln är TCP och IP.

Transmission Control Protocol (TCP)

Transmission Control Protocol , oftare kallat TCP , är ett protokoll som används för överföring av paket, precis som namnet beskriver.

Se nedan för en förklaring av olika verktyg, inklusive Linux- verktyget som heter Traffic Control (tc). 

TCP styr Linux- operativsystemet om hur paket ska flyttas från en plats till en annan. Den kontrollerar också nätverkstrafik och styr överföringen av informationspaket (som mappar med data som flyttas från en plats till en annan). 

Det är därför protokollet kallas  Transmission Control Protocol (TCP). 

Internetprotokoll (IP)(Internet Protocol (IP))

Internetprotokoll(Internet Protocol) hänvisas vanligtvis till med sin akronym, IP.

När det gäller IP har du ett större område ( Internet ) för att överföra paket. Det är som att ha en bredare, längre och mer färdad supermotorväg... kallad internet. Medan TCP kontrollerar överföringen av paket över ett nätverk, kontrollerar IP överföringen av paket över internet.

ICMP-protokoll(ICMP Protocol)

ICMP står för Internet Control Messaging Protocol . Även om det är ett protokoll som är tillgängligt i de flesta Linux- distributioner, kanske det inte är tillgängligt på alla Linux- distributioner. Detta bevisades av bristen på en man - sida i en aktuell Centos- installation.

Vid första anblicken kanske det inte verkar som att just detta protokoll är så viktigt men i verkligheten är det det. ICMP ansvarar för att tillhandahålla felmeddelanden om/när ett paket inte når sin destination korrekt. ICMP är väsentligt för att ta emot statusuppdateringar om leveransen (eller mottagandet) av de informationspaket som överförs.

User Diagram Protocol (UDP)

User Diagram Protocol ( UDP ), liksom Transmission Control Protocol ( TCP ), är ett protokoll för överföring av informationspaket från en punkt till en annan. I fallet med TCP , som en del av processen/överföringen, finns det en verifiering av framgångsrik leverans av paketet/paketen, vilket gör det mer tillförlitligt än UDP .

När det gäller UDP finns det ingen verifieringsprocess så att du inte vet om paketen överfördes eller togs emot framgångsrikt och utan fel. Som sådant är det ett tillräckligt enkelt protokoll att använda men det är inte verifierbart eller kan autentiseras. 

Linux-konfiguration(Linux Configuration)

Det finns flera konfigurationsfiler tillgängliga i operativsystemet  Linux .

Till exempel, om du kör en Apache -server på din Linux -maskin, är Apache - konfigurationsfilerna viktiga. Dessa filer låter Apache -webbservern veta vad som händer med domänen och mer specifikt webbplatsen som finns på den servern.

Ibland är konfigurationsfilen märkt som httpd.conf. Ibland är det märkt som apache.conf. Eller så kan det vara en helt annan etikett/namn. Du kan hitta konfigurationsfilerna på en plats på en server, och andra gånger är de på en helt annan plats på en annan server.

Lyckligtvis finns det användbara kommandon som kan hjälpa till att hitta specifika konfigurationsfiler. Du kan till exempel skriva följande för att hitta konfigurationsfilen " httpd.conf ", om den finns:(httpd.conf)

find / -name “httpd.conf”

Det första ordet, "hitta", låt oss veta(Linux) vilket kommando/verktyg du använder, vilket i det här fallet är verktyget "hit". Den andra komponenten i kommandoraden är "/" som låter sökverktyget veta att det ska söka efter sökvägen från serverns rotnivå.

Om du letade på en mer specifik plats, kan du ha något som "/etc" för att låta Linux veta att starta i etc-katalogen och följa den sökvägen. Genom att tillhandahålla en specifik sökväg/plats kan du potentiellt påskynda processen, eftersom Linux inte behöver söka på platser som är överflödiga.

Alternativet " -name " låter Linux veta vad du letar efter i namnet på filen eller katalogen. Det är bra att inkludera namnet inom citattecken, och du kan även använda en asterisk ( * ) som jokertecken när du söker.

Några exempel på konfigurationsfiler och kataloger i katalogen/sökvägen "/etc" inkluderar: 

  • pam.d – en katalog som innehåller verktyg relaterade till autentiseringsmoduler. "Su" och "sudo" finns där, som ett exempel.
  • sysconfig – en katalog som innehåller funktioner på datorn, som energihantering, mus och mer. 
  • resolv.conf – en fil som hjälper till med domännamnsserverns funktion, om Linux -maskinen används i den egenskapen.
  • tjänster(services) – den här filen innehåller tillgängliga anslutningar (dvs. öppna portar) som är tillgängliga på Linux -maskinen.

Om du undrar om några filer, sökvägar eller verktyg är föråldrade eller föråldrade, använd man-sidorna för att kontrollera. Det här är ett användbart sätt att hålla koll på vad som är aktuellt och vad som har förändrats.

Förstå Linux-filsystemet(Understanding the Linux File System) 

I många Linux-distributioner(Linux distributions) finns konfigurationsfiler i nätverksskriptkatalogen under sökvägen " etc/sysconfig ". Om de inte finns där, är det troligt att det finns en liknande plats/sökväg. Filerna som finns i det här specifika fallet visas i skärmdumpen nedan.

Som du ser i skärmdumpen nedan finns det två konfigurationsfiler. Var och en av dem är märkta enligt sina respektive gränssnitt (dvs. ifcfg-eth0).

Konfigurationsfilerna föregås av " ifcfg " som ersätter ifconfig-kommandot(ifconfig command) (samt blir en del av gränssnittets filnamn). Som sagt, den har nu också bytts ut något eftersom ifcfg inte är kompatibel med IPv6 .

De två gränssnittsreferenserna ( ifcfg-eth0 och ifcfg-lo ) hänvisar till specifika typer av gränssnitt. Linux- utvecklare var hjälpsamma på detta område och gav definition och riktning i form av filnamn. I fallet med gränssnittet som slutar på " eth0 ", är det ett gränssnitt som är anslutet via "ethernet" eller har Ethernet-kapacitet.

Användningen av bokstäverna " eth " pekar dig i rätt riktning. Siffran som följer "eth" anger enhetens nummer. Så nästa Ethernet-enhet kan vara något som " ifcfg-eth1 " och så vidare.

Filnamnet som slutar på "lo" hänvisar till ett "loopback"-gränssnitt. Det hänvisas också till som " lokalvärden(localhost) ." Detta är en nätverksanslutning som tekniskt sett inte är en riktig nätverksanslutning. Det tillåter helt enkelt processer att kommunicera på enheten utan att kommunicera över nätverket. Tänk "virtuellt" när du tänker på just detta gränssnitt.

Alla Linux- distributioner kan ha en loopback (eller localhost) och är vanligtvis inställda för en som standard. De använder ett gränssnitt som slutar på "-lo." IP-adressen för den lokala värden är vanligtvis 127.0.0.1. I många fall kan det virtuella loopback-gränssnittet användas för att testa anslutningar och utesluta andra potentiella nätverksproblem.

Filerna(The Files)

Det finns olika sätt att redigera konfigurationsfiler (samt visa dem). En metod är att använda " vi editor " som nås via kommandot " vi " följt av filnamnet. I det här fallet, när man skriver " vi ifcfg-eth0 " (utan citattecken) kan de se nätverksinformationen för det specifika gränssnittet (eth0).

Det skulle dock vara mer tillrådligt att göra det på traditionellt sätt och följa nätverkskonfigurationsinstruktionerna som finns på man-sidan för ifcfg.

Detta kan också vara lättare för den icke-tekniska personen. Att använda vi-redigeraren kräver lite uppmärksamhet på detaljer, så om du är detaljorienterad (eller om du redan är programmerare eller systemadministratör) kan vi-redigeraren vara en optimal lösning när du arbetar med Linux- konfigurationsfiler.

När vi kommer åt man-sidorna kan vi granska information om ifcfg-skriptet som ersatte ifconfig-skriptet (som visas i skärmdumpen ovan av man-sidan). När vi tittar på listan över gränssnitt i Linux- distributionen märker vi också ifup- och ifdown-kommandona. De kan också granskas på deras man-sida(r).

En skärmdump av man-sidan visas i bilden nedan. Som du kommer att se på man-sidan, finns det ytterligare Linux- konfigurationsfiler (och sökvägarna för att komma till dessa filer) som kan konsulteras (och modifieras) i uppsättningen och konfigurationen av TCP/IP filerna på Linux .

Om du använder en kommandoradstextredigerare som vi-redigeraren för att visa konfigurationsfilen, kommer du att märka några alternativ som är definierade. När du till exempel tittar på nätverksgränssnittet kan du se ord med versaler, följt av ett likhetstecken (=) och sedan ett annat ord. 

Till exempel kan det finnas ett direktiv som är " ONBOOT " och det kan säga " ONBOOT=yes " som ett exempel på ett konfigurationsalternativ. Det finns flera andra konfigurationspunkter och alternativ också. En annan är till exempel NETMASK(NETMASK)

Om du ser konfigurationsdirektivet, " NÄTVERK(NETWORKING) ", bör det följas av ett "ja." Om det följs av "nej" kan det representera ett problem eftersom det skulle indikera att nätverksgränssnittet inte är aktiverat för nätverk. 

Här är en steg-för-steg-process för att korrigera situationen som just beskrivits:

  1. Gör en kopia av konfigurationsfilen för säkerhets skull. Det finns några sätt att göra detta. En av de enklaste är med kommandofönstret.

    Skriv: cp ifcfg-eth0 ifcfg-eth0_20200101 Skriv(cp ifcfg-eth0 ifcfg-eth0_20200101)

    sedan på nästa rad: mv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101

    Detta flyttar filkopian du just gjorde till en katalog som du använder för säkerhetskopiering.
  2. Nu när du har gjort en säkerhetskopia av konfigurationsfilen, är det dags att göra ändringar i den konfigurationsfilen. Om du använder vi-redigeraren skulle du skriva följande:

    vi ifcfg-eth0

    Efter att ha gjort det öppnas filen i terminal-/kommandoprogrammet (liknande hur en man-sida öppnas när du aktiverar den).

    När konfigurationsfilen är öppen, skulle du leta efter raden som innehåller " NETWORKING=no " och ta bort den raden eller ändra den till "NETWORKING=yes". Detta kan göras med " cw” direktiv i vi-redaktören. Genom att skriva ett snedstreck talar du om för vi-redigeraren att du söker efter något. I det här fallet låter du redaktören veta att du söker efter "NETWORKING" och när den hittas (dirigera musen till den platsen) kan du använda högerpilen för att flytta till ordet "no".

    När du kommer till ordet "nej", sluta på "n" och skriv " cw " så att du kan ändra "nej" till "ja." "cw" står för ändra ord och Linux låter dig ändra hela ordet från ett ord ("nej") till ett annat ("ja"). Om du bara vill ändra en bokstav kan du använda ett "r" för att ersätta en bokstav eller ett tecken.

    Skärmbilderna visar denna process nedan.
     
  3. Efter att ha sparat konfigurationsfilen (dvs. skrivit esc för att komma ur INSERT- läget och sedan ett dubbelt Z för att spara filen), är det dags att starta om tjänsten eller datorn. Detta kan göras på flera olika sätt. En metod för att starta om datorn är att skriva följande kommandorad:

    shutdown -r now

    Kommandot shutdown talar om för Linux -maskinen att stänga av. Alternativet -r talar om för kommandot att det inte bara är en avstängning, utan en omstart och att göra det nu.

    Tips:(Tip:) Om du vill veta när datorn eller servern har slutfört omstarten, skriv "ping" och sedan den offentliga IP-adressen för datorn/servern (eller ett domännamn för en webbplats som finns på Linux -servern).

    Genom att använda kommandot ping kommer du att se att servern inte är "pingbar" (vilket händer under omstarten) och sedan när servern startar om kommer pingen att svara med ett positivt svar, vilket indikerar en framgångsrik omstart.

Följande är några bilder som hjälper till att illustrera stegen i listan ovan.

Steg 1:

Steg 2:

Tips:(Tip:) Tänk på att ingenting i servervärlden är singular. Till exempel kan du ändra konfigurationen för ett visst gränssnitt (i det här fallet eth0) men det kan bara vara ett gränssnitt på ett nätverk och kan påverkas av (eller påverka) en annan server.

Så i exemplet ovan, genom att starta om servern, kommer det att utlösa nätverksenheter att också starta om. Detta är inte det enda alternativet för det här gränssnittet men det här gränssnittet skulle påverkas av ett kommando att starta om. 

/etc/hosts File(s)

Filen /etc/hosts kanske existerar eller inte. Om den existerar kan den eventuellt användas i konfigurationen. Till exempel kan du ha ett annat system som hanterar värdkonfigurationer, snarare än att hantera filen direkt. Dessutom varierar själva värdfilen. Till exempel hanterar IPv4 och IPv6 konfigurationen olika, som du kan se på bilden nedan.

Configuration Files; Locations/Paths; Terms; and More

Några ytterligare användbara filnamn och filplatser är:

  • /etc/sysconfig/network-scripts/ (sökväg till konfigurationsfilen)
  • /etc/sysconfig/network-scripts/ifcfg-eth0 (konfigurationsfil)
  • /etc/hosts (konfigurationsfil)
  • /etc/resolv.conf (konfigurationsfil med namnserverinformation)

I många fall skapar system- eller serverprogramvara konfigurationsfilerna automatiskt. Dessutom, om DHCP används, finns det andra aspekter av nätverkskonfigurationen som beräknas direkt, eftersom statiska IP-adresser inte används i det fallet.

Följande kommandoradskommandon (CL) användes (eller används) i de flesta Linux-distributioner. Om de är föråldrade eller föråldrade visas ersättningskommandot.

  • rutt(route) ( obsolete / deprecated ): Användes för att visa och redigera rutter. Ersatt av ip-rutt(ip route) .
  • värdnamn(hostname) : Används för att visa eller amanipulera och redigera maskinens värdnamn. 
  • netstat : Visa nätverksanslutningar, routingtabeller, gränssnittsstatistik, multicast-medlemskap, etc.
  • arp : ( obsolete / deprecated ) Används för att visa IPv4 - information; specifikt nätverkets granncache. IPv6 har blivit nätverksadressen och ersätter IPv4- samlingen med fyra nummer separerade med punkter. I ljuset av dessa ändringar har detta föråldrade kommando ersatts av ip neigh .
  • ip : IP står inte bara för "internet protocol" och det ultimata WAN (wide area network") utan det är också ett verktyg som tillåter systemadministratören eller datoranvändaren att se TCP/IP parametrarna samt ställa in dem som behövs.
  • tc : Detta står för "trafikkontroll" och är ett verktyg som hjälper dig att hantera inkommande och utgående trafik på Linux -maskinen. 

Konfigurationsverktyg: GUI vs. Kommandorad (CL)(Configuration Tools: GUI Vs. Command Line (CL))

För att ge en referenspunkt visar följande tre bilder en mekanism för grafiskt användargränssnitt ( GUI ) för att hantera konfigurationen av nätverk, inklusive TCP/IP

Den första bilden är Apple Mac GUI ( System Preferences > Networking ) och de andra två bilderna är från Windows operativsystem(Windows Operating System) (även om det varierar från version till version). Den nås via Microsofts kontrollpanel(Microsoft Control Panel) och nätverksanslutningar(Network Connections) , som du kan se på skärmbilderna.

För- och nackdelar med GUI kontra textredigerare eller kommandorad (CL)(Pros and Cons of GUI Versus Text Editor or Command Line (CL))

Även om många människor föredrar grafiska användargränssnitt ( GUI ) på grund av deras användarvänlighet, visuella presentation och övergripande enkelhet, är det bra att förstå konfigurationsfiler (i det här fallet relaterade till nätverk) så att du kan felsöka och åtgärda eventuella problem. 

Du kanske vill ta tag i det grafiska användargränssnittet(GUI) först, men det hjälper att vara fullt informerad ... för säkerhets skull. Det finns också vissa operativsystem som inte nödvändigtvis har ett GUI (eller inte har ett ännu) så igen; det är bra att vara förberedd.

I nästa avsnitt kommer vi att täcka konfigurationsfiler och hur man kommer åt dem, uppdaterar dem, samt hantering av filer och verktyg.

Linux Command-line (CL)-verktyg, verktyg, skript och demoner(Linux Command-Line (CL) Tools, Utilities, Scripts, and Daemons)

Det finns många verktyg som är tillgängliga för Linux- distributioner. Återigen(Again) , liksom andra kommandon finns det likheter (och skillnader) mellan hur dessa verktyg används i de olika distributionerna. I vissa fall finns verktyg tillgängliga men måste installeras först, och installationsprocessen varierar ofta.

Kommandoradsverktyget hänvisas ofta till som skal(shell) och i början terminal . Det finns andra termer för det men generellt sett är det ett program som låter användaren komma åt operativsystem genom att skriva kommandon i ett fönster.

Låt oss titta på ett par exempel. Den första är från Windows -operativsystemet och ser troligen bekant ut för Windows -användare. Verktyget öppnas genom att skriva CMD (som visas i skärmbilderna nedan). 

Den andra skärmdumpen är en applikation som heter Terminal som är förinstallerad på de flesta Apple -datorer.

NSLookup (nslookup)

I fallet med nslookup står ns för namnserver(nameserver) och uppslagsdelen(lookup) av kommandot är en "uppslagning" av information. Så vad namnet på det här verktyget säger oss är att det kommer att leta upp information som är allmänt tillgänglig via en namnserver.

NSLookup är ett praktiskt verktyg. I det här fallet använder vi det för att söka information om eBay. För att göra det skriver vi "nslookup ebay.com" och vi får information som liknar det som visas i bilden nedan.

Kommandot visas överst på skärmdumpen (efter den suddiga privata informationen). Sedan visas utdata från den begäran ( nslookup ) nedan, med information som Server (den offentliga IP-adressen), den specifika IP-adressen(IP address) , etc. 

Trafikkontroll (tc)(Traffic Control (tc))

Ett annat verktyg är verktyget "Trafikkontroll" (även kallat "tc"). Det är ett verktyg som tillåter schemaläggning och bearbetning av datapaket. 

Kommandot talar om hur(how) paketen rör sig över ett nätverk. Den hur(how) -aspekten inkluderar svaren på frågor som timing, hastighet, enheter och mer. Här är en kommandorad (CL) representation av användningen av Traffic Control (tc):

Även om det kan se ut som "snackor" för vissa, representerar varje ord på kommandoraden något viktigt. Här är listan:

  • tc : Detta är verktyget, i det här fallet "Traffic Control" (alias "tc"). Detta talar om för kommandoradsapplikationen/mjukvaran vilket Linux- verktyg som ska användas.
  • qdisc : Denna förkortning står för ködisciplin(queuing discipline) och är ett annat sätt att beskriva en enkel schemaläggare.
  • add : Eftersom vi bygger en konfiguration (ja, tekniskt sett en fil), talar vi om för verktyget att vi lägger(adding) till kontrollerna.
  • dev eth0 : "dev" hänvisar till "enhet", som låter verktyget veta att vi är på väg att definiera enheten. "eth0", i det här fallet, är referensen till enheten. Du kommer att märka att detta liknar det som visas i ett grafiskt användargränssnitt ( GUI ) för en enhetsetikett.
  • root : Detta talar om för verktyget att vi modifierar den utgående trafiken från rotnivån, eller utgående trafik.
  • netem : Detta ord representerar frasen "nätverksemulator". Även om det kanske inte är hårdvarunätverket, emulerar det detsamma. Detta liknar hur Parallels -programvaran emulerar Windows -programvaran för Apple -datorer. Visst, det är en helt annan mjukvara men är emuleringsprogram på samma sätt som netem emulerar ett nätverk. I det här fallet representerar netem ett WAN (wide-area-network) i motsats till ett LAN (local-area-network). 
  • delay : Det här ordet talar om för tc-verktyget att vi ändrar "delay"-komponenten i transaktionen.
  • 400ms : Vi har redan sagt till verktyget att vi påverkar fördröjningen, men nu måste vi definiera hur mycket vi påverkar fördröjningen. I det här fallet är det 400 millisekunder. 

Nätverks chef(Network Manager)

Syftet med nätverkshanteraren(Network Manager) är att förenkla och automatisera din nätverkskonfiguration. För DHCP- användare kan nätverkshanteraren(Network Manager) erhålla en IP-adress, ersätta standardrutter och automatiskt byta ut namnservrar.

nmtui-verktyget för att använda din nätverkshanterare är(Manager) tillgängligt i de flesta, men inte alla, Linux- distributioner. Tänk också på att vissa verktyg är "tillgängliga" och ändå inte tillgängliga. Det finns med andra ord några verktyg och demoner som behöver installeras och som inte nödvändigtvis är förinstallerade på Linux- distributionen i fråga.

Andra nätverksämnen(Other Networking Topics)

Det finns många aspekter av nätverk och TCP/IP som är särskilt fascinerande, särskilt när det handlar om en Linux- distribution. Glöm(Don) inte att du har manuella sidor (alias man-sidor) tillgängliga direkt i Linux- installationen. Så även om detta kan tyckas vara en sorts orelaterade lista över vad du inte bör göra, kan du alltid använda en man-sida för att ta reda på vad du ska göra.

Linux som router(Linux as the Router)

Nuförtiden använder de flesta människor hårdvara som är dedikerad till uppgiften att dirigera (dvs. router) för att hantera nätverksruttuppgiften(manage the network route task) .

Många gånger beror det på att routrar är en del av paketet med hem- eller kontorsinternetpaket/-kontrakt. Kunden ertappas vanligtvis med att betala en hyra/leasingavgift per månad (eller årligen) eller behöva köpa routern. 

Hur det än hanteras, finns det lite behov för Linux att fungera som en router även om den kan fungera som en. Scenarierna som beskrivs ovan skapar en nästan pseudo-fasad situation för Linux , men det betyder inte att Linux är helt ute ur spelet. Det är möjligt att ställa in en Linux -server som hårdvaru- (och efterföljande mjukvara) router om du behöver.

IP Route (tidigare "Route")(IP Route (Formerly “Route”))

Följande bild visar en skärmdump av man-sidan för "Route" och de direktiv som är möjliga med det verktyget. 

SNORT – Ett system för upptäckt av inkräktare(SNORT – An Intruder Detection System)

Snort Software är ett (Snort Software)intrångsdetektionssystem(Intrusion Detection System) med öppen källkod ( IDS ) som ursprungligen utvecklades av Martin Roesch och sedan dess förvärvats av Cisco Systems(Martin Roesch and since acquired by Cisco Systems) . Det fungerar på grundval av regler som använder nätverkets TCP/IPAtt definiera dessa regler identifierar intrång för att skydda ett nätverk.

How to Set Up Linux > TCP/IP Settings for Linux

Följande minihandledningar hjälper dig med några vanliga uppgifter som du kan stöta på i Linux -världen. 

Tänk på att tiderna ändras snabbt, så det är bra att använda dina man-sidor och sökningar i Google för att verifiera följande steg och se till att det inte finns några andra verktyg som kan göra jobbet bättre. När den här artikeln skrevs är det inte fallet.

Handledning 01: Tilldela en statisk IP-adress till en Linux-maskin(Tutorial 01: Assigning a Static IP Address to a Linux Machine)

Den första frågan du bör ställa är om datorn/servern behöver en statisk IP-adress (en som inte ändras) eller en föränderlig IP-adress (som DHCP – Dynamic Host Configuration Protocol ). Om detta är din persondator (inte en server), är chansen stor att du använder DHCP för din åtkomst till internet.

Vad det betyder är att du inte behöver bråka med att tilldela en statisk IP-adress till din dator. Din internetleverantör ( ISP ) och all hårdvara som tillhandahålls/hyrs beräknar automatiskt en IP-adress i farten för att du ska kunna ansluta till internet. Med andra ord, om du inte behöver en statisk IP-adress, är en dynamiskt föränderlig en bra för din icke-serverdator.

Om du har en server och du behöver att den ska vara tillgänglig för andra (dvs utanför ditt hem; ett WAN/internet ; icke-LAN) behöver du en statisk IP-adress så att antingen domänen du använder mappas till den via värdnamnservern som tilldelats domänen, eller tillgänglig direkt via den statiska IP-adressen.

Om ingen behöver komma åt din dator eller server utanför ditt hem, så är en ändrad IP-adress (dynamisk; icke-statisk) bara bra, eftersom ingen använder en statisk IP-adress.

Obs: Vissa personer har använt en DHCP IP- adress för allmän åtkomst (ja, även som server) men,

  1. Det kräver en väldigt tekniskt sinnad person för att göra det, så det är inte lika vanligt.
  2. Det är mycket svårare att underhålla (på grund av dess ständigt föränderliga karaktär) än en statisk IP-adress.

Om du behöver en statisk IP-adress, fortsätt och följ stegen här. Om inte kan du hoppa över det här avsnittet.

Som du kommer att se inkluderar kommandot (visat ovan) "sudo" i början av raden. Även om det är möjligt att använda kommandot "su" (superanvändare) och logga in som superanvändare, kör användningen av "sudo" bara det ena kommandot som superanvändare.

Den andra metoden, att logga in som superanvändare, gör att alla uppgifter kan slutföras som superanvändare, vilket gör det bekvämare att göra det som behöver göras.

Men tillsammans med det följer en säkerhetsrisk, varför det är säkrare att helt enkelt starta kommandot med sudo och låta appen begära ett lösenord (efter behov) för att slutföra kommandot som superanvändare för den uppgiften/kommandot.

Valet är ditt och bör baseras på vilken metod som är lättare. Filen som representeras av skärmdumpen nedan nås via följande kommando:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

Innan du använder det kommandot verifieras nätverksenhetsnumret ( eth0 ) för att säkerställa att det är korrekt. Som du minns hanteras Linux- konfigurationerna i filen för gränssnittet så det är viktigt att gränssnittsnumret verifieras från den filen innan konfigurationsfilen redigeras.

En annan aspekt av konfigurationsfilen att lägga märke till är användningen av ordet "statisk." Eftersom vi lägger till en statisk IP-adress är det viktigt att låta konfigurationsfilen veta att så är fallet. 

Anteckningarna lades till i skärmdumpen nedan av illustrativa skäl, men bör inte inkluderas i din konfigurationsfil. Dessutom krävs citattecken i vissa Linux- distributioner. (Linux)I just den här konfigurationsfilen fanns inga citattecken i den automatiskt skapade konfigurationsfilen så att trenden fortsatte och inga citattecken lades till.

Följande skärmdump visar hur filen faktiskt skulle se ut, med anteckningarna och extra mellanslag borttagna.

Nästa (och sista) konfigurationsfil som ska redigeras nås genom att skriva:

sudo vi /etc/resolv.conf

Inom den filen kan namnservrarna läggas till (eller modifieras). Dessa namnservrar bör matcha den andra konfigurationsfilen som just modifierades. I det här fallet, på /etc/sysconfig/network-scripts/ifcfg-eth0 (skärmdumpen ovan).

Ordspråket som kommer att användas är "namnserver." Så där enhetens konfigurationsfil visar DNS1=8.8.8.8 , bör resolv.conf-filen visa namnserver 8.8.8.8(nameserver 8.8.8.8) .

Motsvarigheten till DNS2=4.4.4.4 skulle visas som namnserver 4.4.4.4(nameserver 4.4.4.4 ) i filen resolv.conf.

Löst uttryckt fungerar stegen ovan på Red Hat Linux- distributionen, men det finns ingen garanti för att det kommer att fungera i framtiden, med de teknikförändringar som sker. Det är därför konfigurationer bör testas och verifieras.

När konfigurationerna har slutförts, starta om nätverksgränssnittet med den föredragna metoden som beskrivs ovan. Detta kommer att tillämpa ändringarna. Det är också användbart om den statiska IP-adressen testas. Du kan göra detta genom att försöka ansluta till den offentliga statiska IP-adressen från en annan enhet (helst på ett annat nätverk).

Du kan också ringa en vän eller partner och få dem att försöka ansluta till den statiska IP-adressen från en annan geografisk plats (och ett annat nätverk).

Handledning 02: Nätverks-IP-aliasing(Tutorial 02: Network IP Aliasing)

Det är möjligt att tilldela mer än en IP-adress till ett nätverkskort ( NIC ). Detta kallas Network IP Aliasing eftersom endast en IP skulle vara en faktisk, så de ytterligare IP-adresserna är alias till samma kort. För att tilldela IP-adressen, använd din favoritmetod för att tilldela IP-adressen enligt beskrivningen i handledning 01.

Det är inte så att det måste vara statiskt, men för att ha flera IP-adresser tilldelade med Network IP Aliasing måste man tilldela IP-adresser med en statisk IP.

Handledning 03: Ändra Linux-maskinens värdnamn(Tutorial 03: Change Host Name of the Linux Machine)

Använd följande steg för att ändra värdnamnet på din Linux -maskin med din föredragna redigerare:

1. Ändra värdnamnskonfigurationsfilen genom att skriva följande i kommandoradsappen:

   sudo vi /etc/hostname

Varhelst du ser det gamla värdnamnet i den konfigurationsfilen, ersätt det med det nya värdnamnet.

2. Ändra värdkonfigurationsfilen genom att skriva följande i kommandoradsappen:

   sudo vi /etc/hosts

Varhelst du ser det gamla värdnamnet i den filen, ersätt det med det nyligen valda/utsedda värdnamnet på samma sätt som du gjorde med värdnamnskonfigurationsfilen(hostname) i steg ett ovan.

3. Starta om servern eller Linux -datorn. En metod för att göra detta (beroende på din Linux -distro) är att skriva följande i kommandoradsappen:

   sudo shutdown –r now

Denna omstart krävs för att ändringarna ska träda i kraft.

Handledning 04: Aktivera och inaktivera ditt nätverkskort(Tutorial 04: Enable and Disable Your NIC)

En av de mer fascinerande sakerna som du kan göra via kommandoraden i Linux är att aktivera eller inaktivera din Ethernet- anslutning.

För att göra detta, skriv in lämpligt kommando från dessa två:

   sudo ip link setup
   sudo ip link setdown

Med äldre versioner av Linux kan du köra ifconfigup eller ifconfigdown, men det är möjligt att dessa kommandon är föråldrade eller föråldrade i nyare Linux- distributioner. I så fall är det nyare ip-kommandot att föredra.

Handledning 05: Aktivera nätverksvidarebefordran(Tutorial 05: Enable Network Forwarding)

Ditt Linux- operativsystem kan ansluta en mängd olika nätverk och kan fungera som en router. Allt du behöver göra är uncomment the net.ipv4.ip_fporward=1 line som gör att du kan vidarebefordra IP-adressen.

Den nödvändiga konfigurationsfilen lagras normalt på /etc/sysctl.conf :

För exempel på hur du ställer in det, ta en titt på " How to enable IP forwarding on Linux (IPv4 / IPv6) ."

Om du konfigurerar en Linux -server med DHCP (istället för en statisk IP-adress) kan du välja en form av vidarebefordran av nätverk. Detta är inte vanligt, men refereras här eftersom det är genomförbart och det representerar ett fall där någon kan vara benägen att göra det.

Handledning 06: Fjärrkommandon via skal(Tutorial 06: Remote Commands Via Shell)

Om du behöver komma åt en Linux -server och den servern inte är geografiskt belägen på samma plats som du, kan du behöva använda fjärrkommandon för att komma åt den fjärranslutna Linux -servern. 

För dem som är programmerare eller systemadministratörer är "fjärrinkoppling" till en server en normal händelse. 

Ett av de mest populära sätten att göra detta är att använda kommandot " ssh ", vilket låter kommandoradsappen veta att du vill komma åt Linux -servern på ett säkert sätt, även om du gör det via en osäker anslutning. 

Förutom att använda kommandot "ssh" måste du ge information om var du ansluter och hur (bland andra tillgängliga alternativ).

Du kan använda ett domännamn för Linux -serveråtkomst eller till och med en offentlig statisk IP-adress. Namnet eller IP-adressen talar om för ssh-kommandot vad den har åtkomst till och var den kan hittas.

Andra alternativ kan inkludera användarnamnet som kommer att användas för att logga in på fjärrservern. Utan det alternativet definierat kan det begäras men det är också ett alternativ att definiera det samtidigt som kommandot ssh.

Till exempel:

   ssh username myserver.com

Lösenordet kan också konfigureras i kommandot men det rekommenderas av säkerhetsskäl att du anger det vid tidpunkten för anslutningen till fjärrservern. 

Varför? Om lösenordet skrivs in i kommandot, i vanlig text, kan det nås av nästa person som använder samma dator och de skulle ha tillgång till lösenordet.

Av ytterligare säkerhetsskäl kanske du vill komma åt Linux -servern via en specifik port. Genom att ange en port som kan användas kan du blockera andra portar och förhindra hackerförsök eller DOS -attacker (denial of service). 

Det finns många olika konfigurationspunkter för ssh. Några av dessa finns listade på shellhacks.com .

Handledning 07: Verktyg för nätverksövervakning(Tutorial 07: Network Monitoring Tools)

En viktig komponent i att hantera ett nätverk är att verifiera att allt fungerar och fortsätter att fungera. Du kan göra detta genom nätverksövervakning. Verktyg som rymmer nätverksövervakning varierar men uppnår i slutändan liknande mål och mål.  

Ett sådant verktyg för nätverksövervakning är Cacti . Cacti   är ett nätverksövervakningsverktyg med öppen källkod. Cacti övervakar nätverket och ger grafiska representationer av vad som har loggats. Detta hjälper användare (särskilt nybörjare) att identifiera var det kan finnas problem.

Användargränssnittet kan ta emot många användare och används ibland av värdtjänster för att visa bandbreddsinformation i realtid och annan data i följande grafer.

Data kan matas in i Cacti via valfritt externt skript eller kommando. Cacti kommer att sammanföra data via ett cron-jobb och fylla din MySQL - databas innan den presenteras som en frontend-användargraf.

För att hantera datainsamling kan du mata kaktusar med sökvägarna till valfritt externt skript/kommando tillsammans med all data som användaren behöver "fylla i". Cacti kommer sedan att samla in dessa data i ett cron-jobb och fylla i en MySQL - databas.

Cacti är ett användbart verktyg för nätverksadministratörer som vill övervaka nätverksanvändning och tillhandahålla lättförståeliga bilder till konsumenter. Cacti kan laddas ner gratis på cacti.net . Webbplatsen innehåller dokumentation för att installera och konfigurera nätverksövervakningsverktyget.

Alternativ till kaktusar(Cacti) du kan prova inkluderar, Solarwinds NPM , PRTG och Nagios . Solarwinds kommer att stödja SNMP såväl som ICMP/Ping , WMI , Netflow , Sflow , Jflow och IPFIX , för att nämna några. De förbyggda mallarna, graferna och varningarna hjälper dig att snabbt börja övervaka ditt nätverk.

PRTG tillhandahåller upp till hundra sensorer gratis. Den har liknande funktioner som Solarwinds , plus flexibla varningar och applikationer för smartphones , surfplattor, ipads.

Nagios har alla verktyg du hittar i Cacti , men kräver lite mer konfiguration. Det finns massor av plugins att välja mellan. Den har ett gediget rykte som ett av de äldsta nätverkshanterings- och övervakningsverktygen. Men du måste smutsa ner händerna i underhållet av dess konfigurationsfiler.



About the author

Jag är en datatekniker med över 10 års erfarenhet, varav 3 år som 店員. Jag har erfarenhet av både Apple och Android-enheter, och är särskilt skicklig på att reparera och uppgradera datorer. Jag tycker också om att titta på film på min dator och använda min iPhone för att ta bilder och filma.



Related posts