Translation(s): English – Español – Français – Italiano – Italiano-中文

läsarförutsättningar: för att få ut det mesta av den här artikeln, förstå följande begrepp innan du läser: grundläggande unix kommandoradsverktyg, textredigerare, DNS, TCP/IP, DHCP, netmask, gateway

innehållsförteckning

majoriteten av nätverksinställningarna kan göras via gränssnittskonfigurationsfilen på /ETC/nätverk/gränssnitt., Här kan du ge ditt nätverkskort en IP-adress (eller använda dhcp), ställa in routningsinformation, konfigurera IP-maskering, ställa in standardrutter och mycket mer.

Kom ihåg att lägga till gränssnitt som du vill tog upp vid uppstartstiden till ”auto” – raden.

Se man-gränssnitt för fler alternativ.

start-och Stoppgränssnitt

gränssnitt konfigurerade med/etc/network / interfaces kan tas upp och ner med ifup och ifdown kommandon.,

vissa föråldrade guider instruerar att starta om nätverkstjänsten för att tillämpa ändringar i/etc / nätverk / gränssnitt, men detta var föråldrat eftersom det är möjligt att inte alla gränssnitt startas om. I stället använda ifup och ifdown att tillämpa ändringar i varje gränssnitt, till exempel med ett gränssnitt som heter enp7s0:

# ifdown enp7s0# ifup enp7s0

Nätverksgränssnittsnamn

se NetworkInterfaceNames. Eftersom Stretch, nya system som standard inte längre använda gammaldags gränssnittsnamn som eth0, eth1, wlan0, wlan1., Det nya systemet använder namn baserat på maskinvaruplats, som eno0, enp0s31f6, wlp1s7 (eller när det gäller USB-donglar, MAC-adress: ENX2C56AC39EC0D).

Du kan lista gränssnitt med: ls/sys/class/net

olika exempel nedan fortsätter att använda ”eth0” som standardgränssnitt namn, även om det är osannolikt att det finns på ett modernt system.

uppgradering och Nätverksgränssnittsnamn

Stretch och Buster behåller fortfarande stöd för det gamla namngivningssystemet så länge som filen/etc/udev / rules.d / 70-lokal-ihållande-net.,regler är fortfarande på plats, men användare rekommenderas att byta före uppgraderingen till Bullseye.

använda DHCP för att automatiskt konfigurera gränssnittet

om du bara använder DHCP är allt du behöver något som:

 auto eth0 allow-hotplug eth0 iface eth0 inet dhcp

För DHCPv6 (används för IPv6), lägg även till följande iface stanza

 iface eth0 inet6 dhcp

Alternativt kan IPv6 automatiskt konfigureras med hjälp av statslös adress autoconfiguration, eller slaac, som anges med Auto istället för DHCP i inet6 Stanza:

 iface eth0 inet6 auto

Se även ipv6prefixdelegation.,

konfigurera gränssnittet manuellt

om du konfigurerar det manuellt kommer något sådant att ställa in standardgateway (nätverk, sändning och gateway är valfria):

 auto eth0 iface eth0 inet static address 192.0.2.7/24 gateway 192.0.2.254

om du vill lägga till en IPv6-adress lägger du till något som:

 iface eth0 inet6 static address 2001:db8::c0ca:1eaf/64 gateway 2001:db8::1ead:ed:beef

Se man-gränssnitt för fler alternativ.

se till att inaktivera alla DHCP-tjänster, exempelvis dhcpcd.

blandningsmanual och automatisk konfiguration är också möjlig, t. ex., för att använda IPv6 SLAAC för Internetanslutning och statiska adresser i nätverket:

# manual unique local addressiface eth0 inet6 static address fdc3:cafe::3/64 # use SLAAC to get global IPv6 address from the router # we may not enable ipv6 forwarding, otherwise SLAAC gets disabled autoconf 1 accept_ra 2

ställa in hastighet och duplex

Autonegotiation misslyckas ofta är ett symptom på felaktig kablage, så undersöka fysiska frågor innan man antar att gränssnittets autonegotiation algoritmer är inkompatibla. Om du stänger av autonegotiation och ställer in hastighet och duplex manuellt kommer partnergränssnittet i den andra änden av kabeln att anta att frånvaron av autonegotiation indikerar en hastighet på 10Mbps och en duplex av hälften., För felfri användning om du ställer in hastighet och duplex manuellt måste du se till att exakt samma hastighet och duplex är konfigurerade på partnergränssnittet.

