กลับไปหน้าบทความ

อ่าน 4 นาที

ผู้จัดการเครือข่าย

NetworkManager เป็น เดมอน ที่ทำงานอยู่บน libudev และอินเทอร์เฟซเคอร์เนล Linux อื่นๆ (และเดมอนอื่นๆ อีกสองสามตัว)...

ผู้จัดการเครือข่าย

ผู้จัดการเครือข่าย
ผู้เขียนต้นฉบับหมวกแดง
ปล่อย19 พฤศจิกายน 2547 ( 19 พฤศจิกายน 2547 )
เวอร์ชันเสถียร
1.56.1 [ 1 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 14 พฤษภาคม 2026 ( 14 พฤษภาคม 2569 )
เขียนเป็นCกับGObject
ระบบปฏิบัติการลินุกซ์[ 2 ]
พิมพ์
ใบอนุญาตGNU LGPL v2.1 หรือเวอร์ชันที่ใหม่กว่า บางส่วนเป็นGNU GPL v2 หรือเวอร์ชันที่ใหม่กว่า[ 3 ]
เว็บไซต์networkmanager .dev
ที่เก็บข้อมูล
  • gitlab.freedesktop.org/NetworkManager/NetworkManager.git

NetworkManagerเป็นเดมอนที่ทำงานอยู่บนlibudevและอินเทอร์เฟซเคอร์เนล Linux อื่นๆ (และเดมอนอื่นๆ อีกสองสามตัว) และมีอินเทอร์เฟซระดับสูงสำหรับการกำหนดค่าอินเทอร์เฟซเครือข่ายเพื่อลดความซับซ้อนในการใช้งานเครือข่ายคอมพิวเตอร์บนระบบปฏิบัติการLinux [ 2 ]

วิธีการทำงาน

NetworkManager เป็นโปรแกรมทำงานเบื้องหลังของระบบ (system daemon) โดยมีส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ให้เลือกใช้หลากหลายรูปแบบ
เคอร์เนลลินุกซ์: ไดรเวอร์อุปกรณ์เครือข่ายและสแต็กเครือข่าย โปรแกรมยูทิลิตี้ไม่ได้แสดงในภาพ เนื่องจากโปรแกรมเหล่านี้สื่อสารผ่าน SCI กับส่วนประกอบต่างๆ ของเคอร์เนล

เพื่อเชื่อมต่อคอมพิวเตอร์เข้าด้วยกัน ได้ มีการพัฒนา โปรโตคอลการสื่อสาร ต่างๆ ขึ้นมา เช่นIEEE 802.3 (อีเธอร์เน็ต), IEEE 802.11 ("ไร้สาย"), IEEE 802.15.1 (บลูทูธ), PPPoE , PPPoAเป็นต้น คอมพิวเตอร์แต่ละเครื่องที่เข้าร่วมจะต้องมีฮาร์ดแวร์ที่เหมาะสม เช่นการ์ดเครือข่ายหรือการ์ดเครือข่ายไร้สายและฮาร์ดแวร์นั้นจะต้องได้รับการกำหนดค่าให้ถูกต้องเพื่อให้สามารถสร้างการเชื่อมต่อได้

ในกรณีของเคอร์เนลแบบโมโนลิธิก ไดรเวอร์อุปกรณ์ทั้งหมดจะเป็นส่วนหนึ่งของเคอร์เนลนั้น ฮาร์ดแวร์จะถูกเข้าถึง (และกำหนดค่า) ผ่านไดรเวอร์อุปกรณ์ โดยใช้ยูทิลิตี้การกำหนดค่าเพื่อกำหนดค่าฮาร์ดแวร์ และโปรแกรมต่างๆ เช่นเว็บเบราว์เซอร์ / SSH / ไคลเอ็นต์ NTP / เป็นต้น เพื่อส่งและรับแพ็กเก็ตเครือข่าย

การกำหนดค่าอินเทอร์เฟซเครือข่ายโดยไม่ต้องใช้ NetworkManager

ในระบบปฏิบัติการ Linux และระบบปฏิบัติการที่คล้าย Unix ทั้งหมด ยูทิลิตี้ifconfigและยูทิลิตี้รุ่นใหม่กว่าip(จาก ชุด iproute2 ) ถูกใช้ในการกำหนดค่า ฮาร์ดแวร์ IEEE 802.3และIEEE 802.11ยูทิลิตี้เหล่านี้จะกำหนดค่าเคอร์เนลโดยตรง และการกำหนดค่าจะถูกนำไปใช้ทันที หลังจากบูตเครื่อง ผู้ใช้จะต้องกำหนดค่าอีกครั้ง

เพื่อใช้การกำหนดค่าแบบคงที่เดียวกันหลังจากการบูตแต่ละครั้ง โปรแกรม PID1 จะถูกใช้: System V initจะเรียกใช้สคริปต์เชลล์และโปรแกรมไบนารี ส่วนsystemdจะวิเคราะห์ไฟล์การกำหนดค่าของตัวเอง (และเรียกใช้โปรแกรม) การกำหนดค่าการบูตสำหรับอินเทอร์เฟซเครือข่ายจะถูกจัดเก็บไว้ใน/etc/network/interfacesสำหรับระบบปฏิบัติการ Debian Linux และอนุพันธ์ หรือifcfgไฟล์ใน/etc/sysconfig/network-scripts/สำหรับFedoraและอนุพันธ์ และเซิร์ฟเวอร์DNS/etc/resolv.confจะ อยู่ใน /etc/network/interfacesหรือ/etc/sysconfig/network-scripts/ifcfg-*สามารถกำหนดที่อยู่ IP แบบคงที่ ที่จะใช้ได้ และสามารถกำหนดค่า VPNdhclientทุกประเภทได้ที่นี่เช่นกัน

ในกรณีที่ต้องเปลี่ยนแปลงการตั้งค่า โปรโตคอล DHCPช่วยให้ดำเนินการดังกล่าวโดยอัตโนมัติได้อย่างมีประสิทธิภาพ โดยที่ผู้ใช้แทบไม่ต้องสังเกตเลย

การกำหนดค่าอินเทอร์เฟซเครือข่ายด้วย NetworkManager

  • สามารถเข้าถึง NetworkManager ได้ผ่านทางD- Bus
  • การกำหนดค่าจะถูกจัดเก็บไว้ใน/etc/NetworkManager/NetworkManager.conf

แต่เนื่องจากเราเปลี่ยนจากเซิร์ฟเวอร์ขนาดใหญ่มาเป็นโฮสต์แบบพกพาที่สามารถเสียบและถอดปลั๊กได้ (หรือย้ายจากจุดเชื่อมต่อ Wi-Fi หนึ่งไปยังอีกจุดหนึ่ง) ตามความต้องการของผู้ใช้ การกำหนดค่าแบบไดนามิก (เช่น ไม่ได้จัดเก็บไว้ในไฟล์การกำหนดค่าแบบคงที่ แต่ดึงมาจากภายนอกโฮสต์ และอาจเปลี่ยนแปลงได้หลังจากการบูต) จึงกลายเป็นรูปแบบการกำหนดค่าที่แพร่หลายมากขึ้นBootpเป็นโปรโตคอลแรกๆ ที่ใช้สำหรับเรื่องนี้ และจนถึงทุกวันนี้DHCP ซึ่งเป็นโปรโตคอลที่พัฒนาต่อยอดมาจาก Bootp ก็ยังคงใช้กันอย่างแพร่หลาย ระบบที่คล้าย Unix หลายระบบมีโปรแกรมที่เรียกว่าdhclientเพื่อจัดการการกำหนดค่าแบบไดนามิกนี้ สำหรับการกำหนดค่าแบบคงที่หรือแบบไดนามิกที่ไม่ซับซ้อน การกำหนดค่าแบบคงที่ที่แก้ไขโดยdhclientจะทำงานได้ดี อย่างไรก็ตาม เมื่อเครือข่ายและโครงสร้างของเครือข่ายมีความซับซ้อนมากขึ้น ตัวจัดการส่วนกลางสำหรับข้อมูลการกำหนดค่าเครือข่ายทั้งหมดจึงมีความสำคัญมากขึ้น

สถาปัตยกรรมซอฟต์แวร์

NetworkManager ประกอบด้วยสองส่วน:

  1. โปรแกรม NetworkManager ซึ่งเป็นโปรแกรมหลักที่ทำหน้าที่จัดการการเชื่อมต่อและรายงานการเปลี่ยนแปลงของเครือข่าย
  2. อิน เทอร์เฟซ แบบกราฟิกหรือแบบบรรทัดคำสั่ง
ส่วนติดต่อผู้ใช้แบบกราฟิกและส่วนติดต่อผู้ใช้แบบบรรทัดคำสั่ง
nm-applet
nm-applet เป็น GUI ที่ใช้ GTK 3 สำหรับ NetworkManager ซึ่งทำงานในถาดระบบ แอปเพล็ตนี้ได้รับการดูแลโดยโครงการ GNOME และสามารถใช้งานได้กับสภาพแวดล้อมเดสก์ท็อปใดๆ ที่ใช้โปรโตคอลถาดระบบ fd.o [ 4 ] (ยกเว้นGNOME Shellซึ่งมีการใช้งานในตัวอยู่แล้ว)
พลาสมา-นาโนเมตร
KDE Plasma 6มีแอปเพล็ตเฉพาะสำหรับกำหนดค่าการเชื่อมต่อผ่าน NetworkManager ที่ชื่อว่า plasma-nm แอปเพล็ตนี้ไม่ได้รวมอยู่ใน Plasma 6 โดยค่าเริ่มต้น
เอ็นเอ็มซีแอล
nmcli คืออิน เทอร์เฟซบรรทัดคำสั่งในตัวของ NetworkManager ที่เพิ่มเข้ามาในปี 2010 [ 5 ] nmcli ช่วยให้แสดงสถานะปัจจุบันของ NetworkManager จัดการการเชื่อมต่อและอุปกรณ์ ตรวจสอบการเชื่อมต่อได้ง่าย
เอ็มทุย
nmtui เป็นอินเทอร์เฟซผู้ใช้แบบข้อความ ในตัว สำหรับ NetworkManager เมื่อเทียบกับ nmcli แล้ว อินเทอร์เฟซนี้มีฟังก์ชันพื้นฐาน เนื่องจากอนุญาตให้ผู้ใช้เพิ่ม แก้ไข เปิดใช้งาน และปิดใช้งานการเชื่อมต่อ ตั้งชื่อโฮสต์ของระบบ และเปิดใช้งานและปิดใช้งานวิทยุเท่านั้น[ 6 ]ไม่อนุญาตให้ตั้งค่าการเชื่อมต่อแบบใช้สายWPA-EnterpriseหรือVPNสามารถใช้การเชื่อมต่อที่กำหนดค่าไว้ล่วงหน้าได้[ 7 ]
ผู้จัดการเครือข่าย
cnetworkmanager เป็น CLI ที่ใช้ Pythonสำหรับ NetworkManager ซึ่งเขียนโดย Martin Vidner การคอมมิตครั้งสุดท้ายของโครงการคือในเดือนสิงหาคม 2010 เวอร์ชันสุดท้าย (0.21.1) ได้รับการเผยแพร่ในเดือนสิงหาคม 2009 [ 8 ]

การสนับสนุนบรอดแบนด์มือถือ

NetworkManager ใช้ร่วมกับ ModemManager [ 9 ]และแพ็คเกจ PPP ของ Paul [ 10 ]เพื่อรองรับ WWAN / บรอดแบนด์มือถือ

Antti Kaijanmäki ประกาศการพัฒนาตัวช่วยการกำหนดค่าบรอดแบนด์มือถือสำหรับ NetworkManager ในเดือนเมษายน พ.ศ. 2551 [ 11 ]การเปลี่ยนแปลงที่จำเป็นได้ดำเนินการกับ NetworkManager ในเวอร์ชัน 0.7.1 [ 12 ]

ประวัติศาสตร์

Red Hatเริ่มโครงการ NetworkManager ในปี 2004 โดยมีเป้าหมายเพื่อให้ผู้ใช้ Linux สามารถจัดการกับความต้องการด้านเครือข่ายสมัยใหม่ได้ง่ายขึ้น โดยเฉพาะอย่างยิ่งเครือข่ายไร้สาย NetworkManager ใช้แนวทางแบบฉวยโอกาสในการเลือกเครือข่าย โดยพยายามใช้การเชื่อมต่อที่ดีที่สุดที่มีอยู่เมื่อเกิดปัญหาขัดข้อง หรือเมื่อผู้ใช้เปลี่ยนไปใช้เครือข่ายไร้สายอื่น ๆ มันจะเลือกใช้ การเชื่อมต่อ Ethernetมากกว่าเครือข่ายไร้สายที่ "รู้จัก" ซึ่งจะดีกว่าเครือข่ายไร้สายที่มีSSIDที่ผู้ใช้ไม่เคยเชื่อมต่อมาก่อน ผู้ใช้จะถูกขอให้ป้อน รหัส WEPหรือWPAเมื่อจำเป็น

โครงการ NetworkManager เป็นหนึ่งในส่วนประกอบเดสก์ท็อป Linux หลักกลุ่มแรกที่ใช้D-BusและHALอย่างกว้างขวาง อย่างไรก็ตาม ตั้งแต่เดือนมิถุนายน พ.ศ. 2552 NetworkManager ไม่ได้ขึ้นอยู่กับ HAL อีกต่อไป และตั้งแต่เวอร์ชัน 0.9.10 (ประมาณปี พ.ศ. 2557) ก็ไม่จำเป็นต้องมี daemon D-Bus ทำงานเพื่อการดำเนินการ root อีกต่อไป[ 13 ]

ดูเพิ่มเติม

  • ลินุกซ์บนเดสก์ท็อป  – ภาพรวมการใช้งานลินุกซ์
  • BlueZ  – ซอฟต์แวร์ระบบที่ใช้งานฟังก์ชันบลูทูธ
  • GNOME Keyring Manager  – ซอฟต์แวร์จัดการรหัสผ่านสำหรับ Linux
  • usbserial  – ไลบรารีซอฟต์แวร์ Unix
  • Wicd – โปรแกรมจัดการเครือข่ายที่เขียนด้วยภาษา Python
  • wpa_supplicant  – การใช้งานแบบโอเพนซอร์สของมาตรฐาน IEEE 802.11i
  • wvdial  – โปรแกรมคอมพิวเตอร์สำหรับช่วยในการเชื่อมต่อโมเด็ม
  • netifd – โปรแกรมทำงานเบื้องหลังขนาดเล็กที่มีความสามารถในการรับฟังเหตุการณ์ netlink ไม่จำเป็นต้องใช้D-Busไม่ขึ้นอยู่กับGLibและมุ่งเป้าไปที่อุปกรณ์ฝังตัว
  • ConnMan – โปรแกรมจัดการการเชื่อมต่ออินเทอร์เน็ตภายในอุปกรณ์ฝังตัว
  • หน้าแรกของ NetworkManager
  • ฐานข้อมูลผู้ให้บริการ
  • NetworkManager ใน freedesktop.org
  • สถานะของ NetworkManager ในรายชื่อผู้รับจดหมาย freebsd-gnome
  • หน้าเว็บ NetworkManager ต้นฉบับที่ redhat.com ผ่านทาง WaybackMachine
  • ประกาศการเปิดตัว NetworkManager เวอร์ชันแรกสู่สาธารณะ
  • วิธีใช้งานอินเทอร์เฟซ WiFi กับ NetworkManager
  • NetworkManager บน Arch Wiki
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=NetworkManager&oldid=1359783081 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ผู้จัดการเครือข่าย

NetworkManager เป็น เดมอน ที่ทำงานอยู่บน libudev และอินเทอร์เฟซเคอร์เนล Linux อื่นๆ (และเดมอนอื่นๆ อีกสองสามตัว)...

วิธีการทำงาน

เพื่อเชื่อมต่อคอมพิวเตอร์เข้าด้วยกัน ได้ มีการพัฒนา โปรโตคอลการสื่อสาร ต่างๆ ขึ้นมา เช่น IEEE 802.3 (อีเธอร์เน็ต), IEEE 802.11 ("ไร้สาย"), IEEE 802.15.

การกำหนดค่าอินเทอร์เฟซเครือข่ายโดยไม่ต้องใช้ NetworkManager

ในระบบปฏิบัติการ Linux และระบบปฏิบัติการที่คล้าย Unix ทั้งหมด ยูทิลิตี้ ifconfig และยูทิลิตี้รุ่นใหม่กว่า ip (จาก ชุด iproute2 ) ถูกใช้ในการกำหนดค่า ฮาร์ดแวร์ IEEE 802.3 และ IEEE 802.

การกำหนดค่าอินเทอร์เฟซเครือข่ายด้วย NetworkManager

แต่เนื่องจากเราเปลี่ยนจากเซิร์ฟเวอร์ขนาดใหญ่มาเป็นโฮสต์แบบพกพาที่สามารถเสียบและถอดปลั๊กได้ (หรือย้ายจากจุดเชื่อมต่อ Wi-Fi หนึ่งไปยังอีกจุดหนึ่ง) ตามความต้องการของผู้ใช้ การกำหนดค่าแบบไดนามิก (เช่น ไม่ได้จัดเก็บไว้ในไฟล์การกำหนดค่าแบบคงที่...