تنظیم شبکه در Debian
آموزش تنظیم شبکه در Debian با ifupdown، NetworkManager و systemd-networkd: IP ثابت، DHCP، DNS، Wi-Fi و رفع خطاهای رایج.
تنظیم شبکه در Debian میتواند با یکی از سه ابزار اصلی انجام شود: ifupdown (کلاسیک، برای سرور)، NetworkManager (برای دسکتاپ) یا systemd-networkd (مدرن). در این آموزش با هر سه روش آشنا میشوید.
ابزارهای مدیریت شبکه در Debian
| ابزار | کاربرد | مناسب برای |
|---|---|---|
ifupdown | شبکهٔ کلاسیک با /etc/network/interfaces | سرور |
NetworkManager | شبکهٔ گرافیکی و پویا | دسکتاپ، لپتاپ |
systemd-networkd | شبکهٔ مدرن systemd | سرور، container |
netplan | لایهٔ بالاتر (پیشفرض Ubuntu، اختیاری در Debian) | Ubuntu، سرورهای خاص |
انتخاب ابزار درست
در نصب سرور Debian، ifupdown بهطور پیشفرض فعال است. در نصب دسکتاپ، NetworkManager نصب میشود. اگر هر دو فعال باشند، ممکن است تداخل ایجاد کنند. همیشه فقط یک ابزار را برای هر رابط شبکه فعال کنید.
بررسی وضعیت شبکه
پیش از هر چیز، وضعیت فعلی شبکه را بررسی کنید:
# لیست رابطهای شبکه
ip link show
# آدرسهای IP اختصاصیافته
ip addr show
# جدول مسیریابی
ip route
# DNS فعلی
cat /etc/resolv.conf
# تست اتصال
ping -c 3 8.8.8.8
ping -c 3 deb.debian.org# خروجی نمونه ip link show:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 ...
link/ether 00:11:22:33:44:55نام رابطها
در Debian مدرن، رابطهای شبکه بهجای نامهای قدیمی eth0 و wlan0، از نامهای پیشبینیشدهٔ systemd استفاده میکنند: ens18، enp3s0، wlp3s0 و... این نامها بر اساس موقعیت فیزیکی کارت شبکه در PCI/USB ساخته میشوند و پایدارترند.
روش ۱: ifupdown (سرور)
ifupdown ابزار کلاسیک شبکه در Debian است که با فایل /etc/network/interfaces پیکربندی میشود.
DHCP (پیشفرض)
# /etc/network/interfaces
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto ens18
iface ens18 inet dhcp# اعمال تغییرات
sudo systemctl restart networking
# یا
sudo ifdown ens18 && sudo ifup ens18IP ثابت
# /etc/network/interfaces
auto ens18
iface ens18 inet static
address 192.168.1.10/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8 1.1.1.1
dns-search example.comتوجه به DNS
در ifupdown، گزینهٔ dns-nameservers نیاز به بستهٔ resolvconf دارد. اگر این بسته نصب نباشد، DNS بهصورت خودکار به /etc/resolv.conf نوشته نمیشود. در این صورت، DNS را دستی در /etc/resolv.conf تنظیم کنید.
چندین IP روی یک رابط
auto ens18
iface ens18 inet static
address 192.168.1.10/24
gateway 192.168.1.1
iface ens18 inet static
address 192.168.1.11/24VLAN
# نصب بستهٔ vlan
# sudo apt install vlan
auto ens18.10
iface ens18.10 inet static
address 10.0.10.1/24
vlan-raw-device ens18Bridging
# نصب بستهٔ bridge-utils
# sudo apt install bridge-utils
auto br0
iface br0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
bridge_ports ens18
bridge_stp off
bridge_fd 0رابطهای جدا در /etc/network/interfaces.d/
برای مدیریت بهتر، هر رابط را در یک فایل جداگانه بسازید:
sudo nano /etc/network/interfaces.d/ens18# /etc/network/interfaces.d/ens18
auto ens18
iface ens18 inet static
address 192.168.1.10/24
gateway 192.168.1.1روش ۲: NetworkManager (دسکتاپ)
NetworkManager برای دسکتاپها و لپتاپها طراحی شده و مدیریت Wi-Fi، VPN و اتصال پویا را آسان میکند.
نصب و فعالسازی
# نصب
sudo apt install network-manager
# فعالسازی
sudo systemctl enable --now NetworkManager
# اگر از ifupdown استفاده میکردید، آن را برای رابطهای مدیریتشده غیرفعال کنید
sudo nano /etc/network/interfaces
# تمام خطوط auto/iface (بهجز lo) را کامنت کنیداستفاده با nmcli
# لیست اتصالها
nmcli connection show
# لیست رابطها و وضعیت
nmcli device status
# اتصال به Wi-Fi
nmcli device wifi connect "MyNetwork" password "mypassword"
# ساخت اتصال IP ثابت
nmcli connection add type ethernet con-name "static" ifname ens18 ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 1.1.1.1"
# فعالسازی اتصال
nmcli connection up "static"
# قطع اتصال
nmcli connection down "static"استفاده با nmtui (رابط متنی)
# اجرای رابط متنی
sudo nmtuinmtui یک منوی تعاملی برای ویرایش اتصالها، فعالسازی و تنظیم hostname فراهم میکند.
nmtui بهترین دوست شما در سرور
اگر روی سرور بدون GUI از NetworkManager استفاده میکنید، nmtui سادهترین راه برای پیکربندی است. نیازی به حفظ دستورات پیچیده nmcli نیست.
روش ۳: systemd-networkd (مدرن)
systemd-networkd ابزار شبکهٔ داخلی systemd است که برای سرورها و containerها سبک و مناسب است.
فعالسازی
# فعالسازی سرویسها
sudo systemctl enable --now systemd-networkd
sudo systemctl enable --now systemd-resolved
# همگامسازی resolv.conf
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.confپیکربندی رابط
# ساخت فایل پیکربندی برای رابط ens18
sudo nano /etc/systemd/network/10-ens18.network# /etc/systemd/network/10-ens18.network
[Match]
Name=ens18
[Network]
DHCP=yes
# یا برای IP ثابت:
# Address=192.168.1.10/24
# Gateway=192.168.1.1
# DNS=8.8.8.8
# DNS=1.1.1.1# بارگذاری مجدد
sudo systemctl restart systemd-networkdتنظیم DNS
DNS در Debian از طریق /etc/resolv.conf پیکربندی میشود. اما این فایل معمولاً توسط ابزار مدیریت شبکه بازنویسی میشود:
# بررسی DNS فعلی
cat /etc/resolv.conf
# nameserver 8.8.8.8
# nameserver 1.1.1.1
# search example.comتنظیم DNS با resolvconf
# نصب
sudo apt install resolvconf
# پیکربندی
sudo nano /etc/resolvconf/resolv.conf.d/head
# nameserver 8.8.8.8
# nameserver 1.1.1.1
# اعمال
sudo resolvconf -uتنظیم DNS با systemd-resolved
# فعالسازی
sudo systemctl enable --now systemd-resolved
# همگامسازی
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
# تنظیم DNS
sudo nano /etc/systemd/resolved.conf# /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 1.1.1.1
FallbackDNS=8.8.4.4
Domains=example.com
DNSSEC=allow-downgrade
DNSOverTLS=opportunisticsudo systemctl restart systemd-resolvedhostname و /etc/hosts
# تنظیم hostname
sudo hostnamectl set-hostname debian-server
# بررسی
hostnamectl
# فایل /etc/hosts
cat /etc/hosts
# 127.0.0.1 localhost
# 127.0.1.1 debian-serverhostname در /etc/hosts مهم است
اگر hostname شما در /etc/hosts نباشد، بسیاری از برنامهها (از جمله sudo) هشدار میدهند. همیشه مطمئن شوید hostname در /etc/hosts به 127.0.1.1 (نه 127.0.0.1) نگاشت شده است.
ابزارهای عیبیابی
# تست اتصال
ping -c 3 8.8.8.8
# تست DNS
nslookup deb.debian.org
dig deb.debian.org
# مسیر شبکه
traceroute deb.debian.org
# پورتهای باز
sudo ss -tlnp
# جدول مسیریابی
ip route
# لاگهای شبکه
journalctl -u networking
journalctl -u NetworkManager
journalctl -u systemd-networkdخطاهای رایج
۱. "Temporary failure in name resolution"
علت: DNS تنظیم نشده یا غیرفعال است.
راهحل:
# بررسی resolv.conf
cat /etc/resolv.conf
# تنظیم موقت
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
# تنظیم دائمی با resolvconf یا systemd-resolved۲. رابط DOWN است
# بررسی وضعیت
ip link show ens18
# بالا آوردن دستی
sudo ip link set ens18 up
# یا با ifup
sudo ifup ens18۳. تعارض NetworkManager و ifupdown
علت: هر دو ابزار سعی میکنند رابط را مدیریت کنند.
راهحل:
# غیرفعالکردن ifupdown برای رابطهای مدیریتشده توسط NM
sudo nano /etc/network/interfaces
# فقط lo را نگه دارید:
# auto lo
# iface lo inet loopback
# یا غیرفعالکردن کامل ifupdown
sudo systemctl disable networking۴. Wi-Fi کار نمیکند
# بررسی رابط Wi-Fi
ip link show wlp3s0
# بررسی فریمور
sudo dmesg | grep -i firmware
# نصب فریمورهای غیرآزاد
sudo apt install firmware-iwlwifi firmware-realtek firmware-linux-nonfree
# اسکن شبکهها
nmcli device wifi list
# اتصال
nmcli device wifi connect "SSID" password "password"۵. IP ثابت اعمال نمیشود
# بررسی فایل پیکربندی
cat /etc/network/interfaces
# بررسی خطا
sudo ifup -v ens18
# بررسی لاگ
journalctl -u networking -n 30خلاصه و مرحلهٔ بعد
تنظیم شبکه در Debian به ابزار مورد استفاده بستگی دارد: ifupdown برای سرور، NetworkManager برای دسکتاپ و systemd-networkd برای سرورهای مدرن. برای اکثر کاربران دسکتاپ، NetworkManager با nmtui سادهترین راه است. برای سرورها، ifupdown یا systemd-networkd پایدارترند.
بهعنوان گام بعدی:
- آموزش SSH را برای ورود از راه دور بخوانید
- آموزش نصب سرور را برای پیکربندی اولیه ببینید
- آموزش systemd را برای مدیریت سرویسها مرور کنید
این صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.