شبکه در لینوکس یکی از حوزههای کلیدی است که هر کاربر یا مدیر سیستمی باید با آن آشنا باشد. لینوکس ابزارهای قدرتمندی برای مدیریت شبکه، عیبیابی و برقراری ارتباط با سایر سیستمها در اختیار شما قرار میدهد. این مقاله به صورت گامبهگام و برای افراد مبتدی نوشته شده است.
ls و cd کافی است. مفاهیم شبکه از صفر توضیح داده میشوند.
۱. مفاهیم پایه شبکه
پیش از پرداختن به دستورات، بهتر است با چند مفهوم کلیدی آشنا شوید:
- آدرس IP: شناسه منحصربهفرد هر دستگاه در شبکه. دو نوع IPv4 (مانند 192.168.1.1) و IPv6 وجود دارد.
- ماسک زیرشبکه (Subnet Mask): مشخص میکند که کدام بخش از آدرس IP مربوط به شبکه و کدام بخش مربوط به دستگاه است.
- درگاه پیشفرض (Gateway): آدرس دستگاهی که ترافیک شبکه را به خارج از شبکه محلی هدایت میکند (معمولاً روتر).
- DNS (Domain Name System): سرویسی که نامهای دامنه (مثل google.com) را به آدرس IP تبدیل میکند.
در لینوکس، تمام این اطلاعات را میتوانید با دستورات ساده مشاهده و تغییر دهید.
۲. مشاهده اطلاعات شبکه
ip – نمایش و مدیریت رابطهای شبکه
دستور ip جایگزین مدرن ifconfig است و اطلاعات کاملی از کارتهای شبکه نشان میدهد:
ip addr show
# یا به صورت کوتاه
ip a
خروجی این دستور شامل نام رابط (مثلاً eth0 یا wlan0)، آدرس IP، ماسک زیرشبکه و وضعیت (UP/DOWN) است.
پیدا کردن آدرس IP عمومی
برای مشاهده آدرس IP عمومی خود (آدرسی که از اینترنت دیده میشوید)، میتوانید از ابزارهایی مانند curl استفاده کنید:
curl ifconfig.me
# یا
curl icanhazip.com
۳. عیبیابی اتصال شبکه
ping – بررسی اتصال به یک میزبان
دستور ping بستههای ICMP را به یک آدرس ارسال میکند و زمان پاسخگویی را اندازهگیری میکند. این ابزار سادهترین روش برای بررسی اتصال است.
ping -c 4 google.com
# ارسال ۴ بسته به سرور گوگل
اگر پاسخ دریافت کنید، یعنی اتصال برقرار است. اگر خطا داد، ممکن است مشکل در شبکه محلی، DNS یا فایروال باشد.
traceroute – مسیر رسیدن به مقصد
این دستور مسیری که بستهها از مبدأ به مقصد طی میکنند را نشان میدهد و برای تشخیص گرههای مشکلدار مفید است.
traceroute google.com
nslookup و dig – پرسوجوی DNS
این دستورات برای بررسی تبدیل نام دامنه به آدرس IP استفاده میشوند:
nslookup google.com
dig google.com
۴. مدیریت اتصالات و پورتها
ss – نمایش اتصالات سوکت
دستور ss جایگزین netstat است و اطلاعات اتصالات شبکه، پورتهای باز و وضعیت آنها را نشان میدهد.
ss -tuln
# نمایش همه پورتهای TCP و UDP در حال گوشدهی (Listening)
-t: اتصالات TCP-u: اتصالات UDP-l: فقط پورتهای در حال گوشدهی-n: نمایش پورتها به صورت عددی (بدون تبدیل به نام سرویس)
netstat (نسخه قدیمی)
اگر netstat را ترجیح میدهید، همچنان در اکثر توزیعها موجود است:
netstat -tulpn
# نمایش اتصالات با نام فرایند مرتبط
۵. انتقال فایل از طریق شبکه
scp – کپی امن فایل از طریق SSH
scp (Secure Copy) به شما امکان میدهد فایلها را بین سیستمهای مختلف به صورت امن انتقال دهید.
scp file.txt user@192.168.1.10:/home/user/
# کپی فایل از سیستم محلی به سرور مقصد
scp user@192.168.1.10:/home/user/file.txt ./
# کپی فایل از سرور به سیستم محلی
rsync – همگامسازی پیشرفته
rsync برای همگامسازی پوشهها و انتقال افزایشی (فقط تغییرات) بسیار کارآمد است.
rsync -avz /local/folder/ user@server:/remote/folder/
# همگامسازی یک پوشه با فشردهسازی
۶. اتصال امن به سرور با SSH
SSH (Secure Shell) پروتکلی برای اتصال امن به سیستمهای راهدور است. این ابزار برای مدیران سیستم ضروری است.
ssh user@192.168.1.10
# اتصال به سرور با نام کاربری مشخص
برای اتصال بدون نیاز به وارد کردن رمز عبور، میتوانید از کلیدهای SSH استفاده کنید:
ssh-keygen -t rsa -b 4096
# تولید کلید عمومی/خصوصی
ssh-copy-id user@192.168.1.10
# کپی کلید عمومی به سرور
۷. دانلود و ارسال درخواست HTTP
curl – ابزار قدرتمند برای انتقال داده
curl برای ارسال درخواستهای HTTP، دانلود فایلها، و تعامل با APIها استفاده میشود.
curl https://api.github.com
# دریافت اطلاعات از GitHub API
curl -O https://example.com/file.zip
# دانلود فایل با نام اصلی
wget – دانلود ساده
wget یک ابزار ساده و سبک برای دانلود فایلها از اینترنت است.
wget https://example.com/file.zip
# دانلود یک فایل
۸. تنظیمات شبکه در لینوکس
تنظیمات شبکه در لینوکس معمولاً در فایلهای پیکربندی ذخیره میشوند. در توزیعهای مبتنی بر Debian/Ubuntu، فایل اصلی /etc/network/interfaces است. در توزیعهای مبتنی بر RedHat، فایلهای /etc/sysconfig/network-scripts/ifcfg-* استفاده میشوند.
برای تنظیم موقت آدرس IP (تا زمان راهاندازی مجدد) از دستور ip استفاده کنید:
ip addr add 192.168.1.100/24 dev eth0
# افزودن آدرس IP به رابط eth0
ip link set eth0 up
# فعال کردن رابط
ip پس از ریاستارت سیستم از بین میروند. برای تغییرات دائمی، فایلهای پیکربندی را ویرایش کنید.
۹. ابزارهای شبکه پیشرفته
- tcpdump: برای ضبط و تحلیل بستههای شبکه (مفید برای عیبیابی عمیق).
- netcat (nc): ابزاری برای خواندن و نوشتن داده از طریق اتصالات شبکه، اغلب برای اسکن پورت و اشکالزدایی استفاده میشود.
- iftop: نمایش پهنای باند مصرفی به صورت زنده.
- nmap: اسکنر قدرتمند برای کشف میزبانها و سرویسهای شبکه.
tcpdump -i eth0
# ضبط بستههای روی رابط eth0
nc -zv google.com 80
# بررسی باز بودن پورت 80 روی google.com
۱۰. مثالهای عملی
مثال ۱: بررسی اتصال اینترنت
ping -c 4 8.8.8.8
if [ $? -eq 0 ]; then
echo "Internet connection is working."
else
echo "No internet connection."
fi
مثال ۲: یافتن دستگاههای شبکه محلی
nmap -sn 192.168.1.0/24
# اسکن Ping برای یافتن دستگاههای فعال در شبکه محلی
مثال ۳: کپی خودکار فایلهای لاگ به سرور پشتیبان
rsync -avz /var/log/ user@backup-server:/backup/logs/
# همگامسازی لاگها با یک سرور پشتیبان
جمعبندی و گامهای بعدی
در این مقاله با مفاهیم اساسی شبکه و مهمترین دستورات شبکه در لینوکس آشنا شدید. برای تبدیل شدن به یک کاربر حرفهای، این کارها را ادامه دهید:
- هر روز با یکی از دستورات شبکه تمرین کنید و خروجی آن را تحلیل کنید.
- مفاهیم TCP/IP، مسیریابی و DNS را عمیقتر مطالعه کنید.
- از ابزارهای
tcpdumpوwiresharkبرای تحلیل ترافیک شبکه استفاده کنید. - کتاب «The Linux Command Line» (ترجمه فارسی در کتابخانه لینوکس) را برای یادگیری بیشتر بخوانید.