</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

تنظیم شبکه در Ubuntu

آموزش کامل تنظیم شبکه در Ubuntu با Netplan و NetworkManager: IP ثابت، DHCP، DNS، Wi-Fi، Bridge، VLAN و رفع خطاهای رایج.

متوسط۷ دقیقه مطالعهآخرین بروزرسانی: ۹ تیر ۱۴۰۵ویرایش در گیت‌هاب

Ubuntu از نسخهٔ ۱۷.۱۰ به بعد، به‌طور پیش‌فرض از Netplan برای پیکربندی شبکه استفاده می‌کند. Netplan یک لایهٔ بالاتر است که پیکربندی YAML را به تنظیمات NetworkManager یا systemd-networkd تبدیل می‌کند. در این آموزش با هر دو و سناریوهای رایج شبکه آشنا می‌شوید.

ابزارهای مدیریت شبکه در Ubuntu#

ابزارکاربردمناسب برای
Netplanپیکربندی YAML به NetworkManager/networkdسرور و دسکتاپ
NetworkManagerشبکهٔ گرافیکی و پویادسکتاپ، لپ‌تاپ
systemd-networkdشبکهٔ systemdسرور، container

Netplan فرانت‌اند است

Netplan خودش backend شبکه نیست. Netplan پیکربندی YAML شما را به یکی از دو backend تبدیل می‌کند:

  • NetworkManager — در Ubuntu Desktop پیش‌فرض
  • systemd-networkd — در Ubuntu Server پیش‌فرض

این یعنی شما با Netplan کار می‌کنید، اما در پس‌زمینه NetworkManager یا networkd اجرا می‌شود.

بررسی وضعیت شبکه#

پیش از هر چیز، وضعیت فعلی شبکه را بررسی کنید:

# لیست رابط‌های شبکه
ip link show
 
# آدرس‌های IP اختصاص‌یافته
ip addr show
 
# جدول مسیریابی
ip route
 
# DNS فعلی
cat /etc/resolv.conf
 
# تست اتصال
ping -c 3 8.8.8.8
ping -c 3 ubuntu.com
# خروجی نمونه 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

نام رابط‌ها

در Ubuntu مدرن، رابط‌های شبکه به‌جای نام‌های قدیمی eth0 و wlan0، از نام‌های پیش‌بینی‌شدهٔ systemd استفاده می‌کنند: ens18، enp3s0، wlp3s0 و... این نام‌ها بر اساس موقعیت فیزیکی کارت شبکه در PCI/USB ساخته می‌شوند و پایدارترند.

فایل‌های Netplan#

فایل‌های پیکربندی Netplan در /etc/netplan/ قرار دارند:

# لیست فایل‌های Netplan
ls /etc/netplan/
# 01-network-manager-all.yaml  (در Desktop)
# 50-cloud-init.yaml           (در سرورهای cloud)
# 01-netcfg.yaml               (نصب سنتی)
 
# مشاهدهٔ فایل
cat /etc/netplan/01-network-manager-all.yaml
# /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  renderer: NetworkManager

روش ۱: Netplan با NetworkManager (دسکتاپ)#

در Ubuntu Desktop، NetworkManager به‌طور پیش‌فرض فعال است. شما می‌توانید از رابط گرافیکی یا nmcli/nmtui استفاده کنید:

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"
 
# مشاهدهٔ شبکه‌های Wi-Fi
nmcli device wifi list

nmtui — رابط متنی#

# اجرای رابط متنی
sudo nmtui

nmtui یک منوی تعاملی برای ویرایش اتصال‌ها، فعال‌سازی و تنظیم hostname فراهم می‌کند.

nmtui بهترین دوست شما در سرور

اگر روی سرور بدون GUI از NetworkManager استفاده می‌کنید، nmtui ساده‌ترین راه برای پیکربندی است. نیازی به حفظ دستورات پیچیده nmcli نیست.

روش ۲: Netplan با systemd-networkd (سرور)#

در Ubuntu Server، systemd-networkd به‌طور پیش‌فرض فعال است. فایل Netplan را برای پیکربندی ویرایش کنید:

DHCP (پیش‌فرض)#

# ویرایش فایل Netplan
sudo nano /etc/netplan/01-netcfg.yaml
# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: true

IP ثابت#

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
      search: [example.com]

اعمال تغییرات#

# تست پیکربندی (دستور در ۱۲۰ ثانیه به حالت قبل برمی‌گردد)
sudo netplan try
 
# اعمال دائمی
sudo netplan apply
 
# دیباگ
sudo netplan --debug apply

همیشه netplan try استفاده کنید

اگر دسترسی از راه دور (SSH) دارید، همیشه sudo netplan try را اجرا کنید. این دستور پیکربندی را اعمال می‌کند و اگر اتصال شما قطع شود، پس از ۱۲۰ ثانیه به‌طور خودکار به پیکربندی قبلی برمی‌گردد. این کار از قفل شدن شما خارج از سرور جلوگیری می‌کند.

تنظیمات پیشرفته Netplan#

چندین IP روی یک رابط#

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      addresses:
        - 192.168.1.10/24
        - 192.168.1.11/24
        - 10.0.0.5/24
      routes:
        - to: default
          via: 192.168.1.1

VLAN#

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      addresses: [192.168.1.10/24]
  vlans:
    ens18.10:
      id: 10
      link: ens18
      addresses: [10.0.10.1/24]

