Introduksjon til NetworkManager
NetworkManager er et sett med
samhandlende verktøy som gjør nettverksbygging enkelt og greit.
Enten du bruker WiFi, kablet, 3G eller Bluetooth lar NetworkManager
deg raskt flytte fra ett nettverk til et annet: Når et nettverk er
konfigurert og koblet til en gang kan den oppdages og slås på igjen
automatisk neste gang den er tilgjengelig.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.2 plattform.
Note
Pass på at du deaktiverer systemd-networkd tjenesten
eller konfigurer den til ikke å administrere grensesnittene du
vil administrere med NetworkManager.
Pakkeinformasjon
NetworkManager Avhengigheter
Påkrevd
libndp-1.9
Anbefalt
cURL-8.9.1,
dhcpcd-10.0.8, GLib-2.80.4 (med
GObject Introspection), iptables-1.8.10, libpsl-0.21.5, newt-0.52.24 (for nmtui), nss-3.103, Polkit-125 (kjøretid), PyGObject-3.48.2, Systemd-256.4, Vala-0.56.17, og
wpa_supplicant-2.11 (kjøretid, bygd med
D-Bus støtte)
Valgfri
BlueZ-5.77, D-Bus Python-1.3.2 (for testpakken),
GnuTLS-3.8.7.1 (kan brukes i stedet for
nss-3.103), GTK-Doc-1.34.0, jansson-2.14,
ModemManager-1.18.12, qt5-components-5.15.14 med qtdoc (for
eksempler), UPower-1.90.4, Valgrind-3.23.0, dnsmasq, firewalld, libaudit,
libteam,
mobile-broadband-provider-info, PPP, og RP-PPPoE
Kjernekonfigurasjon
Hvis du ønsker å kjøre testene, kontroller at minst følgende
alternativer er aktivert i kjernekonfigurasjonen. De alternativene
har vært fastslått å være nødvendig, men kanskje ikke
tilstrekkelig. Kompiler på nytt kjernen om nødvendig:
[*] Networking support ---> [NET]
Networking options --->
[*] TCP/IP networking [INET]
<*/M> IP: tunneling [NET_IPIP]
<*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX]
<*/M> IP: GRE tunnels over IP [NET_IPGRE]
<*> The IPv6 protocol ---> [IPV6]
<*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT]
<*/M> IPv6: GRE tunnel [IPV6_GRE]
[*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES]
[*] MPTCP: Multipath TCP [MPTCP]
[*] MPTCP: IPv6 support for Multipath TCP [MPTCP_IPV6]
<*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q]
[*] QoS and/or fair queueing ---> [NET_SCHED]
<*> Stochastic Fairness Queueing (SFQ) [NET_SCH_SFQ]
<*> Token Bucket Filter (TBF) [NET_SCH_TBF]
<*> Fair Queue Controlled Delay AQM (FQ_CODEL) [NET_SCH_FQ_CODEL]
<*> Ingress/classifier-action Qdisc [NET_SCH_INGRESS]
Device Drivers --->
[*] Network device support ---> [NETDEVICES]
[*] Network core driver support [NET_CORE]
<*/M> Bonding driver support [BONDING]
<*/M> Dummy net driver support [DUMMY]
<*/M> Ethernet team driver support ---> [NET_TEAM]
<*/M> MAC-VLAN support [MACVLAN]
<*/M> MAC-VLAN based tap driver [MACVTAP]
<*/M> IP-VLAN support [IPVLAN]
<*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN]
<*/M> Virtual ethernet pair device [VETH]
<*/M> Virtual Routing and Forwarding (Lite) [NET_VRF]
Installasjon av NetworkManager
Hvis qt5-components-5.15.14er installert og
Qt basert eksempler ønskes, fiks to meson.build filer:
sed -e 's/-qt4/-qt5/' \
-e 's/moc_location/host_bins/' \
-i examples/C/qt/meson.build &&
sed -e 's/Qt/&5/' \
-i meson.build
Fiks python skriptene slik at de bruker Python 3:
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Installer NetworkManager ved å
kjøre følgende kommandoer:
mkdir build &&
cd build &&
CXXFLAGS+="-O2 -fPIC" \
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D libaudit=no \
-D nmtui=true \
-D ovs=false \
-D ppp=false \
-D selinux=false \
-D qt=false \
-D session_tracking=systemd \
-D modem_manager=false &&
ninja
En allerede aktiv grafisk øky med en bussadresse er nødvendig for å
kjøre testene. For å teste resultatene, utsted ninja test.
Noen få tester kan mislykkes, avhengig av aktiverte
kjernealternativer.
Nå, som root
bruker:
ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.48.8}
Hvis du ikke har sendt -D docs=true
alternativ til meson,
du kan installere de forhåndsgenererte manualsidene med (som
root
bruker):
for file in $(echo ../man/*.[1578]); do
section=${file##*.} &&
install -vdm 755 /usr/share/man/man$section
install -vm 644 $file /usr/share/man/man$section/
done
Hvis du ikke har brukt -D docs=true
,
forhåndsgenerert HTML dokumentasjon kan også installeres med (som
root
bruker):
cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.48.8
Parameterforklaringer
CXXFLAGS="-O2 -fPIC"
: Disse
kompilatoralternativene er nødvendig for å bygge de Qt5 baserte
eksemplene.
--buildtype=release
:
Spesifiser en byggetype egnet for stabile utgivelser av pakken, som
standard kan produsere uoptimaliserte binærfiler.
-D docs=true
: Bruk denne bryteren for å
aktivere bygging av mansider og dokumentasjon hvis GTK-Doc-1.34.0 er installert.
-D nmtui=true
: Denne
bryteren gjør det mulig å bygge nmtui.
-D ovs=false
: Denne
bryteren deaktiverer Open vSwitch integrasjon fordi den trenger
jansson-2.14. Fjern den hvis du har jansson-2.14 installert på systemet ditt.
-D modem_manager=false
:
Denne bryteren er nødvendig hvis ModemManager ikke er installert. Utelat denne
bryteren hvis du har bygget ModemManager og mobile-broadband-provider-info.
-D
session_tracking=systemd
: Denne bryteren brukes til å
sette systemd-logind
som standardprogram for øktsporing.
-D ppp=false
: Denne
bryteren deaktiverer PPP støtte i
NetworkManager siden programmene
er nødvendige for det ikke er installert. Fjern denne bryteren hvis
du trenger PPP støtte og har PPP
installert.
-D libaudit=no
og
-D selinux=false
: Denne
bryteren deaktiverer støtte for libaudit og SELinux siden de ikke
brukes i BLFS.
-D qt=false
: deaktiverer
-Dqt=false
: Denne bryteren
deaktiverer Qt eksempler. Utelat
hvis du har Qt tilgjengelig og
ønsker å installere eksemplene.
-D crypto=gnutls
: Bruk denne bryteren
hvis du har GnuTLS installert og ønsker å bruke den til sertifikat
og nøkkel operasjoner i NetworkManager, i stedet for å bruke NSS
(standard).
-D crypto=null
: Bruk denne bryteren
hvis verken NSS eller GnuTLS er installert, men du vil uansett
bygge NetworkManager. Denne bryteren vil få NetworkManager til å
mangle noen funksjoner (for eksempel 802.1X).
-D suspend_resume=upower
: Bruk denne
bryteren hvis du har UPower-1.90.4 installert og ønsker å
bruke den (i stedet for Systemd-256.4) for å suspendere og
gjenoppta støtte.
Konfigurere NetworkManager
Konfigurasjonsfiler
/etc/NetworkManager/NetworkManager.conf
Konfigurasjonsinformasjon
For at NetworkManager skal
virke, må det i det minste være til stede en minimal
konfigurasjonsfil. En slik fil er ikke installert med
make install.
Utsted følgende kommando som root
bruker for å lage en minimal NetworkManager.conf
fil:
cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
Denne filen skal ikke endres direkte av brukere av systemet. I
stedet bør systemspesifikke endringer gjøres ved hjelp av
konfigurasjonsfiler i /etc/NetworkManager/conf.d
mappen.
For å tillate polkit å administrere autorisasjoner, legg til
følgende konfigurasjonsfil:
cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF
For å bruke noe annet enn den innebygde dhcp klienten (anbefalt
hvis du kun bruker nmcli), bruk følgende
konfigurasjon (gyldige verdier inkluderer enten dhcpcd eller
internal):
cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=
dhcpcd
EOF
For å forhindre NetworkManager
fra å oppdatere /etc/resolv.conf
filen, legg til følgende konfigurasjonsfil:
cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF
For ytterligere konfigurasjonsalternativer, se man 5 NetworkManager.conf.
For å la vanlige brukere konfigurere nettverkstilkoblinger, bør
du legge dem til netdev
gruppen,
og lag en polkit regel som gir
adgang. Kjør følgende kommandoer som root
bruker:
groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <username>
cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
return polkit.Result.YES;
}
});
EOF
Systemd Enhet
For å starte NetworkManager nissen ved
oppstart, aktiver den tidligere installerte systemd enheten ved å
kjøre følgende kommando som root
bruker:
Note
Hvis du bruker Network Manager
til å administrere et grensesnitt, bør enhver tidligere
konfigurasjon for det grensesnittet være fjernet, og
grensesnittet tatt ned før Network
Manager startes.
systemctl enable NetworkManager
Fra og med versjon 1.11.2 av NetworkManager, en systemd enhet kalt
NetworkManager-wait-online.service
er aktivert, som brukes til å forhindre tjenester som krever
nettverkstilkobling fra å starte inntil NetworkManager oppretter en forbindelse. For
å deaktivere denne virkemåten, kjør følgende kommando som
root
bruker:
systemctl disable NetworkManager-wait-online
Innhold
Installerte Programmer:
NetworkManager, nmcli, nm-online, nmtui,
og, symbolkobling til nmtui: nmtui-connect, nmtui-edit, og
nmtui-hostname
Installerte Biblioteker:
libnm.so og flere moduler under
/usr/lib/NetworkManager
Installerte Mapper:
/etc/NetworkManager, /usr/include/libnm,
/usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.48.8,
/usr/share/gtk-doc/html/{libnm,NetworkManager} (hvis
dokumentasjonen er bygget), og /var/lib/NetworkManager
Korte Beskrivelser
nmcli
|
er et kommandolinjeverktøy for å kontrollere NetworkManager og få dens status
|
nm-online
|
er et verktøy for å avgjøre om du er på nett
|
nmtui
|
er et interaktivt ncurses-basert brukergrensesnitt for
nmcli
|
nmtui-connect
|
er et interaktivt ncurses-basert brukergrensesnitt til å
aktivere/deaktivere tilkoblinger
|
nmtui-edit
|
er et interaktivt ncurses-basert brukergrensesnitt for å
redigere tilkoblinger
|
nmtui-hostname
|
er et interaktivt ncurses-basert brukergrensesnitt for å
redigere vertsnavnet
|
NetworkManager
|
er nettverksadministrasjonsnisse
|
libnm.so
|
inneholder funksjoner som brukes av NetworkManager
|