Hosts-fil i Linux. Linux-värdfil Linux-värdfil

Jag vill berätta om ett något icke-standardiserat sätt med vilket du kan öppna webbplatser i en webbläsare med korta namn. Till exempel, istället för att skriva "yandex.ru" i din webbläsare, kan du helt enkelt skriva en bokstav "y". Filen /etc/hosts hjälper oss med detta.

Fil /etc/hosts

/etc/hosts-filen anger överensstämmelse mellan IP-adressen och värdnamnet (värdnamn, domän), såväl som deras alias (även kallade synonymer, alias). När du kommer åt en adress på nätverket, till exempel http://yandex.ru, för att komma åt webbplatsen, måste systemet först konvertera webbplatsadressen till dess motsvarande IP-adress; för detta begär systemet IP-adressen från DNS-server. Om filen /etc/hosts innehåller en korrespondens mellan yandex.ru och en IP-adress kommer systemet att använda just denna IP-adress. Och eftersom vi också kan ange ett alias i filen /etc/hosts, genom vilket en specifik IP-adress kommer att vara tillgänglig, kan vi ange till exempel aliaset "y" för yandex.ru. Följaktligen, när du begär "y" i din webbläsare, kommer systemet att läsa IP-adressen i filen /etc/hosts och öppna webbplatsen yandex.ru. Det vill säga, /etc/hosts är en slags lokal DNS-server.

Hur man tar reda på IP-adressen för en webbplats

Nu måste vi bestämma IP-adresserna för de webbplatser som vi vill lägga till i /etc/hosts. Det är värt att notera att inte alla sajter har en separat dedikerad IP-adress och det är omöjligt att komma åt dem endast via IP-adress. Men nästan alla stora sajter och portaler har sin egen dedikerade IP-adress. Ett enkelt sätt att ta reda på IP-adressen för en webbplats är att använda kommandot ping:

Pinga site-address.ru

Låt oss till exempel göra:

ping yandex.ru

Pingprocessen kommer att visas på skärmen (för att avbryta, tryck Ctrl+C). Så vi kommer att få utdata från ping-kommandot så här:

PING yandex.ru (87.250.250.11) 56(84) byte med data. 64 byte från yandex.ru (87.250.250.11): icmp_seq=1 ttl=57 tid=3,57 ms ...

Här kan du se att yandex.ru motsvarar IP-adressen 87.250.250.11. Vi gör samma sak för andra webbplatser.

Redigera filen /etc/hosts

Du måste redigera filen /etc/hosts noggrant för att inte förstöra någonting, eftersom detta systemfil och det är viktigt att inte bryta dess syntax. Öppna filen för redigering, kör in för att göra detta kommandorad:

Sudo gedit /etc/hosts

Innehållet i filen ser ut ungefär så här:

127.0.0.1 localhost::1 mycomp localhost6.localdomain6 localhost6 127.0.1.1 mycomp # Följande rader är önskvärda för IPv6-kompatibla värdar::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ...

Syntaxen för filen /etc/hosts är mycket enkel:

IP-adress värdnamn [alias, ...]

Låt oss lägga till nya rader i filen för olika webbplatser:

74.125.232.19 google.ru g 94.100.191.203 mail.ru m 194.186.36.211 rbc.ru r 87.250.250.11 yandex.ru y

Spara och stäng filen. Vi har skrivit överensstämmelse mellan IP-adresser, webbplatsnamn och deras alias. Gå nu till din webbläsare och adressfält Ange bara "g" och webbplatsen google.ru bör öppnas. För att öppna mail.ru, skriv bara "m", för rbc.ru - helt enkelt "r", yandex.ru - "y".

Författare Shekin Läsning 6 min Publicerad den 21 juli 2015

En föga känd funktion som heter " hosts-filen” kan användas för att modifiera ditt system beroende på dina behov. Huruvida du behöver för att skapa förkortningar för att blockera webbplatser eller något annat, allt detta kan göras med hjälp av värdar fil.
Men hur kan jag göra ändringar i den? Här kommer vi att berätta hur och ge några exempel, så att du kan börja använda filen just nu.

Vad är hosts-filen?
Om vi ​​pratar på vanligt språk är hosts-filen en enkel textfil som kan användas på vilken som helst operativ system för att översätta värdnamn till IP-adresser. När du skriver ett värdnamn – till exempel facebook.com eller webbplats – kommer ditt system att kontrollera hosts-filen för att få IP-adressen, som krävs för att ansluta till lämplig server. Men om du öppnar den här filen på din dator kommer du snabbt att upptäcka att det inte finns lagrad en katalog över alla webbplatser på Internet. Det kan bara vara några rader och inget mer. Ditt system kontrollerar alltid hosts-filen först, och allt som inte anges i den, kommer att hittas på DNS-servrarna som konfigurerats i dina nätverksinställningar (vanligtvis en server från din internetleverantör).

Men det betyder också att du kan använda Hosts-filen för att lägga till adresser som inte kan tillhandahållas DNS servrar (det kan till exempel vara alias för olika platser på ditt hemnätverk som annars bara skulle vara tillgängliga om det lokala nätverket är installerat och konfigurerat din egen DNS-server), eller för att kringgå IP-adresserna som tillhandahålls av dina DNS-servrar som standard.