om du ställer in gränssnittets hastighet och duplex för hand kan det krävas en del försök och fel. Här är de grundläggande stegen:

  • Installera ethtool-och net-tools-paketen så att du har ethtool-och mii-verktygsprogrammen. En eller båda av dessa kan fungera för ditt gränssnitt.

  • se till att du har ett sätt att logga in på systemet om nätverksgränssnittet inte fungerar., En ssh-anslutning kan störas, så du borde ha en reservstrategi.

  • identifiera gränssnittet i fråga (det kommer ofta att vara eth0). Justera återstoden av dessa instruktioner i enlighet med detta.
  • försök att bestämma vad dess nuvarande hastighet och duplexinställningar är. Det är här det blir kul:
    • som root, prova ethtool eth0 först och se om ”Speed:” och ”Duplex:” – linjerna ser giltiga ut. Om inte, ethtool kanske inte stöds av enheten.

    • som root, prova mii-tool-v eth0 och se om dess utdata ser korrekt ut., Om inte, kan det hända att Mii-tool inte stöds av enheten.

    • om ingen stöds kan du behöva ställa in parametrar direkt på kärndrivrutinmodulen. Identifiera vilken drivrutinsmodul du använder genom att läsa utdata från dmesg och lsmod. Du kan sedan prova modinfo MODULENAME för att se vilka parametrar den accepterar, om någon. (Du kan använda modinfo även på moduler som inte laddas, för jämförelse.) Todo: var ställer man in kärnmodulparametrar?

  • försök sedan ändra inställningarna för gränssnittet medan det fungerar. Du måste vara root, förstås., Antingen:
    • ethtool-s eth0 speed 100 duplex full autoneg off (förutsatt 100 Mbps och full duplex)

    • mii-tool-f 100baseTx-fd eth0 (samma antagande)

    kontrollera i varje fall om gränssnittsinställningarna faktiskt ändrats och försök sedan skicka in och ut data från systemet för att se om NIC fungerar korrekt.

  • om ett av dessa kommandon framgångsrikt ställer in din NIC, kan du lägga den i /etc/network/interfaces så att den körs när du tar upp gränssnittet (t.ex. vid starttid)., Men innan du gör det bör du förstå att vissa drivrutiner och enheter beter sig annorlunda än andra. När drivrutinsmodulen är laddad kan NIC börja autonegotiation utan något sätt att stoppa det (särskilt med drivrutiner som inte accepterar parametrar). Inställningarna från gränssnitt tillämpas någon gång efter det, vilket kan vara mitt i förhandlingen. Så, vissa tycker att det är nödvändigt att fördröja kommandot ethtool eller mii-tool med några sekunder. Således:

     iface eth0 inet static address .../... gateway ... up sleep 5; ethtool -s eth0 ...

    eller det analoga Mii-verktygskommandot.,

  • starta om datorn för att se till att den kommer upp korrekt och vara beredd att ingripa manuellt (t.ex. Ctrl-Alt-Del och sedan starta upp i enanvändarläge från GRUB eller LILO) om saker inte fungerar.

att föra upp ett gränssnitt utan en IP-adress

för att skapa ett nätverksgränssnitt utan en IP-adress alls använda den manuella metoden och använda pre-up och post-down kommandon för att få gränssnittet upp och ner.

 iface eth0 inet manual pre-up ifconfig $IFACE up post-down ifconfig $IFACE down

om gränssnittet är ett VLAN-gränssnitt måste upp/ner-kommandon utföras efter/före VLAN-krokarna., (Du måste också installera VLAN-paketet.)

 iface eth0.99 inet manual post-up ifconfig $IFACE up pre-down ifconfig $IFACE down

Obs! Om du bara skapar VLAN-gränssnittet för att lägga det i en bro behöver du inte definiera VLAN-gränssnittet manuellt. Konfigurera bara bron, och VLAN-gränssnittet skapas automatiskt när du skapar bron (se nedan).

definiera (DNS) namnservrar

