</>

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

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

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

Command Palette

Search for a command to run...

Static IP در Gentoo — پیکربندی IP ثابت با netifrc و systemd-networkd

آموزش کامل IP استاتیک در Gentoo: پیکربندی /etc/conf.d/net با netifrc، systemd-networkd، NetworkManager با nmcli، تنظیم DNS و خطاهای رایج.

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

برای اکثر کلاینت‌های دسکتاپ DHCP کافی است؛ اما برای سرورها، دستگاه‌های شبکه‌ای و سرویس‌هایی که به آدرس پایدار نیاز دارند، IP استاتیک ضروری است. در این مستند سه روش اصلی پیکربندی IP ثابت در Gentoo را مرور می‌کنیم: netifrc، systemd-networkd و NetworkManager.

چه زمانی از Static IP استفاده کنیم؟#

سناریوچرا Static؟
سرور SSHآدرس پایدار برای اتصال از راه دور
سرور وب/پایگاه دادهدی‌ان‌اس به IP ثابت اشاره می‌کند
روتر داخلیرابط باید قابل‌پیش‌بینی باشد
چاپگر شبکههمه باید بدانند چاپگر کجاست
سرور فایل (NFS/Samba)کلاینت‌ها به IP متصل می‌شوند
سیستم بدون سرور DHCPمثلاً وقتی روتر DHCP ارائه نمی‌دهد

رزرو DHCP در برابر Static

در شبکه‌های دارای سرور DHCP می‌توان به‌جای Static IP از «رزرو DHCP» (DHCP reservation) بر اساس MAC استفاده کرد؛ یعنی سرور DHCP همیشه همان IP را به همان MAC اختصاص می‌دهد. این روش مدیریت متمرکز را حفظ می‌کند. Static IP واقعی برای زمانی مناسب است که سرور DHCP در دسترس نیست یا نمی‌خواهید به آن وابسته باشید.

روش ۱: netifrc (پیش‌فرض OpenRC)#

پیکربندی IP استاتیک با netifrc در فایل /etc/conf.d/net انجام می‌شود. سه متغیر اصلی وجود دارد: آدرس، مسیر و DNS.

# ویرایش پیکربندی
nano /etc/conf.d/net

نمونه کامل پیکربندی:

# /etc/conf.d/net
 
# آدرس IP و netmask به فرمت CIDR
config_enp3s0="192.168.1.10/24"
 
# default gateway
routes_enp3s0="default via 192.168.1.1"
 
# سرورهای DNS
dns_servers_enp3s0="8.8.8.8 1.1.1.1"
 
# اگر چند آدرس IP دارید:
# config_enp3s0="
#   192.168.1.10/24
#   192.168.2.10/24
# "

سپس رابط را فعال کنید:

# ساخت اسکریپت init برای رابط (اگر قبلاً ساخته نشده)
ln -s /etc/init.d/net.lo /etc/init.d/net.enp3s0
 
# افزودن به runlevel پیش‌فرض
rc-update add net.enp3s0 default
 
# شروع سرویس
rc-service net.enp3s0 start
# خروجی:
#  * Bringing up interface enp3s0
#  *   192.168.1.10/24 ...                              [ ok ]
#  *   Adding routes
#  *     default via 192.168.1.1 ...                    [ ok ]

برای اطمینان از نوشته‌شدن /etc/resolv.conf، بستهٔ net-dns/openresolv معمولاً نصب است. اگر نبود، می‌توانید دستی بنویسید:

# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 1.1.1.1
search example.local

CIDR به جای netmask

از فرمت CIDR مانند 192.168.1.10/24 استفاده کنید که هم خواناتر است و هم با ابزارهای مدرن (iproute2) سازگارتر است. مقدار 24 معادل netmask 255.255.255.0 است.

روش ۲: systemd-networkd#

در پروفایل systemd، systemd-networkd راه پیشنهادی است. یک فایل .network بسازید:

mkdir -p /etc/systemd/network
nano /etc/systemd/network/20-wired.network
# /etc/systemd/network/20-wired.network
[Match]
Name=enp3s0
 