Till exempel, om du ber din webbläsare att öppna facebook.com DNS servern kommer att returnera Facebooks IP-adress på din dator. Men om du plötsligt vill blockera Facebook på din dator kan du lägga till en fil i värddatorn som pekar på din dator att alla förfrågningar om facebook.com måste omdirigera till någon annan IP-adress som skiljer sig från Facebooks verkliga IP-adress. För att blockera detta sociala nätverk, kan du helt enkelt registrera en överföring av förfrågningar facebook.com IP-adressen 127.0.0.1 , som alltid kommer tillbaka till ditt system. Du kan göra mycket med den här filen, och det här är bara ett väldigt enkelt exempel – allt beror på dina önskemål och behov.

Varning : kom ihåg, värdar detta är en systemfil, redigera det bara om du vet vad du gör det!

Hur man redigerar hosts-fil
I Linux Mint du kan hitta hosts-filen i /etc/hosts. Eftersom detta är en vanlig textfil kan du bara använda en vanlig textredigerare (oavsett om det är terminal eller grafisk). Tyvärr finns det bara ett grafiskt verktyg som ger partiell kontroll över värdfilen är applikationen Domänblockerare för Linux Mint.

Det här programmet fungerar genom att lägga till poster i din hosts-fil som omdirigerar dina angivna domäner till 127.0.0.1 – det vill säga på din dator. Hur som helst, det är allt du kan göra med Domänblockerare– all annan användning av hosts-filen kräver att du manuellt redigerar filen med en textredigerare.

Som värdar är det en systemfil, du behöver administrativa rättigheter för att spara ändringar i filen. Du kan dock redigera den med terminalkommandon som t.ex

sudo nano /etc/hosts

sudo gedit /etc/hosts

Du kan också byta ut nano eller gedit på kommandot för att starta din favorittextredigerare. När du är klar med att redigera filen i nano , du kan trycka Ctrl +X och då y för att bekräfta överskrivningen av förändringar.

Hur förstår man formatet på innehållet i hosts-filen?
I hosts-filen finns varje post på sin egen rad. För syftet med vår artikel kan du använda en mycket enkel syntax - du skriver IP-adressen till vilken du vill omdirigera värdnamnet (domän), sedan tabbtecknet (TAB) och den faktiska domänen. Till exempel, för att blockera Facebook kan du gå in 127.0.0.1-facebook.com var är fliken tangenten på ditt tangentbord. För att vara säker på att den är korrekt inmatad kan du även titta på skärmdumpen och jämföra den med det som finns i din fil.

Värdar – ändra och hantera filen /etc/hosts

Här är ytterligare ett exempel på användning av denna möjlighet. Till exempel, om ditt hemnätverk är datorn (till exempel dess IP-adress är 192.168.100.1) som kör en enkel webbplats som gör något användbart för dig. Du kan ange följande i hosts-filen: 192.168.100.1 –myhomeserver. Om du nu öppnar din webbläsare och bara skriver i adressfältet http://myhomeserver kommer den automatiskt att visa dig innehållet på värden 192.168.100.10. Det är mycket enklare än att ange IP-adressen varje gång.

Potentiella problem
Det enda problemet jag stötte på, var relaterat till arbetet med webbläsaren Chrome. Chrome tenderar att ignorera hosts-filen om du inte gör minst en av två möjliga saker:
– att gå in http:// framför varje adress. Om du till exempel blockerade Facebook via hosts-fil, kommer Chrome att kringgå låset om du bara anger facebook.com i adressfältet. Om du anger http://facebook.com i adressfältet "lyssnar" Chrome-värdfilen och blockerar webbplatsen för detta sociala nätverk.
– inaktivera alternativet " Använd en webbtjänst för att lösa navigeringsfel ” i Chrome-inställningarna, och då behöver du inte skriva http:// före adressen varje gång

Försök!
Hosts är en liten magisk fil som erbjuder flera användbara funktioner. Även om du inte behöver några funktioner som den tillhandahåller (även om du kanske tror), kommer det att vara till stor hjälp för att se hur det fungerar. Om du någon gång hamnar i en situation där du kan använda hosts-filen är du bekant med dem och vet hur du konfigurerar.

Vad finns i din hosts-fil? Finns det några unika fall av sådan användning? Berätta för oss i kommentarerna!

Domain Name System (DNS) används för att avgöra vilken IP som tillhör en viss domän på Internet. När något program behöver komma åt en webbplats med sitt domännamn, skickar operativsystemet en begäran till DNS-servern för att ta reda på vilken IP som ska vidarebefordras paket till. Men detta händer inte alltid. Till exempel, när vi kommer åt localhost-domänen skickas förfrågan alltid till vår lokala dator.

Anledningen till allt hosts-fil. Om du har använt Windows tidigare har du förmodligen redan hört talas om den här filen. Där användes det oftast för att snabbt blockera åtkomst till en resurs. Men dess tillämpning är mycket bredare. I den här artikeln kommer vi att titta på hur man konfigurerar hosts-filen i Linux, samt vilka möjligheter den ger oss.

Innan vi går vidare till själva hosts-filen måste vi förstå hur man letar upp en IP-adress för ett domännamn i Linux. Jag sa att operativsystemet omedelbart skickar en förfrågan till DNS-servern, men det är inte helt sant. Det finns en specifik sökordning enligt vilken den utförs. Denna ordning är inställd i konfigurationsfilen /etc/nsswitch.conf