innan en dator kan ansluta till en extern nätverksresurs (t. ex. en webbserver), måste den ha ett sätt att konvertera alla alfanumeriska namn (t. ex. wiki.debian.org) till numeriska nätverksadresser (t.ex. 140.211.166.,4). (Internet använder dessa strukturerade numeriska IP-adresser som nätverksadresser.)

C-biblioteket och andra resolverbibliotek ser till/etc / resolv.conf för en lista över namnservrar. I det enklaste fallet är det Filen att redigera för att ställa in listan med namnservrar. Men observera att olika andra program för dynamisk konfiguration kommer gärna att skriva över dina inställningar:

  1. resolvconf-programmet

  2. nätverkshanteraren daemon

  3. DHCP-klienter

i de flesta situationer är filen som ska redigeras konfigurationsfilen för ett sådant program.,

i de mest komplexa situationer, använder resolvconf verkligen är rätt väg att gå, men i enklare konfigurationer är det förmodligen overkill.

resolvet.conf konfigurationsfil

konfigurationsfilen resolv.conf i /etc/resolv.conf innehåller information som gör det möjligt för en dator som är ansluten till ett nätverk att lösa namn i adresser. (Obs! förväxla inte den här konfigurationsfilen med programmet resolvconf, som Tyvärr har ett nästan identiskt namn.)

resolvet.,conf-filen innehåller vanligtvis IP-adresserna för namnservrar (DNS-namnlösare) som försöker översätta namn till adresser för någon nod som är tillgänglig i nätverket. Det kommer att finnas en rad eller rader som ser ut så här:

nameserver 12.34.56.78nameserver 12.34.56.79

i det här exemplet använder systemet namnservrar på IP-adresserna 12.34.56.78 och 12.34.56.79. Redigera bara filen och ange IP-adresserna för namnservrarna du behöver använda efter varje namnserver. Lägg till fler namnserverrader om du har fler namnservrar. Använd inte den här metoden om du har resolvconf-programmet installerat.,

resolvet.conf konfigurationsfilen har många andra alternativ för att definiera hur resolver ser upp namn. Se man resolv.conf för detaljer.

resolvconf-programmet

resolvconf-programmet håller reda på systeminformation om de för närvarande tillgängliga namnservrarna. Det ska inte förväxlas med konfigurationsfilen resolv.conf, som Tyvärr har ett nästan identiskt namn. Resolvconf-programmet är valfritt på ett Debiansystem.

konfigurationsfilen resolv.conf innehåller information om namnservrar som ska användas av systemet., Men när flera program måste dynamiskt ändra resolv.conf konfigurationsfil de kan trampa på varandra och filen kan bli Out-of-sync. Resolvconf-programmet tar itu med detta problem. Det fungerar som en mellanhand mellan program som tillhandahåller namnserverinformation (t.ex. dhcp-klienter) och program som använder namnserverinformation (t. ex. resolver).

När resolvconf är korrekt installerat, resolv.conf konfigurationsfil på / etc / resolv.conf ersätts av en symbolisk länk till/etc/resolvconf/run / resolv.,conf och resolver använder istället konfigurationsfilen som genereras dynamiskt av resolvconf at / etc/resolvconf/run / resolv.conf.

resolvconf-programmet är i allmänhet endast nödvändigt när ett system har flera program som behöver ändra namnserverinformationen dynamiskt. I ett enkelt system där namnetservrar ändras inte ofta eller ändras bara av ett program, resolv.conf konfigurationsfilen är tillräcklig.

om resolvconf-programmet är installerat bör du inte redigera resolv.,conf konfigurationsfil manuellt eftersom det kommer att ändras dynamiskt av program i systemet. Om du behöver manuellt definiera namnservrar (som med ett statiskt gränssnitt), Lägg till en linje något som följande i gränssnittskonfigurationsfilen på /etc/network/interfaces:

dns-nameservers 12.34.56.78 12.34.56.79

placera linjen indragen i en iface-stanza, t.ex. strax efter gateway-linjen. Ange IP-adresserna för namnservrarna du behöver använda efter dns-namnservrar. Lägg dem alla på en linje åtskilda av mellanslag. Glöm inte ” s ” i slutet av dns-namnservrar.,

