Netcfg
Netcfg este utilizat pentru a configura şi gestiona conexiunile de reţea prin intermediul unor profiluri. Acesta are suport pentru o serie de tipuri de conexiuni, cum ar fi ethernet,wireless,ppp. De asemenea, este capabil de a porni/opri mai multe conexiuni pe acelaşi profil. Este util pentru utilizatorii care doresc un mijloc simplu şi robust de a gestiona multiple configuraţii de reţea (de exemplu, utilizatorii de laptop). Pentru sistemele de conectarea la o reţea unică, daemon-ul de reţea poate fi mai adecvat.
Pregătirea
Utilizatorii trebuie cel puţin să cunoască numele interfeţei de reţea (de exemplu,eth0,wlan0),cum să configureze o adresă IP statică, gateway-ul şi să cunoască adresa serverului. În cazul unei conectări la o reţea fără fir, acestea sunt informaţii de bază.Pentru o reţea fără fir acest lucru include ce tip de securitate este utilizat, numele reţelei (ESSID), precum şi orice chei de criptare sau parole sunt folosite. În plus, asiguraţi-vă că aveți instalate driverele corecte şi firmware-ul pentru dispozitivul fără fir, aşa cum este descris în Wireless.
Instalarea
Asiguraţi-vă că aveţi instalată cea mai recentă versiune a pachetului netcfg.Versiunile mai vechi au unele bug-uri şi nu pot lucra bine cu cele mai recente drivere. Pachetul netcfg este disponibil în core:
# pacman -S netcfg
Incepând cu versiunea 2.5.x, dependinţele opţionale includ wpa_actiond - necesar pentru conectare automată wireless roaming și ifplugd - necesar pentru configurarea automată ethernet.
# pacman -S wpa_actiond ifplugd
Configurare
Profilurile de reţea sunt stocate în directorul /etc/network.d.Pentru a nu întâmpina prea multe erori, copiați configuraţia exemplu de la /etc/network.d/examples/ la /etc/network.d/mynetwork. Numele de fişier mynetwork este numele de profil de reţea ("mynetwork" este folosit ca un exemplu, pe parcursul acestui articol). Numele nu este o configuraţie de reţea şi nu trebuie să se potrivească cu numele de reţea fără fir (SSID). În funcţie de tipul de conexiune şi securitate, utilizaţi unul din următoarele exemple de la /etc/network.d/examples ca o bază. Fiţi prudent cu exemplele găsite pe internet, deoarece acestea conţin adesea opţiuni învechite care pot cauza probleme.
| Connection type/security | Example profile |
|---|---|
| Wireless; WEP hex key | wireless-wep |
| Wireless; WEP string key | wireless-wep-string-key |
| Wireless; WPA personal (passphrase) | wireless-wpa |
| Wireless; WPA enterprise | wireless-wpa-config (wpa_supplicant configuration is external) wireless-wpa-configsection (wpa_supplicant configuration stored as string) |
| Wired; DHCP | ethernet-dhcp |
| Wired; static IP | ethernet-static |
| Wired; iproute configuration | ethernet-iproute |
Apoi,modificaţi noul fişier de configurare , /etc/network.d/mynetwork:
- Setați INTERFACE pe varianta corectă,wireless sau ethernet.Aceasta poate fi verificată cu ifconfig și iwconfig. .
- Fiți siguri că ESSID și KEY sunt setate corect pentru wireless.
- Reţineţi că cheile șir WEP (nu cheile hex) trebuie să fie specificate în felul următor:KEY="s:somepasskey"
Folosire
Pentru a conecta un profil:
# netcfg mynetwork
Pentru deconectare:
# netcfg down <profile-name>
Daca va avea succes, utilizatorii pot configura netcfg pentru a se conecta automat sau în timpul de boot.În cazul în care conexiunea nu reuşeşte, consultaţi # Rezolvarea problemelor. Pentru alte funcționalități:
$ netcfg help
Conectarea automată
Câteva metode sunt disponibile pentru utilizatorii care doresc să se conecteze automat la profilurile de reţea (de exemplu,în timpul de boot sau când sunt într-o călătorie).Reţineţi că un profil de reţea trebuie să fie corect configurat în primul rând în directorul /etc/network.d.
Net-profiles
net-profiles permite utilizatorilor să conecteze în timpul start-up profilurile create.Pentru a activa această facilitate, utilizatorii trebuie să adauge net-profiles la DAEMONS în rc.conf și să specifice profilurile în NETWORKS:
NETWORKS=(mynetwork yournetwork) ... DAEMONS=(... net-profiles ...)
Alternativ,net-profiles poate fi configurat să afișeze un meniu care să permită userilor să aleagă profilul prin stabilirea conţinutului din NETWORKS în menu:
NETWORKS=(menu) ... DAEMONS=(... net-profiles ...)
Este necesar pachetul dialog.
Net-auto-wireless
net-auto-wireless permite userilor să se conecteze automat la rețeaua wireless.Pentru a activa această facilitate, utilizatorii trebuie să adauge net-auto-wireless la DAEMONS și să specifice în WIRELESS_INTERFACE interfața dorită:
WIRELESS_INTERFACE="wlan0" ... DAEMONS=(... net-auto-wireless ...)
Pentru aceasta va fi nevoie de pachetul wpa_actiond.De reținut că profilul wpa-config nu funcționează cu net-auto-wireless. Acesta trebuie convertit în wpa-configsection.
Net-auto-wired
net-auto-wired permite userilor să se conecteze automat la rețeaua cu fir(wired).Pentru aceasta e necesar pachetul ifplugd:
# pacman -S ifplugd
și adăugați net-auto-wired în câmpul DAEMONS.Aici se specifică interfața cu variabila WIRED_INTERFACE:
WIRED_INTERFACE="eth0" ... DAEMONS=(... net-auto-wired ...)
Daemon-ul pornește ifplugd care,la rândul său rulează /etc/ifplugd/netcfg.action,pînă cînd statusul interfeței wired se modifică.Prin conectarea cablului,se încearcă pornirea oricărui profil cu CONNECTION = "ethernet" sau "ethernet-iproute" și INTERFACE = WIRED_INTERFACE până la stabilirea conexiunii.
Sfaturi și trucuri
Adăugare argumente pentru iwconfig înainte de conectare
Adaugați următoarea linie la profilul creat:
IWCONFIG="<arguments>"
Unde <arguments> poate fi orice argument valid iwconfig.Scriptul rulează iwconfig $INTERFACE $IWCONFIG .De exemplu poate forța placa de rețea să inregistreze un anumit punct de acces acordat de adresa MAC:
IWCONFIG="ap 12:34:56:78:90:12"
Aceasta înlocuiește IWOPTS și WEP_OPTS , opțiuni care nu au fost suficient testate.
rfkill (activare / dezactivare wireless)
Netcfg poate activa / dezactiva wireless pentru carduri wireless echipate cu software de control . Pentru plăci de retea wireless cu comutare hardware, netcfg poate detecta această comutare și actionează ca atare. Pentru a permite suportul rfkill,trebuie să specificați ce fel de metodă de comutare pentru rețeaua wireless folosiți: hardware sau software.Acest lucru poate fi stabilit într-un profil sau la nivel de interfaţă (/etc/network.d/interfaces/$INTERFACE;vezi #Interfața de configurare).
RFKILL=soft # can be either 'hard' or 'soft'
Unele comutatoare care opresc procesul rfkill în /sys nu sunt legate de interfață iar variabila RFKILL_NAME trebuie setată să se potrivească la conținut cu /sys/class/rfkill/rfkill#/name.De exemplu,pe un Eee PC:
RFKILL=soft RFKILL_NAME='eeepc-wlan'
Executarea comenzilor înainte/după pornirea/oprirea interfeței de rețea
Dacă interfața de rețea are nevoie de comenzi speciale înainte/după pornirea/inchiderea conexiunii,puteți folosi variabilele PRE_UP, POST_UP, PRE_DOWN și POST_DOWN. De exemplu,dacă doriți ca placa wireless să opereze în mod ad-hoc,puteți schimba modul de operare când interfața este oprită:
PRE_UP="ifconfig wlan0 down; iwconfig wlan0 mode ad-hoc"
Sau, dacă doriţi să montaţi network shares după o conexiune reușită,ați putea folosi:
POST_UP="sleep 5; mount /mnt/shares/nexus/utorrent 2>/dev/null"
Daca doriţi să rulaţi ceva legat de netcfg cu un alt utilizator:
POST_UP="su -c '/you/own/command' username"
Conectare intermitentă
Între unele combinații de driver+hardware pot apărea probleme de sincronizare.Folosiți comenzile pre și post pentru a adăuga sau elimina driverul,apoi folosiți un script(ca în exemplul următor)pentru a stabili conexiunea:
#!/bin/bash
log() { logger -t "$( basename $0 )" "$*" ; }
main() {
local host
while sleep 1; do
[[ "$( netcfg current )" = "" ]] && continue
host=$( route -n | awk '/^0.0.0.0/ { print $2 }' )
ping -c 1 $host && continue
log "trying to reassociate"
wpa_cli reassociate
ping -c 1 $host && continue
log "reassociate failed, reconfiguring network"
netcfg -r $( netcfg current )
done
}
exec 1>/dev/null
[[ $EUID != 0 ]] && { log "must be root"; exit 1; }
for cmd in wpa_cli ping netcfg; do
! which $cmd && {
log "can't find command ${cmd}, exiting..."
exit 1
}
done
log 'starting...'
main
Interfața de configurare
Opţiunile de configurare care se aplică la toate profilurile folosind o interfaţă pot fi setate folosind /etc/network.d/interfaces/$INTERFACE.De exemplu:
/etc/network.d/interfaces/wlan0
Aceasta este folositoare pentru opțiunea wpa_supplicant,suport comutare rfkill,scripturi pentru pre/post pornire/oprire și net-auto-wireless. Aceste opţiuni sunt încărcate înainte într-un profil care va deveni prioritar. /etc/network.d/interfaces/$INTERFACE poate conţine orice opţiune de profil valabil, deşi este mult mai probabil să fie utilizate PRE_UP/DOWN și POST_UP/DOWN (descrise în secţiunea anterioară) sau una dintre optiunile de mai jos.Amintiţi-vă că aceste opţiuni sunt stabilite pentru toate profilurile care folosesc interfața,de exemplu,în cazul în care nu doriţi să realizaţi conexiunea VPN într-un anumit loc, să rețină acest lucru,deoarece acesta va încerca să se conecteze la orice wireless!
WPA_GROUP - Setting the group of the wpa_ctrl interface WPA_COUNTRY - Enforces local regulatory limitations and allows use of more channels WPA_DRIVER - Defaults to wext, may want nl80211 for mac80211 devices
ArchAssistant (GUI)
Există un utilitar grafic pentru netfg, ArchAssistant ,utilitar bazat pe Qt.Scopul său este de a gestiona şi conecta / deconecta diferse profiluri de rețea. Poate, de asemenea,face detectarea automată a reţelelor fără fir disponibile. Acest instrument este util pentru utilizatorii de laptop.
În plus, o interfaţă grafică relativ nouă pentru netcfg2 care se ocupă numai cu configurarea reţelei,o puteți găsi aici.
wifi-select
Alt instrument în consolă pentru selectarea reţelei fără fir în "timp real"(asemănător cu NetworkManager) ar fi wifi-select.Acest instrument este util pentru utilizarea în internet-cafe sau alte locuri pe care le vizitaţi mai rar. Cu acest instrument, nu aveţi nevoie să creați un profil pentru o nouă reţea, doar să tastați în terminal sudo wifi-select wlan0 şi selectaţi reţeaua pe care o doriţi. Pachetul este disponibil în [community]. Pentru a-l instala :
# pacman -S wifi-select
wifi-select efectuează următoarele:
- Analizează rezultatul
iwlist scanşi prezintă lista de reţele, împreună cu setările sale de securitate (WPA/WEP/none) folosinddialog. - În cazul în care utilizați o reţea cu profil existent,trebuie doar să utilizaţi acest profil pentru a vă conecta cu
netcfg - Dacă userul selectează o nouă rețea(de exemplu un punct de acces WIFI),wifi-select automat genereză un nou profil cu variabila
$SECURITYsetată corespunzător si va solicita parola(dacă este necesar).Se foloseşte DHCP ca$ IPimplicit. - Dacă conectarea reușește,profilul este salvat pentru o folosire ulterioară
- Dacă conectarea nu reușește,userul este întrebat dacă dorește să salveze profilul
- Forum discuții despre wifi-select
- wifi-select în AUR
- wifi-select Mercurial repository
- wifi-select on GitHub
Folosire dhclient în loc de dhcpcd
Pur şi simplu adăugaţi
DHCLIENT=yes
la profilul dorit.
Rezolvarea problemelor
Debugging
Netcfg poate rula cu ieşire de depanare, pentru aceasta setaţi "yes" la NETCFG_DEBUG ca de exemplu:
# NETCFG_DEBUG="yes" netcfg <arguments>
Informaţii pentru debug(log) pe wpa_supplicant pot fi enumerate folosind WPA_OPTS într-un profil,de exemplu:
WPA_OPTS="-f/path/to/log"
Orice intrare va fi adăugată ulterior la comanda wpa_supplicant.
Această eroare este de obicei cauzată de:
- în afara intervalului specificat, sau
- probleme cu driverele.
Wireless association failed
Această eroare poate avea următoarele cauze:
- în afara domeniului / recepţiei;
- configurare incorectă;
- cheie invalidă;
- problemă driver sau
- încercarea de conectare la o reţea ascunsă.
În cazul în care problema de conexiune se datorează recepţie slabe,se poate creşte variabila TIMEOUT din /etc/network.d/mynetwork , după cum urmează:
TIMEOUT=60
Dacă utilizaţi un AP cu SSID ascuns, încercaţi:
PRE_UP='iwconfig $INTERFACE essid $ESSID'
Unable to get IP address with DHCP
Această eroare se datorează
- în afara domeniului / recepţiei.
Încercaţi să creșteți variabila DHCP_TIMEOUT în /etc/network.d/profile.
Not a valid connection, check spelling or look at examples
Trebuie setat CONNECTION la una din tipurile de conexiuni listate în directorul /usr/lib/network/connections.Alternativ,puteți folosi un exemplu din configurațiile aflate în /etc/network.d/examples.
find: "/var/run/network//suspend/": No such file or directory
Dacă primiţi acest mesaj de eroare, trebuie să știți că este un bug cunoscut. Creați manual acest director.