دستور ifconfig در Linux
Ifconfig به معنی interface configuration یک ابزار مدیریت شبکه در لینوکس است. این ابزار به شما امکان دیدن وضعیت اینترفیس های شبکه در سیستم عامل لینوکس را می دهد. با استفاده از دستور ifconfig می توانید آدرس IP ست کنید، اینترفیس ها را enable یا disable کرده و یا ARP Cache، Route ها و بسیاری موارد دیگر را مدیریت کنید.
چطور ابزار ifconfig را نصب کنیم؟
گفتنی است دستور ifconfig در نسخه های جدید تر لینوکس با ip جایگزین شده است. در صورتی که پس از وارد کردن این دستور با پیغام خطای “ifconfig: command not found” مواجه شدید، به این معنی است که پکیجی که حاوی دستور ifconfig است بر روی سیستم شما نصب نشده است.
نصب ifconfig روی Ubuntu/Debian
روی سیستم عامل های Ubuntu و همچنین توزیع های بر پایه Debian می توانید از دستور زیر برای نصب ifconfig استفاده کنید:
sudo apt install net-tools –y
نصب ifconfig روی Centos
برای نصب ifconfig روی CentOS و دیگر توزیع های بر پایه RHEL از دستور زیر استفاده کنید:
sudo yum install net-tools –y
چطور از دستور ifconfig استفاده کنید
Syntax اصلی دستور ifconfig به صورت زیر است:
ifconfig [...OPTIONS] [INTERFACE]
به این صورت که:
Interface – جایی است که شما نام اینترفیس مورد نظرتان را وارد می کنید
Address – جایی است که شما آدرس IP مورد نظرتان را برای ست کردن وارد می کنید.
تنظیمات ست شده در دستور ifconfig دائمی نخواهند بود. به این صورت که پس از راه اندازی مجدد سیستم یا ریبوت، تمامی تغییرات اعمال شده به حالت اول بر می گردند. برای ثبت تغییرات به صورت دائمی نیاز به ویرایش فایل تنظیماتی دارید که ویژه ی توزیع تان است. و همچنین راه دیگر ثبت دائمی، اضافه کردن دستورات در Startup script است.
دقت کنید که تنها root یا کاربران دارای امتیاز sudo قادر به تنظیم اینترفیس های شبکه هستند.
نمایش اطلاعات اینترفیس های شبکه:
در صورتی که بدون هیچ آپشن خاصی دستور ifconfig وارد شود، اطلاعات تنظیمات تمامی اینترفیس های شبکه و آدرس IP های مخصوصشان نمایش داده می شود.
ifconfig –a
خروجی دستور شامل اطلاعات تمامی اینترفیس های شبکه فعال و غیر فعال خواهد بود:
docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4198 errors:0 dropped:0 overruns:0 frame:0
TX packets:4198 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:498729 (498.7 KB) TX bytes:498729 (498.7 KB)
eth0 Link encap:Ethernet HWaddr 4c:bb:58:9c:f5:55
inet addr:172.20.10.3 Bcast:172.20.10.15 Mask:255.255.255.240
inet6 addr: 2401:4900:1d65:40a1:4ebb:58ff:fe9c:f555/64 Scope:Global
inet6 addr: 2401:4900:1d65:40a1:f1c9:6a90:2d99:924e/64 Scope:Global
inet6 addr: fe80::4ebb:58ff:fe9c:f555/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84110 errors:0 dropped:0 overruns:0 frame:0
TX packets:59727 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:70667629 (70.6 MB) TX bytes:20886290 (20.8 MB)
برای نمایش اطلاعات تنظیمات هر اینترفیس خاص کافی است نام اینترفیس پس از دستور وارد شود:
ifconfig eth0
خروجی دستور به صورت زیر و مختص همان اینترفیس خواهد بود:
eth0 Link encap:Ethernet HWaddr 4c:bb:58:9c:f5:55
inet addr:172.20.10.3 Bcast:172.20.10.15 Mask:255.255.255.240
inet6 addr: 2401:4900:1d65:40a1:4ebb:58ff:fe9c:f555/64 Scope:Global
inet6 addr: 2401:4900:1d65:40a1:f1c9:6a90:2d99:924e/64 Scope:Global
inet6 addr: fe80::4ebb:58ff:fe9c:f555/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84110 errors:0 dropped:0 overruns:0 frame:0
TX packets:59727 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:70667629 (70.6 MB) TX bytes:20886290 (20.8 MB)
اختصاص دادن آدرس IP و Netmask به اینترفیس:
با دستور ifconfig می توانید آدرس IP و netmask مورد نظرتان را به اینترفیس شبکه اختصاص دهید.
در زیر syntax مورد نظر برای اختصاص این موارد به اینترفیس را مشاهده می کنید:
ifconfig [interface-name] [ip-address] netmask [subnet-mask]
به عنوان مثال، برای اختصاص آدرس IP : 192.168.0.101 و netmask: 255.255.0.0 به اینترفیس: eth0 می بایست دستور را به شکل زیر وارد کنید:
ifconfig eth0 192.168.0.101 netmask 255.255.0.0
شما همچنین می توانید آدرس IP دومی را نیز به اینترفیس شبکه تان اختصاص دهید که با عنوان interface aliasing یا IP Aliasing شناخته می شود:
ifconfig eth0:0 192.168.0.102 netmask 255.255.0.0
Enable یا Disable کردن یک اینترفیس شبکه
در برخی مواقع شما نیاز به ریست کردن اینترفیس شبکه تان دارید که در این صورت دستور ifconfig می تواند به این منظور استفاده شود.
برای غیر فعال کردن یک اینترفیس شبکه ی فعال، نام اینترفیس را وارد کنید و سپس از flag یا پرچم: down پس از آن استفاده کنید:
ifconfig eth0 down
اما برای فعال کردن اینترفیس های غیر فعال شده، از flag یا پرچم up استفاده می کنیم:
ifconfig eth0 up
چگونه حالت Promiscuous را فعال یا غیر فعال کنیم؟
حالت Promiscuous به وضعیتی گفته می شود که اینترفیس شبکه می تواند تمامی بسته های درون شبکه را مشاهده کند. شما با استفاده از دستور ifconfig می توانید این وضعیت را روی اینترفیس خاصی از شبکه تان غیر فعال یا فعال کنید.
برای فعال سازی حالت Promiscuous از دستور زیر استفاده کنید:
ifconfig eth0 promisc
همچنین برای غیر فعال سازی آن نیز از دستور زیر:
ifconfig eth0 -promisc
تغییر مقدار MTU بر روی یک اینترفیس شبکه
MTU یا Maximum Transmission Unit مقداری است که اندازه ی پکت ها روی اینترفیس را تعیین می کند.
برای تغییر MTU از Syntax زیر استفاده می کنیم:
ifconfig [interface-name] mtu [mtu-value]
به عنوان مثال برای تعیین MTU روی اینترفیس eht0 به میزان 500 دستور زیر را وارد می کنیم:
ifconfig eth0 mtu 500
نحوه تغییر آدرس فیزیکی یا MAC address یک اینترفیس شبکه
مک آدرس، آدرس فیزیکی یک قطعه در شبکه است که به صورت منحصر برای آن دستگاه تعریف شده است.
برای تغییر آدرس فیزیکی یک اینترفیس شبکه از پرچم hw ether استفاده میکنیم:
ifconfig eth0 hw ether 00:00:2d:3a:2a:28
امیدواریم این مقاله برای شما مفید بوده باشد.