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.
Notat
Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen
pakker riktig hvis LFS eller avhengigheter har blitt oppdatert
siden den siste stabile versjonene av bøkene.
Pakkeinformasjon
NetworkManager Avhengigheter
Påkrevd
libndp-1.9
Anbefalt
cURL-8.11.0, dhcpcd-10.1.0, GLib-2.82.2 (med
GObject Introspection), iptables-1.8.11, libpsl-0.21.5, newt-0.52.24 (for nmtui), nss-3.106, Polkit-125 (kjøretid), PyGObject-3.50.0, elogind-255.5, Vala-0.56.17, og
wpa_supplicant-2.11 (kjøretid, bygd med
D-Bus støtte)
Valgfri
BlueZ-5.79, D-Bus Python-1.3.2 (for testpakken),
GnuTLS-3.8.8 (kan brukes i stedet for nss-3.106),
GTK-Doc-1.34.0, jansson-2.14,
ModemManager-1.18.12, UPower-1.90.6, Valgrind-3.24.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
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 &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D libaudit=no \
-D nmtui=true \
-D ovs=false \
-D ppp=false \
-D selinux=false \
-D session_tracking=elogind \
-D modem_manager=false \
-D systemdsystemunitdir=no \
-D systemd_journal=false \
-D qt=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.50.0}
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.50.0
Parameterforklaringer
--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 systemdsystemunitdir=no
og -D
systemd_journal=false
: systemd er ikke brukt til sysv
init systemer, så unngå å installere enheter og bruke systemd
journal.
-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=elogind
: Denne bryteren brukes til å
sette elogind 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
Qt 5 eksempler.
-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.6 installert og ønsker å
bruke den (i stedet for elogind-255.5 ) 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
Oppstartsskript
For å starte NetworkManager nissen
automatisk når systemet startes på nytt, installer /etc/rc.d/init.d/networkmanager
bootscript fra
blfs-bootscripts-20240913 pakken.
Notat
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.
make install-networkmanager
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.50.0,
/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
|