Bridge (برای KVM و ماشین مجازی)#

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: false
  bridges:
    br0:
      interfaces: [ens18]
      addresses: [192.168.1.10/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
      parameters:
        stp: false
        forward-delay: 0

Bonding (تجمیع چند NIC)#

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18: {}
    ens19: {}
  bonds:
    bond0:
      interfaces: [ens18, ens19]
      addresses: [192.168.1.10/24]
      routes:
        - to: default
          via: 192.168.1.1
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100

تنظیم DNS#

DNS در Ubuntu از طریق Netplan و systemd-resolved مدیریت می‌شود:

# بررسی DNS فعلی
resolvectl status
 
# تست DNS
resolvectl query ubuntu.com

تنظیم DNS در Netplan#

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      addresses: [192.168.1.10/24]
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
        search: [example.com, home]

فعال‌کردن systemd-resolved#

# فعال‌سازی
sudo systemctl enable --now systemd-resolved
 
# همگام‌سازی با /etc/resolv.conf
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

hostname و /etc/hosts#

# تنظیم hostname
sudo hostnamectl set-hostname ubuntu-server
 
# بررسی
hostnamectl
 
# فایل /etc/hosts
cat /etc/hosts
# 127.0.0.1   localhost
# 127.0.1.1   ubuntu-server

hostname در /etc/hosts مهم است

اگر hostname شما در /etc/hosts نباشد، بسیاری از برنامه‌ها (از جمله sudo) هشدار می‌دهند. همیشه مطمئن شوید hostname در /etc/hosts به 127.0.1.1 (نه 127.0.0.1) نگاشت شده است.

Wi-Fi در سرور (بدون GUI)#

# /etc/netplan/02-wifi.yaml
network:
  version: 2
  renderer: networkd
  wifis:
    wlp3s0:
      dhcp4: true
      access-points:
        "MyNetwork":
          password: "mypassword"
# نیاز به بستهٔ wpa_supplicant
sudo apt install -y wpasupplicant
 
# اعمال
sudo netplan apply

ابزارهای عیب‌یابی#

# تست اتصال
ping -c 3 8.8.8.8
 
# تست DNS
nslookup ubuntu.com
dig ubuntu.com
 
# مسیر شبکه
traceroute ubuntu.com
mtr ubuntu.com
 
# پورت‌های باز
sudo ss -tlnp
 
# جدول مسیریابی
ip route
 
# لاگ‌های شبکه
journalctl -u systemd-networkd
journalctl -u NetworkManager
journalctl -u systemd-resolved

خطاهای رایج#

۱. "Temporary failure in name resolution"#

علت: DNS تنظیم نشده یا غیرفعال است.

راه‌حل:

# بررسی resolv.conf
cat /etc/resolv.conf
 
# تنظیم موقت
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
 
# تنظیم دائمی با Netplan (در فایل YAML)
# nameservers:
#   addresses: [8.8.8.8, 1.1.1.1]

۲. رابط DOWN است#

# بررسی وضعیت
ip link show ens18
 
# بالا آوردن دستی
sudo ip link set ens18 up
 
# بررسی لاگ
journalctl -u systemd-networkd

۳. خطای Netplan YAML#

Error in network definition: invalid YAML

راه‌حل: فایل YAML را با دستور زیر بررسی کنید:

# بررسی syntax
sudo netplan generate
 
# اجرای با debug
sudo netplan --debug apply

تورفتگی در YAML مهم است

YAML به تورفتگی (indentation) حساس است. همیشه از فاصله (space) استفاده کنید، نه tab. هر سطح تورفتگی ۲ فاصله است. اگر خطا دارید، اول تورفتگی را بررسی کنید.

۴. تعارض NetworkManager و Netplan networkd#

علت: هر دو ابزار سعی می‌کنند رابط را مدیریت کنند.

راه‌حل: در فایل Netplan، مشخص کنید کدام renderer استفاده شود:

# برای دسکتاپ
network:
  version: 2
  renderer: NetworkManager
 
# برای سرور
network:
  version: 2
  renderer: networkd

۵. Wi-Fi کار نمی‌کند#

# بررسی رابط Wi-Fi
ip link show wlp3s0
 
# بررسی فریم‌ور
sudo dmesg | grep -i firmware
 
# نصب فریم‌ورهای وایرلس
sudo apt install -y linux-firmware firmware-iwlwifi firmware-realtek
 
# اسکن شبکه‌ها
nmcli device wifi list
 
# اتصال
nmcli device wifi connect "SSID" password "password"

۶. cloud-init تنظیمات Netplan را override می‌کند#

در سرورهای ابری، cloud-init ممکن است تنظیمات Netplan شما را بازنویسی کند:

# غیرفعال‌کردن cloud-init برای شبکه
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}

خلاصه و مرحلهٔ بعد#

تنظیم شبکه در Ubuntu به Netplan به‌عنوان فرانت‌اند و یکی از دو backend NetworkManager (دسکتاپ) یا systemd-networkd (سرور) بستگی دارد. برای اکثر کاربران دسکتاپ، NetworkManager با nmtui ساده‌ترین راه است. برای سرورها، Netplan با systemd-networkd پایدارتر است.

به‌عنوان گام بعدی:

اشتراک‌گذاری:

این صفحه در تاریخ ۹ تیر ۱۴۰۵ به‌روزرسانی شده است.