کامپیوتر ها در یک شبکه جهت مبادله اطلاعات یا منابع یکدیگر با هم در ارتباط هستند. دو یا چند کامپیوتر از طریق رسانه ای به نام شبکه کامپیوتری به هم وصل می شوند. تعدادی رسانه و دیوایس های شبکه که به شکل شبکه ی کامپیوتری درگیر هستند، وجود دارد. کامپیوتر دارای سیستم عامل لینوکس نیز بخشی از شبکه ای که خواه شبکه ای کوچک و یا شبکه ای بزرگ چند کاربره و چند منظوره می تواند باشد. بالا نگهداشتن سیستم و شبکه در حال اجرا وظیفه ی ادمین شبکه و یا سیستم می باشد. در این مقاله ما دستور اتی جهت بررسی و عیب یابی شبکه در لینوکس را مرور می کنیم.
1 - دستور ifconfig
دستور ifconfig (مخفف interface configurator) جهت initialize کردن یک اینترفیس، تخصیص IP Address به اینترفیس و enable و disable کردن اینترفیس شبکه بکار می رود. با استفاده از این دستور شما می توانید آدرس IP و آدرس سخت افزاری MAC اختصاص داده شده به اینترفیس و همچنین سایز MTU (مخفف Maximum transmission unit) را مشاهده کنید.
دستور ifconfig به همراه اینترفیس (eth0) تنها جزئیات مربوط به همان اینترفیس بخصوص همچون آدرس IP و آدرس MAC وغیره را نمایش می دهد. با استفاده از گزینه –a تمام جزئیات اینترفیس های موجود، حتی در صورت disable بودن نمایش داده می شود.
تخصیص آدرس IP و Gateway
تخصیص یک آدرس IP و Gateway به اینترفیس در زمان اجرا تنظیمات پس از ریبوت سیستم حذف خواهد شد.
Enable یا disable کردن اینترفیس مورد نظر
برای enable یا disable کردن اینترفیس مورد نظر، ما از مثال های زیر استفاده می کنیم :
Enable eth0
Disable eth0
تنظیمات سایز MTU
بطور پیش فرض، سایز MTU مقدار 1500 می باشد. ما میتوانیم سایز MTU را بر حسب نیاز با دستور زیر تغییر دهیم. XXXX را با سایز مورد نظر جایگزین کنید.
تنظیم اینترفیس در حالت promiscuous
اینترفیس شبکه تنها پکت ها یی را دریافت می کند که متعلق به NIC خاصی هستند. اگر شما اینترفیس را در حالت promiscuous قرار دهید تمام پکت ها را دریافت می کند. این ویژگی برای capture کردن و آنالیز کردن پکت ها بسیار قابل استفاده است. برای این شما نیاز به دسترسی superuser دارید.
2 - دستور PING
دستور PING (مخفف Packet Internet Groper) بهترین راه برای چک کردن برقراری ارتباط بین دو node می باشد. اینکه آن شبکه محلی LAN و یا شبکه جهانی WAN می باشد. PING از پروتکل ICMP (مخفف Internet Control Message Protocol) جهت برقراری ارتباط بین دیوایس ها استفاده می کند. شما می توانید نام هاست یا آدرس IP را با استفاده از دستور زیر ping کنید .
دستور ping در لینوکس تا زمانیکه شما وقفه ایجاد نکنید اجرا می شود. Ping با گزینه –c بعد از N تعداد درخواست متوقف می شود.
3 - دستور TRACEROUTE
Traceroute یک ابزار عیب یابی در شبکه است که تعداد hop هایی که در مسیر رسیدن به مقصد وجود دارند را نمایش می دهد. در زیر ما trace می کنیم مسیر را به آدرس IP سرور DNS و به مقصد می رسیم و همچنین مسیر پکت ها را در طول سفر نمایش می دهد.
4 - دستور NETSTAT
دستور NETSTAT (مخفف Network Statistic)، اطلاعات جدول روتینگ و کانکشن و ... را نمایش می دهد. برای نمایش جدول روتینگ از گزینه –r استفاده کنید.
5 - دستور DIG
dig (مخفف domain information groper) اطلاعاتی همچون A record ,CNAME,MX record و ... را از DNS تقاضا می کند. این دستور اساسا جهت query گرفتن از DNS استفاده می شود.
6 - دستور NSLOOKUP
دستور nslookup نیز جهت پیدا کردن DNS query های مربوطه بکار می رود. مثال های زیر A record مربوط به linux-zone.org را نشان می دهند.
7 - دستور ROUTE
با استفاده از دستور route نیز می توان جدول روتینگ را مشاهده و دستکاری کرد. جهت نمایش جدول روتینگ پیش فرض در لینوکس دستور زیر را تایپ نمایید.
حذف و اضافه کردن route ها و default gateway با استفاده از دستورات زیر انجام میشود.
Route Adding
Route Deleting
Adding default Gateway
8 - دستور HOST
دستور host برای پیدا کردن نام توسط IP و یا IP توسط نام در IPv4 و IPv6 و همچنین DNS record استفاده می شود.
با استفاده از گزینه ی –t ما میتوانیم منبع رکوردهای DNS همچون CNAME ,MX ,NS ,SOA را بیابیم.
9 - دستور ARP
دستور ARP (مخفف Adress Resolution Protocol) جهت نمایش و اضافه کردن محتوای جدول ARP کرنل بکار میرود. برای دیدن جدول پیش فرض دستور زیر را استفاده کنید.
10 - دستور ETHTOOL
Ethtool جایگزینی برای mii-tool می باشد. این دستور تنظیمات speed و duplex کارت اینترفیس شبکه (NIC) شما را نشان می دهد. شما می توانید duplex را به صورت دائمی در فایل /etc/sysconfig/network-scripts/icfg-eth0 با استفاده از متغیر ETHTOOL_OPTS تعریف کنید.
11 - دستور IWCONFIG
دستور iwconfig در لینوکس جهت کانفیگ کارت شبکه وایرلس بکار میرود. شما می توانید تنظیمات اولیه Wi-Fi همچون SSID و encryption را مشاهده و تنظیم کنید.
12 - دستور HOSTNAME
Hostname جهت شناسایی یک شبکه می باشد. دستور hostname را جهت مشاهده ی نام هاست خود اجرا کنید. شما می توانید hodtname را به صورت دائمی در فایل/etc/sysconfig/network تنظیم نمایید. پس از آن لازم است که سیستم را یکبار ریبوت نمایید.
13 - ابزار گرافیکی system-config-network
جهت تنظیمات شبکه خود به صورت گرافیکی، system-config-network را در خط فرمان تایپ نمایید و شما رابط گرافیکی کاربر (GUI) زیبایی را خواهید دید که همچنین جهت تنظیمات آدرس IP و MAC و Gateway می توان از آن استفاده کرد. همچون تصویر زیر :
همچنین توصیه میشود مطالعه کنید :
نحوه پیدا کردن پورت های باز در سرور لینوکس
دستور netstat برای مدیریت شبکه در لینوکس
راهنمای جامع برای یک Sysadmin لینوکس به منظور مدیریت، عیب یابی و برطرف کردن مشکلات شبکه
دستور ip برای تنظیمات اینترفیس شبکه به همراه 10 مثال عملی
این مقاله می تواند برای ادمین های شبکه لینوکس جهت کارهای روزمره در سیستم عامل های مبتنی بر Unix و لینوکس مناسب باشد.
1 - دستور ifconfig
دستور ifconfig (مخفف interface configurator) جهت initialize کردن یک اینترفیس، تخصیص IP Address به اینترفیس و enable و disable کردن اینترفیس شبکه بکار می رود. با استفاده از این دستور شما می توانید آدرس IP و آدرس سخت افزاری MAC اختصاص داده شده به اینترفیس و همچنین سایز MTU (مخفف Maximum transmission unit) را مشاهده کنید.
کد PHP:
#ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:192.168.50.2 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6093 errors:0 dropped:0 overruns:0 frame:0
TX packets:4824 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6125302 (5.8 MiB) TX bytes:536966 (524.3 KiB)
Interrupt:18 Base address:0x2000
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:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)
دستور ifconfig به همراه اینترفیس (eth0) تنها جزئیات مربوط به همان اینترفیس بخصوص همچون آدرس IP و آدرس MAC وغیره را نمایش می دهد. با استفاده از گزینه –a تمام جزئیات اینترفیس های موجود، حتی در صورت disable بودن نمایش داده می شود.
کد PHP:
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:192.168.50.2 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6119 errors:0 dropped:0 overruns:0 frame:0
TX packets:4841 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6127464 (5.8 MiB) TX bytes:539648 (527.0 KiB)
Interrupt:18 Base address:0x2000
تخصیص آدرس IP و Gateway
تخصیص یک آدرس IP و Gateway به اینترفیس در زمان اجرا تنظیمات پس از ریبوت سیستم حذف خواهد شد.
کد PHP:
# ifconfig eth0 192.168.50.5 netmask 255.255.255.0
Enable یا disable کردن اینترفیس مورد نظر
برای enable یا disable کردن اینترفیس مورد نظر، ما از مثال های زیر استفاده می کنیم :
Enable eth0
کد PHP:
# ifup eth0
کد PHP:
# ifdown eth0
تنظیمات سایز MTU
بطور پیش فرض، سایز MTU مقدار 1500 می باشد. ما میتوانیم سایز MTU را بر حسب نیاز با دستور زیر تغییر دهیم. XXXX را با سایز مورد نظر جایگزین کنید.
کد PHP:
# ifconfig eth0 mtu XXXX
تنظیم اینترفیس در حالت promiscuous
اینترفیس شبکه تنها پکت ها یی را دریافت می کند که متعلق به NIC خاصی هستند. اگر شما اینترفیس را در حالت promiscuous قرار دهید تمام پکت ها را دریافت می کند. این ویژگی برای capture کردن و آنالیز کردن پکت ها بسیار قابل استفاده است. برای این شما نیاز به دسترسی superuser دارید.
کد PHP:
# ifconfig eth0 - promisc
2 - دستور PING
دستور PING (مخفف Packet Internet Groper) بهترین راه برای چک کردن برقراری ارتباط بین دو node می باشد. اینکه آن شبکه محلی LAN و یا شبکه جهانی WAN می باشد. PING از پروتکل ICMP (مخفف Internet Control Message Protocol) جهت برقراری ارتباط بین دیوایس ها استفاده می کند. شما می توانید نام هاست یا آدرس IP را با استفاده از دستور زیر ping کنید .
کد PHP:
# ping 4.2.2.2
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 4.2.2.2: icmp_seq=1 ttl=44 time=203 ms
64 bytes from 4.2.2.2: icmp_seq=2 ttl=44 time=201 ms
64 bytes from 4.2.2.2: icmp_seq=3 ttl=44 time=201 ms
OR
# ping www.linux-zone.org
PING tecmint.com (88.198.246.218) 56(84) bytes of data.
64 bytes from 88.198.246.218: icmp_seq=1 ttl=47 time=284 ms
64 bytes from 88.198.246.218: icmp_seq=2 ttl=47 time=287 ms
64 bytes from 88.198.246.218: icmp_seq=3 ttl=47 time=285 ms
کد PHP:
# ping -c 5 www.linux-zone.org
PING tecmint.com (88.198.246.218) 56(84) bytes of data.
64 bytes from 88.198.246.218: icmp_seq=1 ttl=47 time=285 ms
64 bytes from 88.198.246.218: icmp_seq=2 ttl=47 time=285 ms
64 bytes from 88.198.246.218: icmp_seq=3 ttl=47 time=285 ms
64 bytes from 88.198.246.218: icmp_seq=4 ttl=47 time=285 ms
64 bytes from 88.198.246.218: icmp_seq=5 ttl=47 time=285 ms
--- linux-zone.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4295ms
rtt min/avg/max/mdev = 285.062/285.324/285.406/0.599 ms
3 - دستور TRACEROUTE
Traceroute یک ابزار عیب یابی در شبکه است که تعداد hop هایی که در مسیر رسیدن به مقصد وجود دارند را نمایش می دهد. در زیر ما trace می کنیم مسیر را به آدرس IP سرور DNS و به مقصد می رسیم و همچنین مسیر پکت ها را در طول سفر نمایش می دهد.
کد PHP:
# traceroute 4.2.2.2
traceroute to 4.2.2.2 (4.2.2.2), 30 hops max, 60 byte packets
1 192.168.50.1 (192.168.50.1) 0.217 ms 0.624 ms 0.133 ms
2 227.18.106.27.mysipl.com (27.106.18.227) 2.343 ms 1.910 ms 1.799 ms
3 221-231-119-111.mysipl.com (111.119.231.221) 4.334 ms 4.001 ms 5.619 ms
4 10.0.0.5 (10.0.0.5) 5.386 ms 6.490 ms 6.224 ms
5 gi0-0-0.dgw1.bom2.pacific.net.in (203.123.129.25) 7.798 ms 7.614 ms 7.378 ms
6 115.113.165.49.static-mumbai.vsnl.net.in (115.113.165.49) 10.852 ms 5.389 ms 4.322 ms
7 ix-0-100.tcore1.MLV-Mumbai.as6453.net (180.87.38.5) 5.836 ms 5.590 ms 5.503 ms
8 if-9-5.tcore1.WYN-Marseille.as6453.net (80.231.217.17) 216.909 ms 198.864 ms 201.737 ms
9 if-2-2.tcore2.WYN-Marseille.as6453.net (80.231.217.2) 203.305 ms 203.141 ms 202.888 ms
10 if-5-2.tcore1.WV6-Madrid.as6453.net (80.231.200.6) 200.552 ms 202.463 ms 202.222 ms
11 if-8-2.tcore2.SV8-Highbridge.as6453.net (80.231.91.26) 205.446 ms 215.885 ms 202.867 ms
12 if-2-2.tcore1.SV8-Highbridge.as6453.net (80.231.139.2) 202.675 ms 201.540 ms 203.972 ms
13 if-6-2.tcore1.NJY-Newark.as6453.net (80.231.138.18) 203.732 ms 203.496 ms 202.951 ms
14 if-2-2.tcore2.NJY-Newark.as6453.net (66.198.70.2) 203.858 ms 203.373 ms 203.208 ms
15 66.198.111.26 (66.198.111.26) 201.093 ms 63.243.128.25 (63.243.128.25) 206.597 ms 66.198.111.26 (66.198.111.26) 204.178 ms
16 ae9.edge1.NewYork.Level3.net (4.68.62.185) 205.960 ms 205.740 ms 205.487 ms
17 vlan51.ebr1.NewYork2.Level3.net (4.69.138.222) 203.867 ms vlan52.ebr2.NewYork2.Level3.net (4.69.138.254) 202.850 ms vlan51.ebr1.NewYork2.Level3.net (4.69.138.222) 202.351 ms
18 ae-6-6.ebr2.NewYork1.Level3.net (4.69.141.21) 201.771 ms 201.185 ms 201.120 ms
19 ae-81-81.csw3.NewYork1.Level3.net (4.69.134.74) 202.407 ms 201.479 ms ae-92-92.csw4.NewYork1.Level3.net (4.69.148.46) 208.145 ms
20 ae-2-70.edge2.NewYork1.Level3.net (4.69.155.80) 200.572 ms ae-4-90.edge2.NewYork1.Level3.net (4.69.155.208) 200.402 ms ae-1-60.edge2.NewYork1.Level3.net (4.69.155.16) 203.573 ms
21 b.resolvers.Level3.net (4.2.2.2) 199.725 ms 199.190 ms 202.488 ms
4 - دستور NETSTAT
دستور NETSTAT (مخفف Network Statistic)، اطلاعات جدول روتینگ و کانکشن و ... را نمایش می دهد. برای نمایش جدول روتینگ از گزینه –r استفاده کنید.
کد PHP:
# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.50.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default 192.168.50.1 0.0.0.0 UG 0 0 0 eth0
5 - دستور DIG
dig (مخفف domain information groper) اطلاعاتی همچون A record ,CNAME,MX record و ... را از DNS تقاضا می کند. این دستور اساسا جهت query گرفتن از DNS استفاده می شود.
کد PHP:
# dig www.linux-zone.org
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> www.linux-zone.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
6 - دستور NSLOOKUP
دستور nslookup نیز جهت پیدا کردن DNS query های مربوطه بکار می رود. مثال های زیر A record مربوط به linux-zone.org را نشان می دهند.
کد PHP:
# nslookup www.linux-zone.org
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
www.linux-zone.org canonical name = linux-zone.org.
Name: linux-zone.org
Address: 88.198.246.218
7 - دستور ROUTE
با استفاده از دستور route نیز می توان جدول روتینگ را مشاهده و دستکاری کرد. جهت نمایش جدول روتینگ پیش فرض در لینوکس دستور زیر را تایپ نمایید.
کد PHP:
# route Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.50.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.50.1 0.0.0.0 UG 0 0 0 eth0
Route Adding
کد PHP:
# route add -net 10.10.10.0/24 gw 192.168.0.1
Route Deleting
کد PHP:
# route del -net 10.10.10.0/24 gw 192.168.0.1
Adding default Gateway
کد PHP:
# route add default gw 192.168.0.1
8 - دستور HOST
دستور host برای پیدا کردن نام توسط IP و یا IP توسط نام در IPv4 و IPv6 و همچنین DNS record استفاده می شود.
کد PHP:
# host www.google.com
www.google.com has address 173.194.38.180
www.google.com has address 173.194.38.176
www.google.com has address 173.194.38.177
www.google.com has address 173.194.38.178
www.google.com has address 173.194.38.179
www.google.com has IPv6 address 2404:6800:4003:802::1014
کد PHP:
# host -t CNAME www.redhat.com www.redhat.com is an alias for wildcard.redhat.com.edgekey.net.
9 - دستور ARP
دستور ARP (مخفف Adress Resolution Protocol) جهت نمایش و اضافه کردن محتوای جدول ARP کرنل بکار میرود. برای دیدن جدول پیش فرض دستور زیر را استفاده کنید.
کد PHP:
# arp -e
Address HWtype HWaddress Flags Mask Iface
192.168.50.1 ether 00:50:56:c0:00:08 C eth0
10 - دستور ETHTOOL
Ethtool جایگزینی برای mii-tool می باشد. این دستور تنظیمات speed و duplex کارت اینترفیس شبکه (NIC) شما را نشان می دهد. شما می توانید duplex را به صورت دائمی در فایل /etc/sysconfig/network-scripts/icfg-eth0 با استفاده از متغیر ETHTOOL_OPTS تعریف کنید.
کد PHP:
# ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected: yes
11 - دستور IWCONFIG
دستور iwconfig در لینوکس جهت کانفیگ کارت شبکه وایرلس بکار میرود. شما می توانید تنظیمات اولیه Wi-Fi همچون SSID و encryption را مشاهده و تنظیم کنید.
کد PHP:
# iwconfig [interface]
12 - دستور HOSTNAME
Hostname جهت شناسایی یک شبکه می باشد. دستور hostname را جهت مشاهده ی نام هاست خود اجرا کنید. شما می توانید hodtname را به صورت دائمی در فایل/etc/sysconfig/network تنظیم نمایید. پس از آن لازم است که سیستم را یکبار ریبوت نمایید.
کد PHP:
# hostname
Linux-zone.org
13 - ابزار گرافیکی system-config-network
جهت تنظیمات شبکه خود به صورت گرافیکی، system-config-network را در خط فرمان تایپ نمایید و شما رابط گرافیکی کاربر (GUI) زیبایی را خواهید دید که همچنین جهت تنظیمات آدرس IP و MAC و Gateway می توان از آن استفاده کرد. همچون تصویر زیر :
کد PHP:
# system-config-network
همچنین توصیه میشود مطالعه کنید :
نحوه پیدا کردن پورت های باز در سرور لینوکس
دستور netstat برای مدیریت شبکه در لینوکس
راهنمای جامع برای یک Sysadmin لینوکس به منظور مدیریت، عیب یابی و برطرف کردن مشکلات شبکه
دستور ip برای تنظیمات اینترفیس شبکه به همراه 10 مثال عملی
این مقاله می تواند برای ادمین های شبکه لینوکس جهت کارهای روزمره در سیستم عامل های مبتنی بر Unix و لینوکس مناسب باشد.