cat /etc/nsswitch.conf

Här är vi intresserade av värdlinjen. Den listar, i prioritetsordning, de tjänster som används för att hitta en IP-adress för ett domännamn. Filobjektet betyder att du använder filen /etc/hosts, och dns betyder Internetdomännamnstjänsten. Om filer finns före värdar betyder det att först kommer systemet att försöka hitta domänen i /etc/hosts, och först därefter med DNS. Som standard är detta fallet.

Konfigurera hosts-filen i Linux

Filen vi behöver finns i katalogen /etc/. För att öppna den kan du använda vilken som helst textredigerare både på kommandoraden och i grafiskt gränssnitt, du behöver bara öppna den med superanvändarrättigheter. Använd till exempel vim:

sudo vi /etc/hosts

sudo gedit /etc/hosts

Filsyntaxen är ganska enkel. Den innehåller flera rader med domännamn och de IP-adresser som måste användas för dem. Var och en av dem ser ut så här:

ip_adress domän alias

Vanligtvis skapar den första raden en regel för att omdirigera alla förfrågningar till den lokala värddomänen till den lokala IP-adressen - 127.0.0.1:

127.0.0.1 lokal värd

Den här filen innehåller också omdirigeringar för ditt datornamn och IPv6-adresser som standard. Du kan skapa dina egna inställningar för vilken domän som helst. För att göra detta, lägg till en rad i slutet av filen ..0.0.1:

127.0.0.1 webbplats

Observera att endast domänen anges här, utan protokollet. Det finns ingen anledning att ange http- eller https-prefixet, annars fungerar ingenting. Men för underdomänen www måste du skapa en separat post eller skriva den som ett alias. Till exempel:

127.0.0..webbplats

När du nu begär en domän kommer webbplatsen att öppna vår lokala IP. För att återgå åtkomst till den ursprungliga resursen, ta bara bort den tillagda raden. Men du kan använda inte bara en lokal adress, utan också vilken annan som helst. Detta är mycket praktiskt om du precis har registrerat en domän och domänzonen ännu inte har uppdaterats, men du redan vill arbeta med en ny webbplats. Lägg bara till detaljerna i /etc/hosts och arbeta som vanligt.

Slutsatser

I den här korta artikeln tittade vi på hur man gör DNS-inställning via Linux hosts-fil. Som du kan se kan du med dess hjälp blockera åtkomst till oönskade resurser, till exempel som program inte ska ha tillgång till, och även använda det i ditt arbete som webbmaster.

Om författaren

Grundare och administratör av sajten, jag är förtjust i öppen programvara och operationssalen Linux-system. Jag använder för närvarande Ubuntu som mitt huvudoperativsystem. Förutom Linux är jag intresserad av allt som rör informationsteknologi och modern vetenskap.

God eftermiddag kära läsare. Jag publicerar den andra delen. I den aktuella delen ligger huvudvikten på nätverksimplementering i Linux(hur man ställer in ett nätverk i Linux, hur man diagnostiserar ett nätverk i Linux och underhåller nätverksundersystemet i Linux).

Konfigurera TCP/IP i Linux för att fungera på ett Ethernet-nätverk

Att arbeta med nätverksprotokoll TCP/IP i Linux räcker att bara ha loopback-gränssnitt, men om det är nödvändigt att ansluta värdar med varandra, är det naturligtvis nödvändigt att ha ett nätverksgränssnitt, dataöverföringskanaler (till exempel twisted pair), kanske några nätverksutrustning. Det är också nödvändigt att ha installerade sådana (osv.), vanligtvis levererade till. Det är också nödvändigt att ha ett nätverk (till exempel /etc/hosts) och nätverksstöd.

Nätverksinställningar

Låt oss börja förstå Linux-nätverksmekanismer med manuell nätverkskonfiguration, det vill säga med fallet när IP-adress nätverksgränssnitt statisk. Så när du ställer in ett nätverk måste du överväga och konfigurera följande parametrar:

IP-adress- som redan nämnts i den första delen av artikeln - detta är maskinens unika adress, i formatet med fyra decimaltal separerade med punkter. Vanligtvis när man jobbar i lokalt nätverk, valda från privata intervall, till exempel: 192.168.0.1

Subnätmask- även 4 decimaltal som bestämmer vilken del av adressen som hänför sig till nätverks-/subnätadressen och vilken del till värdadressen. En subnätmask är ett nummer som läggs till (i binär form) med en IP-adress för att avgöra vilket subnät adressen tillhör. Till exempel, adressen 192.168.0.2 med masken 255.255.255.0 tillhör subnätet 192.168.0.

Subnätadress- bestäms av subnätmasken. Det finns dock inga subnät för loopback-gränssnitt.

Sändningsadress- adressen som används för att skicka broadcast-paket som kommer att tas emot av alla värdar på subnätet. Vanligtvis är den lika med subnätadressen med ett värdvärde på 255, det vill säga för subnätet 192.168.0 blir sändningen 192.168.0.255, på samma sätt för subnätet 192.168 blir sändningen 192.168.255.255. Det finns ingen broadcastadress för loopback-gränssnitt.

Gateway IP-adress- detta är adressen till maskinen som är standardporten för kommunikation med omvärlden. Det kan finnas flera gateways om datorn är ansluten till flera nätverk samtidigt. Gatewayadressen används inte på isolerade nätverk (ej ansluten till globalt nätverk), eftersom dessa nätverk inte har någonstans att skicka paket utanför nätverket, gäller samma sak för loopback-gränssnitt.