resolvconf-programmet är ett ganska nytt tillägg till Debian och många äldre program måste uppdateras eller omkonfigureras för att fungera korrekt med det. Om du har problem, se / usr/share/doc/resolvconf / README. Den har massor av information om att göra andra program komma överens med resolvconf.

DNS-konfiguration för NetworkManager

NetworkManager åsidosätter dhcp-inställningar, skriver över resolv.conf även om du har konfigurerat DNS i /etc/dhcp/dhclient.conf, t ex, orsakar DNS att först söka den lokala domänen, som kan behöva timeout innan DNS-upplösning fortsätter att orsaka långa DNS-upplösningstider. Du kan få en uppfattning om vad NetworkManager tycker att inställningarna ska vara genom att köra nm-verktyg på kommandoraden.

Du kan konfigurera dessa inställningar med hjälp av ett GUI genom att starta nm-connection-editor som för närvarande (13.11.23) inte finns i Systemverktyg → Administrationsmeny, utan det måste startas för hand från kommandoraden. Efter lanseringen:

  1. välj en anslutning (från fliken trådbunden eller trådlös) och klicka på Redigera.,
  2. Klicka på fliken IPv4 Inställningar
  3. välj’ endast automatiska (DHCP) adresser’ istället för bara ’Automatisk (DHCP)’.
  4. ange DNS-servrarna i fältet ”DNS-servrar”, åtskilda av mellanslag (t.ex. 208.67.222.222 för OpenDNS).
  5. Klicka på ”Apply.”

NetworkManager sparar dessa inställningar i/etc/NetworkManager/system-connections / name-of-connection. Exempel / etc / NetworkManager / system-connections / Wired connection 1:

kör nm-tool igen bör visa att NetworkManager nu har rätt uppfattning om hur din DNS ska lösas.,

DHCP-klientkonfiguration

ställa in ytterligare DNS-servrar

exempel: dhclient3 använder/etc/dhcp / dhclient.conf. Inställningen du vill ha är

supersede domain-name-servers 12.34.56.78, 12.34.56.79;

eller kanske

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

ställa in ytterligare sökdomäner

lägga till sökdomäner för VPN eller lokala virtuella nätverk:

append domain-name " virt vpn";

notera det ledande utrymmet eftersom strängen bokstavligen läggs till sökdomänen som tillhandahålls av andra konfigurationer.

se dhclient.conf (5) manualsida för mer information.,

Bridging

Bridging sätter flera gränssnitt i samma nätverkssegment. Detta är mycket populärt när du ansluter en server till flera växlar för hög tillgänglighet eller med virtualisering. I det senare fallet används det vanligtvis för att skapa en bro i värden (t.ex. dom0) och sätta de virtuella gränssnitten av gästerna (domU) i bron.

  • bridge-utils-paketet krävs för att skapa överbryggade gränssnitt.,

exempel: Anslut en server till 2 växlar (via eth0 och eth1) genom att definiera bridge 0 och ge servern en IP-adress i detta subnät:

auto br0iface br0 inet static address 10.10.0.15/24 gateway 10.10.0.1 bridge_ports eth0 eth1 up /usr/sbin/brctl stp br0 on

om en server är ansluten till flera växlar måste du vanligtvis köra Spanning tree-protokollet för att undvika slingor. Därför måste STP slås på via ett” up ” – kommando som visas ovan.

exempel: Brygginställning utan IP-adresskonfiguration (använd ”manuell” istället för ”statisk”) för att ”vidarebefordra” ett gränssnitt till en gäst VM. (Statisk bro config innehåller endast 1 fysiskt gränssnitt., Det virtuella gränssnittet kommer att läggas till bron när VM startas.)

auto br1iface br1 inet manual bridge_ports eth4 up /usr/sbin/brctl setageing br1 0 up /usr/sbin/brctl stp br1 off

Observera: Den Linux-bron stöder endast STP, ingen RSTP (Rapid Spanning Tree). Därför stöder den endast de gamla STP-kostnaderna, inte de nya RSTP-kostnaderna (se Spanning_Tree_Protocol). Detta är oftast bra med Cisco switchar, men t.ex. Juniper växlar använder RSTP kostnader och därför detta kan leda till olika spänner träd beräkningar och loop problem. Detta kan åtgärdas genom inställningar kostnaderna manuellt, antingen på strömbrytaren eller på servern., Att ställa in kostnaden på växeln är att föredra eftersom Linux växlar tillbaka till standardkostnaderna när ett gränssnitt gör ner/upp.

