بدون اتصال شبکه، سرور نمی تواند کار کند. در اینجا چیزی است که برای پیکربندی شبکه ها در اوبونتو از خط فرمان باید بدانید.
سرورهای اوبونتو با برخی ابزارهای کاربردی برای پیکربندی شبکه ارائه می شوند. با این حال، برخی از موضوعات پیکربندی شبکه اوبونتو وجود دارد که مدیران سرور باید به آنها مسلط باشند. این شامل دانستن نحوه پیکربندی دستگاه های شبکه از خط فرمان است.
برای مدیریت پیکربندی شبکه سرور اوبونتو از طریق خط فرمان، دانستن مفاهیمی مانند رابط های اترنت، آدرس دهی IP، پل زدن و وضوح نام بسیار مهم است. اینجا یک پرایمر است.
مدیریت رابط های اترنت در اوبونتو
یک رابط شبکه اترنت یک برد مدار با یک پورت اترنت است که رایانه شما را قادر می سازد تا یک اتصال اترنت برقرار کند. رابط های اترنت یک قرارداد نامگذاری ساده دارند. اولین رابط اترنت معمولا eth0 است. سپس eth1 می آید. همه اینترفیس های اضافی به این صورت نامگذاری شده اند.
نامگذاری منطقی در رابط های اترنت
برای مشاهده رابط های اترنت موجود، دستور ifconfig زیر را اجرا کنید:
ifconfig -a | grep eth
# Output
eth0: flags=4098 mtu 1500
با دستور lshw می توانید تمام رابط های شبکه ای را که برای پیکربندی شبکه ها در اوبونتو نیاز دارید تعریف کنید. در زیر یک دستور نمونه را مشاهده خواهید کرد. این دستور اطلاعات گذرگاه، جزئیات درایور و تمامی قابلیت های پشتیبانی شده آن را به صورت یک رابط اترنت نمایش می دهد:
sudo lshw -class network
می توانید از فایل /etc/udev/rules.d/70-persistent-net.rules برای پیکربندی نام های منطقی رابط استفاده کنید. برای کنترل اینکه کدام اینترفیس کدام نام منطقی را دریافت کند، به آدرسهای MAC فیزیکی اینترفیسها نیاز دارید.
می توانید خطی را پیدا کنید که با آدرس فیزیکی MAC مطابقت دارد و NAME=ethA را به هر چیزی که می خواهید تغییر دهید. برای ذخیره تغییرات بلافاصله سیستم خود را مجددا راه اندازی کنید.
پیکربندی رابط اترنت در اوبونتو 18.04 و قبل از آن
با برنامه ethtool می توانید تنظیماتی مانند مذاکره خودکار، حالت دورو و سرعت پورت را مشاهده کنید. اگر ethtool بر روی سرور شما نصب نیست، می توانید با استفاده از دستور زیر آن را نصب کنید:
sudo apt install ethtool
پس از اتمام نصب، می توانید خروجی نمونه برای eth0 را ببینید:
sudo ethtool eth0
باید به یاد داشته باشید که تغییراتی که با دستور ethtool ایجاد می کنید موقتی هستند. اگر میخواهید این تنظیمات را حفظ کنید، باید دستور ethtool مورد نظر را به دستور boot در فایل /etc/network/interfaces اضافه کنید.
به عنوان مثال، شما می خواهید رابطی با نام eth0 دارای سرعت اتصال 500 مگابایت بر ثانیه در حالت دوبلکس باشد. برای پیکربندی دائمی این، میتوانید فایل /etc/network/interfaces را به صورت زیر ویرایش کنید:
پیکربندی که در بالا مشاهده کردید با روشهای دیگری مانند DHCP نیز کار میکند، حتی اگر یک رابط روش ثابت باشد.
رابط اترنت را در اوبونتو 20.04 و نسخه های جدیدتر پیکربندی کنید
مسیری که باید برای پیکربندی شبکه اترنت در اوبونتو 20.04 دنبال کنید با نسخه های قدیمی اوبونتو کمی متفاوت است. نسخه های جدیدتر اوبونتو (پس از 18.04) اکنون به جای /etc/network/interfaces /etc/netplan/ دارند.
با این پوشه امکان ایجاد تغییرات در رابط شبکه اترنت وجود دارد. استفاده از آن نیز ساده است زیرا حاوی یک فایل YAML است.
با استفاده از Netplan می توانید IP استاتیک را به صورت زیر پیکربندی کنید:
- با استفاده از دستور زیر وارد پوشه /netplan شوید و به فایل های داخل نگاه کنید: ls /etc/netplan# Output00-installer-config.yaml همچنین ممکن است در اینجا با فایلی به نام network-manager-all.yaml مواجه شوید.
- یک نسخه پشتیبان از این فایل با دستور زیر ایجاد کنید: sudo cp /etc/netplan/00-installer-config.yaml 00-installer-config.yaml.copy
- سپس، فایل را با ویرایشگر متن مورد علاقه خود باز کنید: sudo vim /etc/netplan/00-installer-config.yaml
- از آنجایی که این یک فایل YAML است، انجام ویرایش های لازم آسان است. فایل را همانطور که می خواهید ویرایش کنید. به عنوان مثال:
- پس از پیکربندی فایل خود مانند بالا، ذخیره کرده و خارج شوید. تغییرات لازم را با دستور زیر اعمال کنید: sudo netplan application
- اکنون می توانید تغییرات را با استفاده از دستور زیر بررسی کنید:ip addr
ls /etc/netplan
# Output
00-installer-config.yaml
sudo cp /etc/netplan/00-installer-config.yaml 00-installer-config.yaml.copy
sudo vim /etc/netplan/00-installer-config.yaml
sudo netplan apply
ip addr
آدرس دهی IP در اوبونتو
چندین دستور لینوکس مفید برای ایجاد تنظیمات شبکه موقت وجود دارد. دستوراتی مانند ip، ifconfig و route به شما در انجام این تنظیمات کمک می کند. این دستورات پارامترهایی را پیکربندی میکنند که تاثیر فوری دارند اما دائمی نیستند. این بدان معناست که پس از راه اندازی مجدد سیستم، تنظیماتی که انجام می دهید از بین می رود.
ابتدا اجازه دهید نگاهی به دستور ifconfig بیاندازیم. تصور کنید می خواهید یک آدرس IP را به طور موقت پیکربندی کنید. برای انجام این کار، کافی است آدرس IP و ماسک زیر شبکه را مطابق با نیازهای شبکه خود تغییر دهید.
اگر می خواهید از دستور route برای تعیین دروازه پیش فرض استفاده کنید، از دستور زیر به عنوان مثال استفاده کنید:
route add default gw 10.0.0.1 eth0
برای تست این تنظیمات، دستور زیر را اجرا کنید:
route -n
گاهی اوقات برای پیکربندی موقت شبکه به DNS نیاز دارید. برای این کار، می توانید آدرس های IP سرور DNS را به فایل /etc/resolv.conf اضافه کنید. پیکربندی مستقیم این فایل می تواند نگران کننده باشد. اما این یک مرحله پیکربندی شبکه اوبونتو غیر دائمی است. در زیر یک مثال مرتبط از این مورد استفاده شده است:
# vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
اگر دیگر به تنظیماتی که انجام داده اید نیاز ندارید، می توانید از دستور زیر برای شستشوی آنها استفاده کنید:
ip addr flush eth0
پاک کردن پیکربندی IP با دستور بالا برای فایل /etc/resolv.conf اعمال نمی شود. شما باید به صورت دستی اطلاعات موجود در این فایل را حذف کرده و سیستم خود را مجددا راه اندازی کنید.
تخصیص IP پویا در اوبونتو
پیکربندی شبکه اوبونتو 20.04 را طوری تنظیم کنید که از DHCP برای تخصیص آدرس پویا استفاده کند. برای انجام این کار، باید متد DHCP را به اعلان خانواده آدرس inet برای رابط مناسب در فایل /etc/network/interfaces اضافه کنید.
auto eth0
iface eth0 inet dhcp
همچنین می توانید با استفاده از دستور ifup که عملیات DHCP را از طریق dhclient شروع می کند، رابط را به صورت دستی فعال کنید.
sudo ifup eth0
می توانید از دستور ifdown برای غیرفعال کردن دستی رابط استفاده کنید. این دستور روند پخش DHCP را آغاز می کند و در عین حال رابط را نیز می بندد.
sudo ifdown eth0
تخصیص IP استاتیک در اوبونتو
میتوانید فایل /etc/network/interfaces را دوباره بهروزرسانی کنید تا سرور اوبونتو خود را با تخصیص آدرس IP ثابت تنظیم کنید. در این فایل، می توانید روش استاتیک خود را به خانواده آدرس inet برای رابط مربوطه اضافه کنید.
همانند تخصیص IP پویا، می توانید به صورت دستی رابط را با دستورهای ifup و ifdown فعال یا غیرفعال کنید.
پیکربندی رابط Loopback
ممکن است هنگام استفاده از دستور ifconfig عبارت lo را دیده باشید. عبارت lo در اینجا Loopback است و به طور پیش فرض از آدرس IP 127.0.0.1 استفاده می کند.
ifconfig lo
رابط Loopback به دلیل دو خط زیر در فایل /etc/network/interfaces به طور خودکار پیکربندی می شود:
auto lo
iface lo inet loopback
وضوح نام در اوبونتو
وضوح نام فرآیند تبدیل آدرس IP به نام میزبان است. با این حال، چند چیز وجود دارد که باید در مورد DNS و رکوردهای نام میزبان ثابت برای وضوح نام در اوبونتو بدانید.
نحوه پیکربندی DNS Client در اوبونتو
چارچوب resolvconf برای نظارت بر این تغییرات و به روز رسانی خودکار تنظیمات استفاده می شود. تغییرات دستی در فایل /etc/resolv.conf روی resolvconf تاثیر دارد. برای غلبه بر این مشکل، از قلاب های مشتری DHCP و /etc/network/interfaces استفاده کنید:
/etc/resolv.conf -> ../run/resolvconf/resolv.conf
آدرس های IP سرورهای نام موجود برای پیکربندی را به فایل /etc/network/interfaces اضافه کنید. اگر شبکه شما چندین زیر دامنه برای جستجو دارد، می توانید از آنها نیز استفاده کنید. فایل شما باید به شکل زیر باشد:
iface eth0 inet static
# Output
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
dns-search test.com market.test.com support.test.com dns-nameservers 192.168.2.25 192.168.8.11
اگر میزبان را با یک سرور پینگ کنید، درخواستهای مربوط به FQDN (نام دامنه کاملاً واجد شرایط) براساس ترتیب نام دامنه شما خواهد بود. در این مثال به ترتیب test.com، market.test.com و support.test.com هستند.
نام هاست استاتیک چیست؟
نام هاست استاتیک با فایل /etc/hosts مرتبط است. ورودی ها در فایل میزبان برای DNS اولویت دارند. اگر سیستم شما در تلاش است تا نام میزبان را حل کند، فایل /etc/hosts را مرور می کند. اگر در آنجا مطابقت پیدا کرد، سعی نمیکند آن را در DNS جستجو کند.
در اینجا نمونه ای از فایل هاست با FQDN آورده شده است:
127.0.0.1 localhost
127.0.1.1 muo-server
10.0.0.11 server1 server1.test.com vpn
10.0.0.12 server2 server2.test.com mail
10.0.0.13 server3 server3.test.com www
تنظیمات NSS در اوبونتو
فایل /etc/nsswitch.conf NSS (Name Service Switch) را کنترل می کند. در اینجا، ترتیبی که سیستم شما روش هایی را برای حل نام هاست به آدرس های IP انتخاب می کند، کنترل می شود. در اینجا یک مثال از /etc/nsswitch.conf است:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
- فایل ها: ابتدا سعی کنید نام هاست استاتیک را در فایل هاست حل کنید
- mdns4_minimal: سعی کنید با استفاده از Multicast DNS حل کنید
- [NOTFOUND=return]: اگر نتیجه Multicast DNS پاسخ NOTFOUND را برگرداند، سعی نکنید ادامه دهید.
- dns: پرس و جوی DNS unicast قدیمی
- mdns4: Query DNS Multicast
شما می توانید hosts: string را به هر چیزی که می خواهید تغییر دهید تا ترتیب این متدها را تغییر دهید.
hosts: files dns [NOTFOUND=return] mdns4_minimal mdns4
پل زدن روی اوبونتو
جنبه دیگری که نباید برای پیکربندی سرور اوبونتو نادیده بگیرید، پل زدن است. هنگامی که چندین سناریو وجود دارد، برقراری ارتباط بین چندین رابط بسیار راحت است.
به عنوان مثال، ممکن است در نظر بگیرید که می خواهید از یک پل بر روی یک سیستم با یک رابط واحد استفاده کنید تا به ماشین های مجازی اجازه دهید مستقیماً به شبکه بیرونی دسترسی داشته باشند.
ابتدا بسته bridge-utils را نصب کنید:
sudo apt install bridge-utils
پس از نصب، فایل /etc/network/interfaces را باز کنید:
مقادیر مناسب را برای رابط فیزیکی و شبکه خود وارد کنید. سپس پل را با موارد زیر بیاورید:
sudo ifup br0
اکنون یک رابط پل جدید روی سرور اوبونتو خود راه اندازی کرده اید.
آیا شبکه سازی روی سرور اوبونتو مفید است؟
سرورهای اوبونتو به طور کلی در دسترس همه هستند، حتی اگر دانش ابتدایی لینوکس داشته باشید. با این حال، دانش اولیه ممکن است کافی نباشد، به خصوص در دنیای امروز که مشکلات امنیتی در حال افزایش است. با این وجود، مطمئناً استفاده از قدرت لینوکس منطقی است.
مهمتر از همه، اگر پیکربندی شبکه سرور اوبونتو به درستی انجام شود، تقریباً با همه سیستم ها با کارایی و سازگاری بالا کار می کند. همچنین با محصولات محبوبی مانند Microsoft Hyper-V و VMware سازگاری بالایی دارد. بسیاری از وب سایت های چند کاربره و بازی های چند نفره آنلاین از سرورهای اوبونتو استفاده می کنند.