Namnserverns IP-adress (DNS-server)- Adress till servern som konverterar värdnamn till IP-adresser. Vanligtvis tillhandahålls av leverantören.

Nätverksinställningsfiler i Linux (konfigurationsfiler)

För att förstå hur nätverket fungerar i Linux skulle jag definitivt rekommendera att läsa artikeln "". I allmänhet är hela driften av Linux baserad på, vilket föds när operativsystemet startar och producerar dess ättlingar, som i sin tur gör allt nödvändigt arbete, vare sig det är att starta bash eller en demon. Ja, och hela Linux-starten är baserad på, vilket anger hela sekvensen av att starta små verktyg med olika parametrar som sekventiellt startas/stoppas när systemet startar/stoppar. Linux-nätverksundersystemet startar på samma sätt.

Varje Linux-distribution har en något annorlunda nätverksinitieringsmekanism, men jag tror att den allmänna bilden kommer att vara tydlig efter läsning. Om du tittar på startskripten för nätverksundersystemet för någon Linux distribution, hur man konfigurerar nätverkskonfigurationen med hjälp av konfigurationsfiler kommer att bli mer eller mindre tydligt, till exempel i Debian (låt oss ta denna distribution som grund), är ett skript ansvarigt för att initiera nätverket /etc/init.d/nätverk, efter att ha tittat på vilka:

Nätserver:~#cat /etc/init.d/networking #!/bin/sh -e ### BEGIN INIT INFO # Ger: nätverk # Required-Start: mountkernfs $local_fs # Required-Stop: $local_fs # Bör -Start: ifupdown # Bör-Stopp: ifupdown # Standard-Start: S # Standard-Stopp: 0 6 # Kort beskrivning: Höj nätverksgränssnitt. ### END INIT INFO PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" [ -x /sbin/ifup ] || avsluta 0. /lib/lsb/init-functions process_options() ( [ -e /etc/network/options ] || return 0 log_warning_msg "/etc/network/options existerar fortfarande och det kommer att IGNORERAS! Läs README.Debian av netbase." ) check_network_file_systems() ( [ -e /proc/mounts ] || returnera 0 om [ -e /etc/iscsi/iscsi.initramfs ]; sedan log_warning_msg "dekonfigurerar inte nätverksgränssnitt: iSCSI-roten är monterad." exit 0 fi exec 9<&0 < /proc/mounts while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network devices still mounted." exit 0 ;; esac case $FSTYPE in nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs) log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." exit 0 ;; esac done exec 0<&9 9<&- } check_network_swap() { [ -e /proc/swaps ] || return 0 exec 9<&0 < /proc/swaps while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network swap still mounted." exit 0 ;; esac done exec 0<&9 9<&- } case "$1" in start) process_options log_action_begin_msg "Configuring network interfaces" if ifup -a; then log_action_end_msg $? else log_action_end_msg $? fi ;; stop) check_network_file_systems check_network_swap log_action_begin_msg "Deconfiguring network interfaces" if ifdown -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; force-reload|restart) process_options log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces" log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo || true if ifup -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; *) echo "Usage: /etc/init.d/networking {start|stop}" exit 1 ;; esac exit 0

Du kan hitta flera funktioner som kontrollerar närvaron av monterade nätverksfilsystem ( check_network_file_systems(), check_network_swap()), samt kontrollera att det finns några fortfarande oklara konfigurationer /etc/network/options ( fungera process_options()), och längst ner designen fallet "$1" in och i enlighet med den angivna parametern (start/stopp/force-reload|restart eller någon annan) utför vissa åtgärder. Av dessa samma" vissa handlingar", med startargumentet som exempel kan du se att funktionen startas först process_options, sedan skickas frasen till loggen Konfigurera nätverksgränssnitt, och kommandot körs ifup -a. Om du tittar på man ifup , kan du se att detta kommando läser konfigurationen från en fil /etc/network/interfaces och enligt nyckeln -a startar alla gränssnitt som har parametern bil.

Kommandona ifup och ifdown kan användas för att konfigurera (eller, respektive, avkonfigurera) nätverksgränssnitt baserat på gränssnittsdefinitioner i filen /etc/network/interfaces.

-a, --allt
Om det ges till ifup, påverkar alla gränssnitt markerade som auto. Gränssnitt tas upp i den ordning som de definieras i /etc/network/interfaces. Om det ges till ifdown, påverkar alla definierade gränssnitt. Gränssnitt tas ned i den ordning som de för närvarande är listade i tillståndsfilen. Endast gränssnitt definierade i /etc/network/interfaces kommer att tas ner.

ip-server:~# cat /etc/network/interfaces # Den här filen beskriver nätverksgränssnitten som finns tillgängliga på ditt system # och hur du aktiverar dem. För mer information, se gränssnitt(5). # Nätverksgränssnittet för loopback auto lo iface lo inet loopback # Det primära nätverksgränssnittet tillåt-hotplug eth0 iface eth0 inet dhcp tillåt-hotplug eth2 iface eth2 inet statisk adress 192.168.1.1 nätmask 255.255.255.0 gateway 1912.5.16.2156 brod.

