دستور 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

امیدواریم این مقاله برای شما مفید بوده باشد.