överbrygga utan att byta

som standard fungerar Linux bridge som en switch. Det betyder att det kommer ihåg MAC-adresserna bakom en switchport och om destinationen MAC – adressen är känd, kommer datapaket eller endast framåt till respektive port-annars kommer paket att sändas.

i vissa inställningar är detta dåligt. Till exempel om bron ansluter 2 trunk gränssnitt och samma MAC-adresser kan ses från båda gränssnitten, beroende på VLAN., Eftersom Linux bridge inte stöder VLAN (dedikerade MAC-adresstabeller per varje VLAN), måste du i sådana Inställningar Inaktivera Mac-adressinlärningen och sätta bron i ett riktigt ”bridge” – läge med:

 up /sbin/brctl setageing br0 0 up /sbin/brctl stp br0 off

Howto använda vlan (dot1q, 802.,1Q, trunk) (Etch, Lenny)

manuell konfigurering

modprobe 8021qapt install vlanvconfig add eth0 222 # 222 is vlan numberifconfig eth0.222 upifconfig eth0.222 mtu 1496 #optional if your network card doesn't support MTU 1504Bifconfig eth0.222 10.10.10.1 netmask 255.255.255.0

network init script config

In /etc/modules add line:

8021q

in /etc/network/interfaces to section iface add parameter:

 vlan-raw-device eth0

Gränssnittsnamnet ska vara det råa gränssnittsnamnet (samma som anges av VLAN-RAW-enhet), sedan en punkt, sedan VLAN-ID, till exempel eth0.100. Det kan istället vara ”vlan” då VLAN-ID, till exempel vlan100. I båda fallen är VLAN-ID på slutet, och det här är det enda stället som det är konfigurerat.,

Obs: Om du namnger ditt VLAN-gränssnitt ethX.YYY, då är det inte nödvändigt att ange VLAN-raw-enheten, eftersom den råa enheten kan hämtas från gränssnittsnamnet.

t.ex.:

auto eth0.222iface eth0.222 inet static address 10.10.10.1/24 vlan-raw-device eth0

broar och VLAN

om du bara skapar VLAN-gränssnitt för att sätta dem i en bro behöver du inte definiera VLAN-gränssnitten manuellt. Bara config bron, och VLAN-gränssnittet kommer att skapas automatiskt när du skapar bron, e.,g:

auto br1iface br1 inet manual bridge_ports eth0.99 eth1.99 up /usr/sbin/brctl stp br1 on

varningar vid användning av överbryggning och vlan

om du använder en brigded VLAN – inställning, vilket förmodligen är användbart för nätverk i virtualiseringsmiljöer, var försiktig så att du bara bifogar antingen en broenhet eller VLAN-enheter till en underliggande fysisk enhet-som visas ovan. Fästa det fysiska gränssnittet (eth0) till en bro (t.ex. bri1) när du använder samma fysiska gränssnitt på tydligen olika VLAN kommer att resultera i alla paket att förbli taggade. (Kernel nyare än 2.6.37 och äldre än 3.2).,

hur man skapar feltolerant bindning med VLAN (Etch-Stretch)

debian_bonding.dia

Hur man konfigurerar en av de ovan active server backup bindning 3 vlan {vlan10,vlan20,vlan30} Debian nätverk utan SPOF utan native vlan.

aptitude install vlan ifenslave-2.6

Nätverkskonfig

Cisco switch interface example config

interface GigabitEthernet1/2 description eth1 switchport switchport trunk encapsulation dot1q switchport trunk allowed vlan 10,20,30 switchport mode trunk no ip address no cdp enable spanning-tree portfast trunk

bindning med aktiv säkerhetskopiering

skapa en fil/etc / modprobe.d / bindning.,conf som innehåller:

alias bond0 bondingoptions bonding mode=active-backup miimon=100 downdelay=200 updelay=200 primary=eth1

/etc/network/interfaces

# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto bond0iface bond0 inet manual up ifconfig bond0 0.0.0.0 up slaves eth1 eth0auto vlan10iface vlan10 inet static address 10.10.10.12/24 vlan-raw-device bond0 gateway 10.10.0.1 dns-search hup.hu dns-nameservers 10.10.0.2auto vlan20iface vlan20 inet static address 10.20.10.12/24 vlan-raw-device bond0auto vlan30iface vlan30 inet static address 10.30.10.12/24 vlan-raw-device bond0

så här ställer du in mtu (Max transfer unit/packet size) med VLAN över ett bundet gränssnitt

MTU måste konfigureras på bindningsgränssnittet och slavgränssnittet efter återställningen av konfigurationen har tillämpats på bindningsgränssnitten. Detta görs med hjälp av en post-up-linje i bindningsgränssnittskonfigurationen.

auto bond0iface bond0 inet manual up ifconfig lacptrunk0 0.0.0.0 up slaves eth0 eth1# bond-mode 4 = 802.3ad bond-mode 4 bond-miimon 100 bond-downdelay 200 bond-updelay 200 bond-lacp-rate 1 bond-xmit-hash-policy layer2+3 post-up ifconfig eth0 mtu 9000 && ifconfig eth1 mtu 9000 && ifconfig bond0 mtu 9000#vlan devices will use the MTU set on bond0 deviceauto vlan101iface vlan101 inet static address 10.101.60.123/24 gateway 10.155.60.1 vlan-raw-device bond0auto vlan151iface vlan151 inet static address 192.168.1.1/24 vlan-raw-device bond0

flera IP-adresser på ett gränssnitt

gränssnitt aliasing tillåter ett gränssnitt för att ha flera IP-adresser., Detta är användbart när mer än en server ska synas via Internet. Observera att virtuella värdar kan stödja flera Apache-servrar med en enda IP-adress. Apache svarar på domännamnet som tillhandahålls av klienten i HTTP-huvudet. I många andra situationer behövs en extern IP för varje server med en port.

äldre metod

denna/etc/network / interfaces text tilldelar tre IP-adresser till eth0.

ett aliasgränssnitt ska inte ha ”gateway” eller ”dns-namnservrar”; dynamisk IP-tilldelning är tillåten.,

ovanstående konfiguration är den tidigare traditionella metoden som återspeglar den traditionella användningen av ifconfig för att konfigurera nätverksenheter. ifconfig har infört begreppet alias eller virtuella gränssnitt. Dessa typer av virtuella gränssnitt har namn på formulärgränssnittet: heltal och ifconfig behandlar dem mycket på samma sätt som riktiga gränssnitt.

ifupdown använder numera ip-verktyget från iproute2-paketet istället för ifconfig. Det nyare ip-verktyget använder inte samma koncept av alias eller virtuella gränssnitt., Det stöder dock att tilldela godtyckliga namn till gränssnitten (de kallas etiketter). ifupdown använder den här funktionen för att stödja aliaserade gränssnitt när du använder ip.

iproute2 metod

ifupdown stöder också att ange flera gränssnitt genom att upprepa iface-sektioner med samma gränssnittsnamn. Den viktigaste skillnaden från den metod som beskrivs ovan är att alla sådana sektioner behandlas av ifupdown som bara ett gränssnitt, så att användaren inte kan lägga till eller ta bort dem individuellt. Upp/ner-kommandon, såväl som skript, kallas dock för varje avsnitt som det brukade vara.,

Observera dock att denna metod är farlig! Vissa kombinationer av drivrutiner/hårdvara kan ibland misslyckas med att ta upp länken om inga etiketter är tilldelade aliasgränssnitten. (Sett detta på Debian Wheezy och Jessie med RTL8111/8168/8411 PCI Express-Gigabit Ethernet-Styrenhet (rev 01) auto-förhandla-10/full. En liknande varning från en annan person finns i historien på den här sidan.)

denna/etc/nätverk / gränssnitt text tilldelar tre IP-adresser till eth0.

auto eth0allow-hotplug eth0iface eth0 inet static address 192.168.1.42/24 gateway 192.168.1.1iface eth0 inet static address 192.168.1.43/24iface eth0 inet static address 192.168.1.44/24# adding IP addresses from different subnets is also possibleiface eth0 inet static address 10.10.10.14/24

manuell metod:

Categorynetwork CategorySystemAdministration