I denna konfiguration raderna tillåt-hotplug Och bil- dessa är synonymer och gränssnitt kommer att tas upp på kommando ifup -a. Detta är i själva verket hela driftkedjan för nätverksdelsystemet. På liknande sätt, i andra distributioner: i RedHat och SUSE startas nätverket av ett skript /etc/init.d/network. Efter att ha undersökt det kan du på liknande sätt hitta var nätverkskonfigurationen ligger.

/etc/hosts

Denna fil lagrar en lista IP-adresser Och värdnamn som motsvarar dem (adresser) Filformatet skiljer sig inte från huvudfilen:

Ip-server:~# cat /etc/hosts # ip host.in.domain host 127.0.0.1 localhost 127.0.1.1 ip-server.domain.local ip-server 192.168.1.1 ip-server.domain.local ip-server

Historiskt sett har den här filen använts istället för DNS-tjänsten. För närvarande kan filen också användas istället för DNS-tjänsten, men endast under förutsättning att antalet maskiner i ditt nätverk mäts i enheter, och inte i tiotals eller hundratals, för i det här fallet måste du övervaka korrektheten av denna fil på varje maskin.

/etc/hostname

Denna fil innehåller NetBIOS-värdnamn:

IP-server:~# cat /etc/hostname ip-server

Den här filen lagrar namn och adresser till lokala och andra nätverk. Exempel:

Ip-server:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 hemnätverk 192.168.1.0

När du använder den här filen kan nätverk hanteras med namn. Lägg till exempel inte till en rutt rutt tillägg 192.168.1.12 , A rutt tillägg.

/etc/nsswitch.conf

Filen definierar värdnamnssökningsordning/nätverk är följande rader ansvariga för denna inställning:

För värdar: värdar: filer dns För nätverk: nätverk: filer

Parameter filer anger att de angivna filerna ska användas (/etc/hosts Och /etc/networks respektive), parameter dns anger att använda tjänsten dns.

/etc/host.conf

Filen anger namnupplösningsparametrar för resolvern

IP-server:~# cat /etc/host.conf multi on

Den här filen talar om för resolv-biblioteket att returnera alla giltiga värdadresser som visas i filen /etc/hosts, och inte bara den första.

/etc/resolv.conf

Den här filen definierar parametrarna för mekanismen för att konvertera nätverksnamn till IP-adresser. I enkla termer, definierar DNS-inställningar. Exempel:

Ip-server:~# cat /etc/resolv.conf namnserver 10.0.0.4 namnserver 10.0.0.1 sök domän.local

Första 2 raderna ange DNS-servrar. Den tredje raden anger sökdomänerna. Om namnet inte är ett FQDN-namn när du löser ett namn, kommer denna domän att ersättas med ett "slut". Till exempel, när du kör kommandot ping host, konverteras den pingade adressen till host.domain.local. De återstående parametrarna kan läsas i man resolv.conf. Mycket ofta använder Linux dynamisk generering av denna fil, med den så kallade. program /sbin/resolvconf. Detta program är en mellanhand mellan tjänster som dynamiskt tillhandahåller namnservrar (till exempel DHCP-klient) och tjänster som använder namnserverdata. För att använda en dynamiskt genererad fil /etc/resolv.conf, måste du göra den här filen till en symbolisk länk till /etc/resolvconf/run/resolv.conf. I vissa distributioner kan sökvägen vara annorlunda; detta kommer definitivt att skrivas in man resolveconf.

Nätverkskonfiguration

Efter att ha granskat de viktigaste konfigurationsfilerna kan du titta på . Kommandot har redan nämnts ovan ifup, om ner, men dessa verktyg är inte helt universella; till exempel har RH-distributioner inte dessa kommandon som standard. Dessutom har nya distributioner introducerat ett nytt nätverkshanteringsverktyg på hög nivå – som tillhör iproute-paketet. Jag kommer att dedikera det till honom (iproute-paketet). Och i det aktuella inlägget kommer jag inte att överväga det. Kommandona som beskrivs nedan tillhör .