[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=1.1.1.1
Domains=example.local
 
# اگر چند آدرس دارید:
# Address=192.168.2.10/24

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

# فعال‌سازی سرویس‌ها
systemctl enable --now systemd-networkd
systemctl enable --now systemd-resolved
 
# اعمال مجدد پیکربندی
systemctl restart systemd-networkd
 
# بررسی وضعیت
networkctl status enp3s0
# خروجی:
# * Interface: enp3s0
#     State: routable (configured)
# Online state: online
#     Address: 192.168.1.10 (static)
#         Gateway: 192.168.1.1
#             DNS: 8.8.8.8
#                  1.1.1.1

systemd-resolved و resolv.conf

وقتی systemd-resolved فعال است، /etc/resolv.conf به‌طور خودکار به stub در 127.0.0.53 اشاره می‌کند. اگر برنامه‌ای مستقیماً /etc/resolv.conf را می‌خواند، symlink را با ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf به‌روز کنید.

روش ۳: NetworkManager با nmcli#

برای دسکتاپ و لپ‌تاپ، می‌توانید پروفایل اتصال را به‌صورت استاتیک تغییر دهید:

# بررسی اتصال موجود
nmcli connection show
# NAME                TYPE      DEVICE
# Wired connection 1  ethernet  enp3s0
 
# تنظیم IP، gateway و DNS
nmcli connection modify "Wired connection 1" \
  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" \
  ipv4.dns-search example.local
 
# اعمال
nmcli connection up "Wired connection 1"
 
# بررسی
nmcli device show enp3s0
# IP4.ADDRESS: 192.168.1.10/24
# IP4.GATEWAY: 192.168.1.1
# IP4.DNS:     8.8.8.8 1.1.1.1

مقایسه روش‌ها#

روشفایل پیکربندیمزیتمعایب
netifrc/etc/conf.d/netسبک، سازگار با OpenRCگرامر خاص
systemd-networkd/etc/systemd/network/*.networkیکپارچه با systemdفقط پروفایل systemd
NetworkManagerپروفایل در /etc/NetworkManager/system-connections/رابط گرافیکی، پشتیبانی از Wi-Fiسنگین‌تر برای سرور

بررسی اتصال#

پس از پیکربندی، اتصال را تست کنید:

# آدرس IP
ip -4 addr show enp3s0
# inet 192.168.1.10/24 scope global enp3s0
 
# مسیرها
ip route
# default via 192.168.1.1 dev enp3s0
 
# DNS
cat /etc/resolv.conf
# nameserver 8.8.8.8
 
# تست gateway
ping -c 3 192.168.1.1
 
# تست اینترنت
ping -c 3 gentoo.org

خطاهای رایج#

۱. gateway در دسترس نیست#

ping 192.168.1.1
# connect: Network is unreachable

دلیل: آدرس gateway در subnet رابط نیست یا اشتباه نوشته شده است. راه‌حل:

# بررسی آدرس و gateway
ip addr show enp3s0
ip route
 
# اگر gateway در subnet نبود، اصلاح کنید
# مثال غلط: IP 192.168.1.10/24 با gateway 10.0.0.1
# مثال درست: gateway باید 192.168.1.x باشد

۲. آدرس IP تکراری (Duplicate)#

Sep 12 10:23:11 host kernel: ARP: duplicate IP address detected!

دلیل: دستگاه دیگری در شبکه همین IP را دارد. راه‌حل:

# بررسی دستگاه دارای IP
arping -D -I enp3s0 -c 2 192.168.1.10
# اگر پاسخ گرفتید، IP درگیر است
 
# راه‌حل: IP دیگری انتخاب کنید
nano /etc/conf.d/net
# config_enp3s0="192.168.1.11/24"

۳. DNS کار نمی‌کند با IP استاتیک#

دلیل: متغیر dns_servers_ در netifrc نوشته نشده یا openresolv نصب نیست. راه‌حل:

# نصب openresolv
emerge --ask net-dns/openresolv
 
# یا نوشتن مستقیم resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
 
# ری‌استارت سرویس
rc-service net.enp3s0 restart

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

IP استاتیک برای سرورها و دستگاه‌های شبکه‌ای ضروری است. در Gentoo سه روش اصلی وجود دارد: netifrc با فایل /etc/conf.d/net برای OpenRC، systemd-networkd با فایل‌های .network برای پروفایل systemd و NetworkManager با nmcli برای دسکتاپ. مهم‌ترین نکته این که آدرس، gateway و DNS همگی باید با هم سازگار باشند.

برای پیکربندی DHCP به آموزش DHCP و برای کلیات مدیریت شبکه به آموزش Networking مراجعه کنید.

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

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