Så för att vara säker på att kommandot fungerar på vilken Linux-distribution som helst, måste du använda två gamla huvudkommandon. Detta och arp. Det första laget (ansvarig för sätta upp nätverksgränssnitt(ip, mask, gateway), andra () - ruttinställningar, tredje (arp) - arp bordshantering. Jag skulle vilja notera att exekvering av dessa kommandon utan att inaktivera standardsystemV-startskriptet för nätverksundersystemet kommer att göra ändringar endast tills den första omstarten/omstarten av nätverkstjänsten, eftersom om du tänker efter kan du förstå att manuset /etc/init.d/nätverk nästa gång den startar kommer den att läsa om ovanstående konfigurationer och tillämpa de gamla inställningarna. Följaktligen är vägen ut för att permanent ställa in inställningarna antingen genom att ange ifconfig-kommandot med lämpliga parametrar i , eller att manuellt korrigera motsvarande konfigurationer för nätverksgränssnitten.

Även om kommandot körs ifconfig med saknade parametrar(till exempel bara en IP-adress), sedan läggs resten till automatiskt (till exempel läggs en sändningsadress till som standard med en värdadress som slutar på 255 och standardsubnätmasken är 255.255.255.0).

Routing för befintliga gränssnitt i moderna kärnor höjs det alltid automatiskt av kärnan. Eller snarare, direkta rutter till nätverket enligt IP-inställningarna och subnätet som det upphöjda gränssnittet ser ut i bildas automatiskt av kärnan. Gatewayfältet för sådana poster indikerar adressen till utgångsgränssnittet eller *. I äldre versioner av kärnan (jag kan inte berätta kärnnumret från vilket rutter började stiga automatiskt) var det nödvändigt att lägga till rutten manuellt.

Om det finns behov av att organisera din rutter, då måste du använda . Med detta kommando kan du lägga till och ta bort rutter, men återigen, detta kommer bara att hjälpa tills du startar om /etc/init.d/networking (eller ett annat skript som ansvarar för nätverket i din distribution). För att rutter ska läggas till automatiskt måste du, på samma sätt som med kommandot ifconfig, lägga till kommandon för att lägga till rutter till rc.local, eller manuellt korrigera motsvarande nätverksgränssnittskonfigurationer (till exempel i Deb - /etc/network/options).

Med vilka regler rutter till nätverk bildas, Jag är i

Linux nätverksdiagnostik

Det finns ett stort antal nätverksdiagnostikverktyg i Linux, som ofta liknar verktyg från Microsoft. Jag kommer att titta på tre huvudsakliga nätverksdiagnostikverktyg, utan vilka det kommer att vara svårt att identifiera problem.

Jag tror att det här verktyget är bekant för nästan alla. Detta verktyg fungerar med sändning så kallade ICMP-paket till fjärrservern, som kommer att specificeras i kommandoparametrarna, returnerar servern de skickade kommandona, och pingräknar tiden krävs för att det skickade paketet ska nå servern och returnera. Till exempel:

# ping ya.ru PING ya.ru (87.250.251.3) 56(84) databyte. 64 byte från www.yandex.ru (87.250.251.3): icmp_seq=1 ttl=57 time=42,7 ms 64 byte från www.yandex.ru (87.250.251.3): icmp_seq=2 ttl=57 time=43.2 ms från www.yandex.ru (87.250.251.3): icmp_seq=3 ttl=57 time=42,5 ms 64 byte från www.yandex.ru (87.250.251.3): icmp_seq=4 ttl=57 time=42,5 ms 64 bytes .yandex.ru (87.250.251.3): icmp_seq=5 ttl=57 time=41,9 ms ^C --- ya.ru pingstatistik --- 5 paket överförda, 5 mottagna, 0 % paketförlust, tid 4012ms rtt min/ avg/max/mdev = 41,922/42,588/43,255/0,500 ms

Som framgår av exemplet ovan, ping ger oss en massa användbar information. För det första, det fick vi reda på vi kan upprätta en anslutning med värden ya.ru(ibland säger de att "ya.ru-värden är tillgänglig för oss"). För det andra, vi ser det DNS fungerar korrekt, eftersom det "pingade" namnet konverterades korrekt till en IP-adress (PING ya.ru (87.250.251.3)). Ytterligare, i fält icmp_seq= numrering av skickade paket anges. Varje skickat paket tilldelas sekventiellt ett nummer, och om det finns "dippningar" i denna numrering kommer detta att berätta för oss att anslutningen till den "pingade" är instabil och kan också innebära att servern som paketen skickas till är överbelastad . Efter värde tid= vi ser, hur länge reste paketet till 87.250.251.3 och tillbaka. Du kan stoppa pingverktyget genom att trycka på Ctrl+C.

Också, pingverktyg Det är intressant eftersom det kan låta dig se exakt var problemen uppstod. Låt oss säga pingverktyg visar ett meddelande nätverk inte tillgängligt (nätverk inte tillgängligt), eller annat liknande meddelande. Detta indikerar troligen att ditt system är felaktigt konfigurerat. I det här fallet kan du skicka paket till leverantörens IP-adress för att förstå var problemet uppstår (mellan den lokala datorn eller "vidare"). Om du är ansluten till Internet via en router kan du skicka paket via dess IP. Följaktligen, om problemet uppstår redan i detta skede, indikerar detta felaktig konfiguration av det lokala systemet, eller skada på kabeln; om routern återkallas, men leverantörens server inte är det, är problemet i leverantörens kommunikationskanal, etc. . Slutligen, om konverteringen av namn till IP misslyckas, kan du kontrollera IP-anslutningen; om svaren kommer korrekt kan du gissa att problemet ligger i DNS.

Det bör noteras att detta verktyg inte alltid är ett tillförlitligt diagnostiskt verktyg. Fjärrservern kan blockera svar på ICMP-förfrågningar.

traceroute

Enkelt uttryckt kallas kommandot ruttspårning. Som namnet antyder kommer detta verktyg att visa vilken väg paketen tog för att nå värden. traceroute verktyg något liknande ping, men visar mer intressant information. Exempel:

# traceroute ya.ru traceroute till ya.ru (213.180.204.3), 30 hops max, 60 byte paket 1 243-083-free.kubtelecom.ru (213.132.83.243) 6.408 ms 6.306 ms 6.306 ms 6.306 ms 6.306 ms 6.306 m .kubtelecom.ru (213.132.64.65) 2.761 ms 5.787 ms 5.777 ms 3 lgw.kubtelecom.ru (213.132.75.54) 5.713 ms 5.701 ms 5.636 ms .4Kub.net .186.6.177) 81.430 ms 81.581 ms 81.687 ms 5 cat26.Moscow.gldn.net (194.186.10.118) 47.789 ms 47.888 ms 48.011 ms 6 213.33.201.230 (321.230 (320) 321 .s . 83 ms 41. 106 ms 7 carmine-red-vlan602.yandex.net (87.250. 242.206) 41.199 ms 42.578 ms 42.610 ms 8 www.yandex.ru (213.180.204.3) 43.185 ms 42.126 ms 42.679 ms

Som du kan se kan du spåra rutten från leverantörens router 243-083-free.kubtelecom.ru (213.132.83.243) (södra Ryssland) till slutvärden på www.yandex.ru (213.180.204.3) i Moskva .

gräv

Det här verktyget skickar frågor till DNS-servrar och returnerar information om den angivna domänen. Exempel:

# dig @ns.kuban.ru roboti.ru ;<<>> DiG 9.3.6-P1<<>> @ns.kuban.ru roboti.ru ; (1 server hittades);; globala alternativ: printcmd ;; Fick svar: ;; ->>HUVUD<<- opcode: QUERY, status: NOERROR, id: 64412 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;roboti.ru. IN A ;; ANSWER SECTION: roboti.ru. 448 IN A 72.52.4.90 ;; AUTHORITY SECTION: roboti.ru. 345448 IN NS ns1.sedoparking.com. roboti.ru. 345448 IN NS ns2.sedoparking.com. ;; Query time: 102 msec ;; SERVER: 62.183.1.244#53(62.183.1.244) ;; WHEN: Thu Feb 17 19:44:59 2011 ;; MSG SIZE rcvd: 94

gräv kommando skickade en förfrågan DNS-server - ns.kuban.ru (@ns.kuban.ru- denna parameter är inte nödvändig att specificera, i detta fall kommer informationskällan om DNS att vara servern från dina systeminställningar) om domännamnet roboti.ru. Som ett resultat fick jag ett svar, som vi kan se i avsnittet SVARAVsnitt information om domänens IP-adresser, i avsnittet MYNDIGHETSAVSNITT information om den s.k auktoritativa DNS-servrar. Den tredje raden nerifrån talar om vilken server som svarade.

Andra diagnostiska verktyg

ping, gräv och andra diagnostiska verktyg med parametrar finns i inlägget.

Ansluter ett nytt nätverkskort

Att ansluta och starta ett nytt nätverkskort kommer ner till några steg:

1. Fysisk anslutning av kortet

3. Se resultatet av om systemet har upptäckt ett nytt nätverkskort:

Låt oss se slutsatsen INNAN du ansluter ett nytt kort:

Server:~# dmesg | grep eth [ 4.720550] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection [ 5.130191] e1000: eth1: e1000_probe: Intel(R) PRO/1000 1000 Network Connection [ 51100 7. vakthund: NIC Link är Upp 1000 Mbps full duplex, flödeskontroll: RX [ 15.681056] e1000: eth0: e1000_watchdog: NIC Link är upp 1000 Mbps full duplex, flödeskontroll: RX

Utdata visar att systemet har 2 nätverkskort eth1 och eth2. Vi ansluter den tredje och tittar på utgången:

Server:~# dmesg | grep eth [ 4.720513] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Nätverksanslutning [ 5.132029] e1000: eth1: e1000_probe: Intel(R) PRO/1000 1000 1000 5 Nätverksanslutning [ 46004.0e] e: Intel(R ) Pro/1000 Nätverksanslutning [39.274875] udev: Omdöpt nätverksgränssnitt Eth2 till Eth3 [39.287661] UDEV: Omdöpt nätverk IntH1_RENAME_REN TILL ETH2 [45.670744] ETH2 [45.670704] 0 MBPS Full Duplex, Flow Kontroll: RX [ 46.237232] e1000: eth0: e1000_watchdog: NIC Link är upp 1000 Mbps Full Duplex, Flödeskontroll: RX [ 96.977468] e1000: eth3: e1000_watchdog 1 Full Duplex, Mbps Control: NIC00

I dmesg vi ser att ett nytt nätverk har dykt upp - eth3, som egentligen är eth2, men omdöpt av udev-enhetshanteraren till eth3, och eth2 är faktiskt ett omdöpt eth1 (vi kommer att prata om udev i ett separat inlägg). Utseendet på vårt nya nätverk i dmesg berättar att nätverkskortet stöds kärna och korrekt bestämt. Allt som återstår är att ställa in det nya gränssnittet /etc/network/interfaces(Debian) eftersom den här kartan inte initierades av startskriptet /etc/init.d/network. ifconfig ser den här kartan:

Server:~# ifconfig eth3 eth3 Länk encap:Ethernet HWaddr 08:00:27:5f:34:ad inet6 addr: fe80::a00:27ff:fe5f:34ad/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metrisk 1 RX-paket:311847 fel:0 tappade:0 överskridningar:0 ram:0 TX-paket:126 fel:0 tappade:0 överskridanden:0 bärare:0 kollisioner:0 txqueuelen:1000 RX-bytes:104670651 (99,8 MiB) TX-bytes: 16184 (15,8 KiB)

men återigen - det konfigureras inte. Hur man konfigurerar nätverkskortet diskuterades ovan.

Sammanfattning

Jag tror att det var allt för idag. När jag började skriva den här artikeln trodde jag att jag skulle passa in i ett inlägg, men det blev jättestort. Därför beslutades det att dela upp artikeln i två. Sammantaget försökte jag presentera, inte en steg-för-steg-procedur för att sätta upp ett nätverk, utan att beskriva principen och förklara förståelsen för hur nätverket startar och fungerar i Linux. Jag hoppas verkligen att jag lyckades. Jag blir glad över att se dina kommentarer och tillägg. Med tiden kommer jag att lägga till artikeln.

Hur man ändrar och hanterar värdfilen i Linux En föga känd funktion som kallas värdfilen kan användas för att modifiera ditt system beroende på dina behov. Oavsett om du behöver skapa genvägar, blockera webbplatser eller något annat kan du göra allt med hjälp av hosts-filen. Men hur gör du ändringar i den? Här kommer vi att berätta hur och ge dig några användningsexempel så att du kan börja använda filen direkt.Vad är en hosts-fil? Enkelt uttryckt är en hosts-fil en enkel textfil som används i alla operativsystem för översättning värdnamn till IP-adresser. När du skriver värdnamnet - t.ex. facebook.com eller myubuntu.ru- ditt system kommer att kontrollera hosts-filen för att få den IP-adress som krävs för att ansluta till motsvarande server. Men om du öppnar den här filen på din dator kommer du snabbt att upptäcka att den inte innehåller en katalog över alla webbplatser. Det kan bara vara ett par rader och inget mer. Ditt system kommer alltid att kontrollera hosts-filen först, och allt som inte har ställts in där kommer att hittas på DNS-servrarna som konfigurerats i dina nätverksinställningar (vanligtvis de hos din ISP). Men detta betyder också att du kan använda Hosts-filen för att lägga till adresser till den som inte kan tillhandahållas av DNS-servrar (dessa kan till exempel vara alias för olika platser i ditt hemnätverk, som annars bara skulle vara tillgängliga om du har installerat och konfigurerat en egen DNS-server), eller för att kringgå de IP-adresser som tillhandahålls av din standard DNS-servrar, till exempel om du ber din webbläsare att öppna facebook.com, kommer DNS-servrar att returnera Facebooks IP-adress till din dator. Men om du plötsligt vill blockera Facebook på din dator kan du lägga till en post i hosts-filen som kommer att indikera för din dator att alla förfrågningar om facebook.com måste omdirigeras till någon annan IP-adress som skiljer sig från den verkliga Facebook-IP-adressen. För att blockera detta sociala nätverk kan du helt enkelt registrera förfrågningar som ska översättas till facebook.com till IP-adress 127.0.0.1, som alltid kommer tillbaka till ditt system. Du kan göra många saker med den här filen, och detta är bara ett väldigt enkelt exempel - allt beror på dina önskemål och behov Hur man redigerar hosts-filen På Linux-operativsystem kan du hitta hosts-filen i /etc/ värdar. Eftersom detta är en vanlig textfil kan du bara använda en vanlig textredigerare (oavsett om det är terminal eller grafisk). Tyvärr finns det bara ett grafiskt verktyg som tillhandahåller partiell värdfilhantering - applikationen Domain Blocker från Linux Mint. Detta program fungerar genom att lägga till poster i din hosts-fil som omdirigerar de domäner du anger till 127.0.0.1- det vill säga på din dator. Hur som helst, det är allt du kan göra med Domain Blocker - all annan användning av hosts-filen kräver att du manuellt redigerar filen med en textredigerare. Eftersom hosts är en systemfil behöver du administrativa rättigheter för att spara ändringar i den här filen. Du kan dock redigera den med ett terminalkommando som sudo nano /etc/hosts eller gksu gedit /etc/hosts. Du måste använda en terminal så att du kan köra den applikation som krävs med administrativa rättigheter på detta sätt. Du kan också ersätta nano eller gedit med kommandot för att starta din favorittextredigerare. När du är klar med att redigera filen i nano kan du trycka på Ctrl+X och sedan y för att bekräfta att ändringarna skrivs över. Hur förstår du formatet på innehållet i en hosts-fil? I en hosts-fil är varje post för sig själv linje. För den här artikeln kan du använda en mycket enkel syntax - du skriver IP-adressen till vilken du vill vidarebefordra värdnamnet (domänen), sedan ett tabbtecken och själva domänen. Till exempel, för att blockera Facebook kan du gå in 127.0.0.1facebook.com, där trycker du på tabbtangenten på ditt tangentbord. För att vara säker på att inmatningen är korrekt kan du också titta på skärmdumpen och jämföra den med det som finns i din fil. Låt oss ge ett annat exempel på hur du använder den här funktionen. Till exempel, om du har en dator i ditt hemnätverk (låt oss säga dess IP-adress 192.168.1.10), som driver en enkel webbplats som gör något användbart för dig. Du kan ange följande i hosts-filen: 192.168.1.10homeserver. Om du nu öppnar din webbläsare och helt enkelt skriver http://homeserver i adressfältet kommer den automatiskt att visa dig innehållet i värden 192.168.1.10. Det är mycket enklare än att skriva in IP-adressen varje gång Potentiella problem Det enda problemet jag har stött på är med webbläsaren Chrome. Den tenderar att ignorera hosts-filen om du inte gör minst en av två möjliga saker: skriv in http:// före varje adress. Om du till exempel har blockerat Facebook via hosts-filen kommer Chrome att kringgå blockeringen om du bara går in