۲۲ دستور کلیدی مدیریت شبکه در لینوکس

موضوعاتی که در این مقاله به آنها پرداخته خواهد شد، به شرح زیر است:

 

دستورات کاربردی شبکه در لینوکس برای بهبود مدیریت سیستم

مدیریت شبکه در لینوکس ، مدیران سیستم به طور مداوم وظایفی از قبیل پیکربندی، نگهداری، عیب‌یابی و مدیریت سرورها و شبکه‌ها در مراکز داده را انجام می‌دهند. در لینوکس ابزارها و دستورات متعددی برای اهداف مدیریتی طراحی شده‌اند.

در این آموزش دستورات شبکه در لینوکس ، به بررسی برخی از پرکاربردترین ابزارها و دستورات خط فرمان برای مدیریت شبکه در لینوکس می‌پردازیم. این دستورات را در دسته‌بندی‌های مختلف مرور خواهیم کرد و نمونه‌هایی از کاربردهای رایج آن‌ها را توضیح می‌دهیم که مدیریت شبکه در لینوکس را بسیار ساده‌تر می‌کند.
این لیست به همان اندازه برای مهندسان شبکه لینوکس به‌صورت تمام‌وقت نیز مفید است.

 پیکربندی شبکه، عیب‌یابی و ابزارهای دیباگ در آموزش دستورات شبکه در لینوکس

در این آموزش، ابزارهای مهمی برای مدیریت و عیب‌یابی شبکه در لینوکس معرفی شد. ابزارهایی مانند ifconfig، ip و tcpdump به مدیران سیستم کمک می‌کنند تا شبکه‌ها را پیکربندی، مانیتور و مشکلات را به‌سرعت رفع کنند.

۱. دستور ifconfig یکی از دستورات شبکه در لینوکس

ifconfig یک ابزار خط فرمان برای پیکربندی رابط‌های شبکه است و همچنین برای مقداردهی اولیه رابط‌ها هنگام بوت سیستم استفاده می‌شود. پس از راه‌اندازی سرور، می‌توان از آن برای تخصیص آدرس IP به یک رابط و فعال یا غیرفعال کردن آن بر اساس نیاز استفاده کرد.
همچنین برای مشاهده آدرس IP، آدرس سخت‌افزاری (MAC Address) و همچنین اندازه MTU (واحد انتقال حداکثر) رابط‌های فعال فعلی استفاده می‌شود. از این رو، ifconfig برای دیباگ یا بهینه‌سازی سیستم بسیار مفید است.

در اینجا مثالی برای نمایش وضعیت تمامی رابط‌های فعال شبکه آورده شده است:

$ ifconfig enp1s0    Link encap:Ethernet  HWaddr 28:d2:44:eb:bd:98             inet addr:192.168.0.103  Bcast:192.168.0.255  Mask:255.255.255.0           inet6 addr: fe80::8f0c:7825:8057:5eec/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:169854 errors:0 dropped:0 overruns:0 frame:0           TX packets:125995 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000            RX bytes:174146270 (174.1 MB)  TX bytes:21062129 (21.0 MB) 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:15793 errors:0 dropped:0 overruns:0 frame:0           TX packets:15793 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1            RX bytes:2898946 (2.8 MB)  TX bytes:2898946 (2.8 MB)

پ.ن
آیا نیاز به خرید سرور مجازی ایران دارید؟ لطفا بر روی لینک اون کلیک کنید! اگر نیاز به vps ایران با آی پی تمیز و بدون محدودیت دارید کلیک کنید.
 
جهت لیست کردن تمام رابط‌های شبکه که در حال حاضر در دسترس هستند، چه فعال باشند و چه غیرفعال، از گزینه -a استفاده کنید:

$ ifconfig -a 	 

برای تخصیص یک آدرس IP به یک رابط شبکه، از دستور زیر استفاده کنید:

$ sudo ifconfig eth0 192.168.56.5 netmask 255.255.255.0 

به‌منظور فعال کردن یک رابط شبکه، دستور زیر را تایپ کنید:

$ sudo ifconfig up eth0 

برای غیرفعال کردن یا خاموش کردن یک رابط شبکه، دستور زیر را وارد کنید:

$ sudo ifconfig down eth0 

توجه: اگرچه دستور ifconfig ابزار قدرتمندی است، اما اکنون منسوخ شده و جایگزین آن دستور ip است که در ادامه توضیح داده شده است.

۲. یکی از دستورات شبکه در لینوکس دستور IP

دستور ip یک ابزار خط فرمان مفید برای نمایش و دستکاری مسیرها، دستگاه‌های شبکه و رابط‌ها است. این دستور جایگزین ifconfig و بسیاری دیگر از دستورات شبکه است. (برای یادگیری بیشتر، مقاله “تفاوت بین دستورات ifconfig و ip” را بخوانید.)
دستور زیر آدرس IP و اطلاعات دیگر مربوط به یک رابط شبکه را نمایش می‌دهد:

$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00     inet 127.0.0.1/8 scope host lo        valid_lft forever preferred_lft forever     inet6 ::1/128 scope host         valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000     link/ether 28:d2:44:eb:bd:98 brd ff:ff:ff:ff:ff:ff     inet 192.168.0.103/24 brd 192.168.0.255 scope global dynamic enp1s0        valid_lft 5772sec preferred_lft 5772sec     inet6 fe80::8f0c:7825:8057:5eec/64 scope link         valid_lft forever preferred_lft forever 3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000     link/ether 38:b1:db:7c:78:c7 brd ff:ff:ff:ff:ff:ff

برای تخصیص موقت آدرس IP به یک رابط شبکه خاص (eth0)، دستور زیر را وارد کنید:

$ sudo ip addr add 192.168.56.1 dev eth0 

جهت حذف آدرس IP تخصیص داده شده از یک رابط شبکه (eth0)، دستور زیر را وارد کنید:

$ sudo ip addr del 192.168.56.15/24 dev eth0 

برای نمایش جدول همسایگی فعلی در هسته، دستور زیر را وارد کنید:

$ ip neigh 192.168.0.1 dev enp1s0 lladdr 10:fe:ed:3d:f3:82 REACHABLE

۳. دستور ifup، ifdown و ifquery

با استفاده از دستور ifup یک رابط شبکه را فعال می‌کند و آن را برای انتقال و دریافت داده‌ها در دسترس قرار می‌دهد

$ sudo ifup eth0 

دستور ifdown یک رابط شبکه را غیرفعال می‌کند و آن را در وضعیتی نگه می‌دارد که نمی‌تواند داده‌ها را منتقل یا دریافت کند.

$ sudo ifdown eth0 

برای مشاهده جزئیات تنظیمات یک رابط شبکه، می‌توان از دستور ifquery استفاده کرد.

$ sudo ifquery eth0 

 ۴. دستور ethtool

ethtool یک ابزار خط فرمان برای پرسش و تغییر پارامترهای کنترل‌کننده رابط شبکه و درایورهای دستگاه است. مثال زیر نحوه استفاده از ethtool و دستوری برای مشاهده پارامترهای رابط شبکه را نشان می‌دهد.

$ sudo ethtool enp0s3 Settings for enp0s3: 	Supported ports: [ TP ] 	Supported link modes:   10baseT/Half 10baseT/Full  	                        100baseT/Half 100baseT/Full  	                        1000baseT/Full  	Supported pause frame use: No 	Supports auto-negotiation: Yes 	Advertised link modes:  10baseT/Half 10baseT/Full  	                        100baseT/Half 100baseT/Full  	                        1000baseT/Full  	Advertised pause frame use: No 	Advertised auto-negotiation: Yes 	Speed: 1000Mb/s 	Duplex: Full 	Port: Twisted Pair 	PHYAD: 0 	Transceiver: internal 	Auto-negotiation: on 	MDI-X: off (auto) 	Supports Wake-on: umbg 	Wake-on: d 	Current message level: 0x00000007 (7) 			       drv probe link 	Link detected: yes

 

 ۵. دستور ping یکی از کلیدی ترین دستورات شبکه در لینوکس

ping (Packet INternet Groper) ابزاری است که معمولاً برای آزمایش اتصال بین دو سیستم در یک شبکه (شبکه محلی (LAN) یا شبکه گسترده (WAN)) استفاده می‌شود. در آموزش مدیریت شبکه در لینوکس این ابزار از پروتکل ICMP (Internet Control Message Protocol) برای ارتباط با نودهای شبکه استفاده می‌کند.
برای آزمایش اتصال به یک نود دیگر، به سادگی آدرس IP یا نام میزبان آن را وارد کنید، به عنوان مثال:

$ ping 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=0.191 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.156 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.179 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.182 ms 64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=0.207 ms 64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=0.157 ms ^C --- 192.168.0.103 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5099ms rtt min/avg/max/mdev = 0.156/0.178/0.207/0.023 ms

شما می‌توانید به دستور ping بگویید که پس از ارسال تعداد مشخصی از بسته‌های ECHO_REQUEST خارج شود، با استفاده از گزینه -c به شکل زیر:

$ ping -c 4 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=1.09 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.157 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.163 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.190 ms --- 192.168.0.103 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3029ms rtt min/avg/max/mdev = 0.157/0.402/1.098/0.402 ms

 ۶. یکی از دستورات شبکه در لینوکس دستور Traceroute

traceroute یک ابزار خط فرمان برای ردیابی مسیر کامل از سیستم محلی شما به یک سیستم شبکه دیگر است. این ابزار تعدادی از هاپ‌ها (آدرس‌های IP روتر) را در مسیری که برای رسیدن به سرور نهایی طی می‌کنید، چاپ می‌کند. traceroute یک ابزار آسان برای عیب‌یابی شبکه پس از دستور ping است.
در این مثال، ما مسیر بسته‌هایی را که از سیستم محلی به یکی از سرورهای گوگل با آدرس IP 216.58.204.46 می‌گیرد، ردیابی می‌کنیم:

$ traceroute 216.58.204.46 traceroute to 216.58.204.46 (216.58.204.46), 30 hops max, 60 byte packets  1  gateway (192.168.0.1)  0.487 ms  0.277 ms  0.269 ms  2  5.5.5.215 (5.5.5.215)  1.846 ms  1.631 ms  1.553 ms  3  * * *  4  72.14.194.226 (72.14.194.226)  3.762 ms  3.683 ms  3.577 ms  5  108.170.248.179 (108.170.248.179)  4.666 ms 108.170.248.162 (108.170.248.162)  4.869 ms 108.170.248.194 (108.170.248.194)  4.245 ms  6  72.14.235.133 (72.14.235.133)  72.443 ms 209.85.241.175 (209.85.241.175)  62.738 ms 72.14.235.133 (72.14.235.133)  65.809 ms  7  66.249.94.140 (66.249.94.140)  128.726 ms  127.506 ms 209.85.248.5 (209.85.248.5)  127.330 ms  8  74.125.251.181 (74.125.251.181)  127.219 ms 108.170.236.124 (108.170.236.124)  212.544 ms 74.125.251.181 (74.125.251.181)  127.249 ms  9  216.239.49.134 (216.239.49.134)  236.906 ms 209.85.242.80 (209.85.242.80)  254.810 ms  254.735 ms 10  209.85.251.138 (209.85.251.138)  252.002 ms 216.239.43.227 (216.239.43.227)  251.975 ms 209.85.242.80 (209.85.242.80)  236.343 ms 11  216.239.43.227 (216.239.43.227)  251.452 ms 72.14.234.8 (72.14.234.8)  279.650 ms  277.492 ms 12  209.85.250.9 (209.85.250.9)  274.521 ms  274.450 ms 209.85.253.249 (209.85.253.249)  270.558 ms 13  209.85.250.9 (209.85.250.9)  269.147 ms 209.85.254.244 (209.85.254.244)  347.046 ms 209.85.250.9 (209.85.250.9)  285.265 ms 14  64.233.175.112 (64.233.175.112)  344.852 ms 216.239.57.236 (216.239.57.236)  343.786 ms 64.233.175.112 (64.233.175.112)  345.273 ms 15  108.170.246.129 (108.170.246.129)  345.054 ms  345.342 ms 64.233.175.112 (64.233.175.112)  343.706 ms 16  108.170.238.119 (108.170.238.119)  345.610 ms 108.170.246.161 (108.170.246.161)  344.726 ms 108.170.238.117 (108.170.238.117)  345.536 ms 17  lhr25s12-in-f46.1e100.net (216.58.204.46)  345.382 ms  345.031 ms  344.884 ms

 ۷. ابزار تشخیص شبکه MTR

MTR در آموزش دستورات شبکه در لینوکس یک ابزار تشخیص شبکه مدرن و خط فرمان است که عملکردهای ping و traceroute را در یک ابزار تشخیصی واحد ترکیب می‌کند. خروجی آن به‌صورت زمان واقعی به‌روزرسانی می‌شود و به‌طور پیش‌فرض تا زمانی که با فشردن کلید q از برنامه خارج نشوید، ادامه می‌یابد.
ساده‌ترین راه برای اجرای mtr ارائه یک نام میزبان یا آدرس IP به‌عنوان آرگومان به‌صورت زیر است:

$ mtr google.com OR $ mtr 216.58.223.78

 نمونه خروجی:

در زیر یک نمونه خروجی از دستور mtr برای ردیابی مسیر به یک آدرس IP نمایش داده شده است:

poshtvarserver.com (0.0.0.0)                                   Thu Jul 12 08:58:27 2018 First TTL: 1  Host                                                   Loss%   Snt   Last   Avg  Best  Wrst StDev  1. 192.168.0.1                                         0.0%    41    0.5   0.6   0.4   1.7   0.2  2. 5.5.5.215                                           0.0%    40    1.9   1.5   0.8   7.3   1.0  3. 209.snat-111-91-120.hns.net.in                      23.1%    40    1.9   2.7   1.7  10.5   1.6  4. 72.14.194.226                                       0.0%    40   89.1   5.2   2.2  89.1  13.7  5. 108.170.248.193                                     0.0%    40    3.0   4.1   2.4  52.4   7.8  6. 108.170.237.43                                      0.0%    40    2.9   5.3   2.5  94.1  14.4  7. bom07s10-in-f174.1e100.net                          0.0%    40    2.6   6.7   2.3  79.7  16.

شما می‌توانید تعداد پینگ‌ها را به یک مقدار مشخص محدود کنید و پس از ارسال آن پینگ‌ها، از mtr خارج شوید، با استفاده از گزینه -c به شکل زیر:

$ mtr -c 4 google.com 

 ۸. دستور Route

route یک ابزار خط فرمان برای نمایش یا تغییر جدول مسیریابی IP در یک سیستم لینوکس است. این دستور یکی از دستورات مدیریت شبکه در لینوکس است که عمدتاً برای پیکربندی مسیرهای ایستا به میزبان‌ها یا شبکه‌های خاص از طریق یک رابط استفاده می‌شود.
برای مشاهده جدول مسیریابی IP هسته، دستور زیر را وارد کنید:

$ route Destination     Gateway         Genmask         Flags Metric Ref    Use Iface default         gateway         0.0.0.0         UG    100    0        0 enp0s3 192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s3 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

شما می‌توانید از دستورات متعددی برای پیکربندی مسیریابی استفاده کنید. در اینجا چند مورد مفید آورده شده است:

برای افزودن یک دروازه پیش‌فرض به جدول مسیریابی، از دستور زیر استفاده کنید:

$ sudo route add default gw <gateway-ip> 

جهت افزودن یک مسیر شبکه به جدول مسیریابی، از دستور زیر استفاده کنید:

$ sudo route add -net <network ip/cidr> gw <gateway ip> <interface> 

به‌منظور حذف یک ورودی خاص از جدول مسیریابی، از دستور زیر استفاده کنید:

$ sudo route del -net <network ip/cidr> 

 ۹. دستور Nmcli

nmcli یک ابزار خط فرمان ساده و قابل اسکریپت برای گزارش وضعیت شبکه، مدیریت اتصالات شبکه و کنترل NetworkManager است.
جهت مشاهده تمام دستگاه‌های شبکه خود، دستور زیر را وارد کنید:

$ nmcli dev status DEVICE      TYPE      STATE      CONNECTION          virbr0      bridge    connected  virbr0              enp0s3      ethernet  connected  Wired connection 1 

به منظور بررسی اتصالات شبکه در سیستم خود، دستور زیر را وارد کنید:

$ nmcli con show Wired connection 1  bc3638ff-205a-3bbb-8845-5a4b0f7eef91  802-3-ethernet  enp0s3  virbr0              00f5d53e-fd51-41d3-b069-bdfd2dde062b  bridge          virbr0 

برای مشاهده تنها اتصالات فعال، گزینه -a را به دستور اضافه کنید:

$ nmcli con show -a 

 ابزارهای اسکن شبکه و تحلیل عملکرد

این ابزارها به مدیران سیستم کمک می‌کنند تا وضعیت شبکه را بررسی کرده و عملکرد آن را بهینه‌سازی کنند. در زیر برخی از ابزارهای کاربردی در این زمینه آورده شده است:

 ۱۰. دستور Netstat

netstat یک ابزار خط فرمان است که اطلاعات مفیدی از جمله اتصالات شبکه، جدول‌های مسیریابی، آمار رابط‌ها و بسیاری موارد دیگر را در ارتباط با زیرسیستم شبکه لینوکس نمایش می‌دهد. این ابزار برای عیب‌یابی شبکه و تحلیل عملکرد بسیار مفید است.
علاوه بر این، netstat به عنوان یک ابزار اساسی برای اشکال‌زدایی خدمات شبکه نیز به کار می‌رود تا بررسی کند کدام برنامه‌ها در چه پورت‌هایی در حال گوش دادن هستند. به عنوان مثال، دستور زیر همه پورت‌های TCP در حالت گوش دادن و برنامه‌هایی که در حال گوش دادن به آن‌ها هستند را نمایش می‌دهد:

$ sudo netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1257/master          tcp        0      0 127.0.0.1:5003          0.0.0.0:*               LISTEN      1/systemd            tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      1015/dovecot         tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      1015/dovecot         tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd            tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      1257/master          tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1404/pdns_server     tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1064/pure-ftpd (SER  tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      972/sshd             tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      975/cupsd            tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1257/master          tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN      636/lscpd (lscpd -   tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      1015/dovecot         tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      1015/dovecot         tcp6       0      0 :::3306                 :::*                    LISTEN      1053/mysqld          tcp6       0      0 :::3307                 :::*                    LISTEN      1211/mysqld          tcp6       0      0 :::587                  :::*                    LISTEN      1257/master          tcp6       0      0 :::110                  :::*                    LISTEN      1015/dovecot         tcp6       0      0 :::143                  :::*                    LISTEN      1015/dovecot         tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd            tcp6       0      0 :::80                   :::*                    LISTEN      990/httpd            tcp6       0      0 :::465                  :::*                    LISTEN      1257/master          tcp6       0      0 :::53                   :::*                    LISTEN      1404/pdns_server     tcp6       0      0 :::21                   :::*                    LISTEN      1064/pure-ftpd (SER  tcp6       0      0 :::22                   :::*                    LISTEN      972/sshd             tcp6       0      0 ::1:631                 :::*                    LISTEN      975/cupsd            tcp6       0      0 :::25                   :::*                    LISTEN      1257/master          tcp6       0      0 :::993                  :::*                    LISTEN      1015/dovecot         tcp6       0      0 :::995                  :::*                    LISTEN      1015/dovecot   

برای مشاهده جدول مسیریابی هسته، از گزینه -r استفاده کنید (که معادل اجرای دستور route در بالا است):

$ netstat -r Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface default         gateway         0.0.0.0         UG        0 0          0 enp0s3 192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 enp0s3 192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

توجه: اگرچه netstat ابزاری عالی است، اما اکنون منسوخ شده و جایگزین آن دستور ss است که در زیر توضیح داده شده است.

 ۱۱. دستور ss

ss (مخفف socket statistics) یک ابزار قدرتمند خط فرمان برای بررسی سوکت‌ها است. این ابزار آمار سوکت‌ها را استخراج کرده و اطلاعات مشابه با netstat را نمایش می‌دهد. علاوه بر این، نسبت به ابزارهای مشابه اطلاعات بیشتری درباره TCP و وضعیت‌ها ارائه می‌دهد.
مثال زیر نحوه فهرست کردن تمام پورت‌های TCP (سوکت‌ها) که روی یک سرور باز هستند را نشان می‌دهد:

$ ss -ta State      Recv-Q Send-Q                                        Local Address:Port                                                         Peer Address:Port                 LISTEN     0      100                                                       *:submission                                                              *:*                     LISTEN     0      128                                               127.0.0.1:fmpro-internal                                                          *:*                     LISTEN     0      100                                                       *:pop3                                                                    *:*                     LISTEN     0      100                                                       *:imap                                                                    *:*                     LISTEN     0      128                                                       *:sunrpc                                                                  *:*                     LISTEN     0      100                                                       *:urd                                                                     *:*                     LISTEN     0      128                                                       *:domain                                                                  *:*                     LISTEN     0      9                                                         *:ftp                                                                     *:*                     LISTEN     0      128                                                       *:ssh                                                                     *:*                     LISTEN     0      128                                               127.0.0.1:ipp                                                                     *:*                     LISTEN     0      100                                                       *:smtp                                                                    *:*                     LISTEN     0      128                                                       *:8090                                                                    *:*                     LISTEN     0      100                                                       *:imaps                                                                   *:*                     LISTEN     0      100                                                       *:pop3s                                                                   *:*                     ESTAB      0      0                                             192.168.0.104:ssh                                                         192.168.0.103:36398                 ESTAB      0      0                                                 127.0.0.1:34642                                                           127.0.0.1:opsession-prxy        ESTAB      0      0                                                 127.0.0.1:34638                                                           127.0.0.1:opsession-prxy        ESTAB      0      0                                                 127.0.0.1:34644                                                           127.0.0.1:opsession-prxy        ESTAB      0      0                                                 127.0.0.1:34640                                                           127.0.0.1:opsession-prxy        LISTEN     0      80                                                       :::mysql                                                                  :::*              ...

برای نمایش همه اتصالات TCP فعال همراه با تایمرهای آن‌ها، دستور زیر را اجرا کنید:

$ ss -to 

 ۱۲. دستور NC (NetCat)

NC که به آن “چاقوی ارتش سوئیسی شبکه” نیز گفته می‌شود، یک ابزار قدرتمند برای انجام تقریباً هر کاری مرتبط با سوکت‌های TCP، UDP، یا سوکت‌های دامنه UNIX است. این ابزار برای باز کردن اتصالات TCP، گوش دادن روی پورت‌های دلخواه TCP و UDP، انجام اسکن پورت و کارهای بیشتری استفاده می‌شود.
همچنین می‌توانید از آن به‌عنوان یک پراکسی ساده TCP، برای تست دیمن‌های شبکه، بررسی دسترسی‌پذیری پورت‌های راه دور و بسیاری موارد دیگر استفاده کنید. علاوه بر این، می‌توانید nc را همراه با دستور pv برای انتقال فایل‌ها بین دو کامپیوتر به کار ببرید.

مثال زیر نحوه اسکن لیست پورت‌ها را نشان می‌دهد:

$ nc -zv server2.poshtvar.lan 21 22 80 443 3000 

همچنین می‌توانید یک بازه از پورت‌ها را به صورت زیر مشخص کنید:

$ nc -zv server2.poshtvar.lan 20-90 

مثال زیر نشان می‌دهد که چگونه می‌توان از nc برای باز کردن یک اتصال TCP به پورت 5000 در سرور server2.poshtvar.lan، با استفاده از پورت 3000 به عنوان پورت مبدأ و با زمان انتظار 10 ثانیه استفاده کرد:

$ nc -p 3000 -w 10 server2.poshtvar.lan 5000  

 ۱۳. دستور Nmap

Nmap (Network Mapper) یک ابزار قدرتمند و بسیار متنوع برای مدیران سیستم و شبکه لینوکس است. از این ابزار برای جمع‌آوری اطلاعات درباره یک میزبان خاص یا کاوش کل شبکه‌ها استفاده می‌شود. همچنین، Nmap برای انجام اسکن‌های امنیتی، ممیزی‌های شبکه و پیدا کردن پورت‌های باز در میزبان‌های راه دور و بسیاری موارد دیگر به کار می‌رود.
برای اسکن یک میزبان با استفاده از نام میزبان یا آدرس IP آن، به عنوان مثال:

$ nmap google.com  Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:23 BST Nmap scan report for google.com (172.217.166.78) Host is up (0.0036s latency). rDNS record for 172.217.166.78: bom05s15-in-f14.1e100.net Not shown: 998 filtered ports PORT    STATE SERVICE 80/tcp  open  http 443/tcp open  https Nmap done: 1 IP address (1 host up) scanned in 4.92 seconds

همچنین می‌توانید به جای نام میزبان از آدرس IP استفاده کنید، به صورت زیر:

$ nmap 192.168.0.103 Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:24 BST Nmap scan report for 192.168.0.103 Host is up (0.000051s latency). Not shown: 994 closed ports PORT     STATE SERVICE 22/tcp   open  ssh 25/tcp   open  smtp 902/tcp  open  iss-realsecure 4242/tcp open  vrml-multi-use 5900/tcp open  vnc 8080/tcp open  http-proxy MAC Address: 28:D2:44:EB:BD:98 (Lcfc(hefei) Electronics Technology Co.) Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

 ابزارهای جستجوی DNS

ابزارهای جستجوی DNS برای بررسی و اشکال‌زدایی رکوردهای DNS (Domain Name System) استفاده می‌شوند. این ابزارها به مدیران شبکه و سیستم‌ها کمک می‌کنند تا اطلاعات مرتبط با دامنه‌ها و آدرس‌های IP را پیدا کنند و مشکلات مربوط به تنظیمات DNS را شناسایی و حل کنند. در ادامه به چند ابزار مهم جستجوی DNS اشاره می‌شود:

۱۴. دستور host

دستور host یک ابزار ساده برای انجام جستجوهای DNS است. این ابزار نام‌های میزبان (hostname) را به آدرس‌های IP و بالعکس تبدیل می‌کند.

$ host google.com google.com has address 172.217.166.78 google.com mail is handled by 20 alt1.aspmx.l.google.com. google.com mail is handled by 30 alt2.aspmx.l.google.com. google.com mail is handled by 40 alt3.aspmx.l.google.com. google.com mail is handled by 50 alt4.aspmx.l.google.com. google.com mail is handled by 10 aspmx.l.google.com.

 ۱۵. دستور dig

dig (مخفف domain information groper) یک ابزار ساده دیگر برای جستجوی DNS است که برای پرس‌وجو درباره اطلاعات مربوط به DNS مانند رکورد A، CNAME، MX و غیره استفاده می‌شود. به عنوان مثال:

$ dig google.com ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23083 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 14 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;google.com.			IN	A ;; ANSWER SECTION: google.com.		72	IN	A	172.217.166.78 ;; AUTHORITY SECTION: com.			13482	IN	NS	c.gtld-servers.net. com.			13482	IN	NS	d.gtld-servers.net. com.			13482	IN	NS	e.gtld-servers.net. com.			13482	IN	NS	f.gtld-servers.net. com.			13482	IN	NS	g.gtld-servers.net. com.			13482	IN	NS	h.gtld-servers.net. com.			13482	IN	NS	i.gtld-servers.net. com.			13482	IN	NS	j.gtld-servers.net. com.			13482	IN	NS	k.gtld-servers.net. com.			13482	IN	NS	l.gtld-servers.net. com.			13482	IN	NS	m.gtld-servers.net. com.			13482	IN	NS	a.gtld-servers.net. com.			13482	IN	NS	b.gtld-servers.net. ;; ADDITIONAL SECTION: a.gtld-servers.net.	81883	IN	A	192.5.6.30 b.gtld-servers.net.	3999	IN	A	192.33.14.30 c.gtld-servers.net.	14876	IN	A	192.26.92.30 d.gtld-servers.net.	85172	IN	A	192.31.80.30 e.gtld-servers.net.	95861	IN	A	192.12.94.30 f.gtld-servers.net.	78471	IN	A	192.35.51.30 g.gtld-servers.net.	5217	IN	A	192.42.93.30 h.gtld-servers.net.	111531	IN	A	192.54.112.30 i.gtld-servers.net.	93017	IN	A	192.43.172.30 j.gtld-servers.net.	93542	IN	A	192.48.79.30 k.gtld-servers.net.	107218	IN	A	192.52.178.30 l.gtld-servers.net.	6280	IN	A	192.41.162.30 m.gtld-servers.net.	2689	IN	A	192.55.83.30 ;; Query time: 4 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Thu Jul 12 09:30:57 BST 2018 ;; MSG SIZE  rcvd: 487

 ۱۶. دستور NSLookup

nslookup یک ابزار خط فرمان محبوب دیگر برای پرس‌وجو از سرورهای DNS به صورت تعاملی و غیرتعامللی است. این ابزار برای پرس‌وجو از رکوردهای منابع DNS (RR) استفاده می‌شود. شما می‌توانید رکورد “A” (آدرس IP) یک دامنه را به صورت زیر پیدا کنید:

$ nslookup google.com Server:		192.168.0.1 Address:	192.168.0.1#53 Non-authoritative answer: Name:	google.com Address: 172.217.166.78

همچنین می‌توانید یک جستجوی معکوس دامنه (reverse domain lookup) را به صورت زیر انجام دهید:

$ nslookup 216.58.208.174 Server:		192.168.0.1 Address:	192.168.0.1#53 Non-authoritative answer: 174.208.58.216.in-addr.arpa	name = lhr25s09-in-f14.1e100.net. 174.208.58.216.in-addr.arpa	name = lhr25s09-in-f174.1e100.net. Authoritative answers can be found from: in-addr.arpa	nameserver = e.in-addr-servers.arpa. in-addr.arpa	nameserver = f.in-addr-servers.arpa. in-addr.arpa	nameserver = a.in-addr-servers.arpa. in-addr.arpa	nameserver = b.in-addr-servers.arpa. in-addr.arpa	nameserver = c.in-addr-servers.arpa. in-addr.arpa	nameserver = d.in-addr-servers.arpa. a.in-addr-servers.arpa	internet address = 199.180.182.53 b.in-addr-servers.arpa	internet address = 199.253.183.183 c.in-addr-servers.arpa	internet address = 196.216.169.10 d.in-addr-servers.arpa	internet address = 200.10.60.53 e.in-addr-servers.arpa	internet address = 203.119.86.101 f.in-addr-servers.arpa	internet address = 193.0.9.1

 تحلیل‌گرهای بسته‌های شبکه در لینوکس

تحلیل‌گرهای بسته‌های شبکه ابزارهایی هستند که برای بررسی و تجزیه و تحلیل ترافیک شبکه استفاده می‌شوند. این ابزارها به مدیران سیستم و شبکه کمک می‌کنند تا مشکلات شبکه را شناسایی و بهینه‌سازی عملکرد شبکه را انجام دهند. در زیر به چند تحلیل‌گر بسته‌های شبکه محبوب در لینوکس اشاره می‌شود:

 ۱۷. دستور Tcpdump

tcpdump یک ابزار خط فرمان بسیار قدرتمند و پرکاربرد برای شنود شبکه است. از این ابزار برای ضبط و تجزیه و تحلیل بسته‌های TCP/IP که در یک شبکه از طریق یک رابط خاص ارسال یا دریافت می‌شوند، استفاده می‌شود.
برای ضبط بسته‌ها از یک رابط مشخص، آن را با استفاده از گزینه -i مشخص کنید:

$ tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 09:35:40.287439 IP tecmint.com.ssh > 192.168.0.103.36398: Flags [P.], seq 4152360356:4152360552, ack 306922699, win 270, options [nop,nop,TS val 2211778668 ecr 2019055], length 196 09:35:40.287655 IP 192.168.0.103.36398 > tecmint.com.ssh: Flags [.], ack 196, win 5202, options [nop,nop,TS val 2019058 ecr 2211778668], length 0 09:35:40.288269 IP tecmint.com.54899 > gateway.domain: 43760+ PTR? 103.0.168.192.in-addr.arpa. (44) 09:35:40.333763 IP gateway.domain > tecmint.com.54899: 43760 NXDomain* 0/1/0 (94) 09:35:40.335311 IP tecmint.com.52036 > gateway.domain: 44289+ PTR? 1.0.168.192.in-addr.arpa. (42)

برای ضبط تعداد مشخصی از بسته‌ها، از گزینه -c استفاده کنید و تعداد مورد نظر را وارد کنید:

$ tcpdump -c 5 -i eth1 

همچنین می‌توانید بسته‌ها را ضبط کرده و برای تحلیل‌های بعدی در یک فایل ذخیره کنید. از گزینه -w برای مشخص کردن نام فایل خروجی استفاده کنید:

$ tcpdump -w captured.pacs -i eth1 

 ۱۸. ابزار Wireshark

Wireshark یک ابزار محبوب، قدرتمند، چندمنظوره و آسان برای استفاده است که برای ضبط و تجزیه و تحلیل بسته‌ها در یک شبکه بسته‌ای (packet-switched network) به صورت آنی (real-time) به کار می‌رود.
شما همچنین می‌توانید داده‌هایی که ضبط شده‌اند را برای بررسی‌های بعدی در یک فایل ذخیره کنید. این ابزار توسط مدیران سیستم و مهندسان شبکه برای نظارت و بررسی بسته‌ها به منظور امنیت و عیب‌یابی استفاده می‌شود.

Wireshark یک ابزار تحلیلی بسته‌های شبکه است که برای نظارت بر ترافیک و بهبود امنیت شبکه‌ها مورد استفاده قرار می‌گیرد. با Wireshark، می‌توانید بسته‌ها را در زمان واقعی مشاهده و آن‌ها را برای بررسی‌های بعدی ذخیره کنید.

 ۱۹. ابزار Bmon

bmon یک ابزار قدرتمند مبتنی بر خط فرمان برای نظارت و عیب‌یابی شبکه در سیستم‌های شبه یونیکس است. این ابزار آمار مرتبط با شبکه را ضبط کرده و به صورت بصری و به فرمت قابل فهم برای انسان نمایش می‌دهد. bmon به عنوان یک مانیتور پهنای باند و تخمین‌زننده نرخ در زمان واقعی، قابل اعتماد و مؤثر است.

ابزار Bmon یک راهکار مؤثر برای نظارت بر وضعیت شبکه و بررسی آمار مرتبط با آن است. با استفاده از این ابزار، می‌توانید به راحتی داده‌ها را در یک فرمت قابل فهم مشاهده کرده و به مدیریت بهتر ترافیک شبکه بپردازید.

 ابزارهای مدیریت فایروال در لینوکس

مدیریت فایروال در سیستم‌های لینوکسی یکی از جنبه‌های حیاتی امنیت شبکه است. ابزارهای مختلفی برای تنظیم و پیکربندی فایروال وجود دارد که به مدیران سیستم کمک می‌کند تا ترافیک ورودی و خروجی را کنترل کرده و از حملات احتمالی جلوگیری کنند. در این بخش، به معرفی برخی از ابزارهای معتبر و کاربردی برای مدیریت فایروال در لینوکس خواهیم پرداخت.

۲۰. فایروال Iptables

iptables یک ابزار خط فرمان برای پیکربندی، نگهداری و بررسی جداول فیلترینگ بسته‌های IP و قوانین NAT است. این ابزار برای راه‌اندازی و مدیریت فایروال لینوکس (Netfilter) مورد استفاده قرار می‌گیرد. با استفاده از iptables می‌توانید قوانین فیلتر بسته‌های موجود را لیست کنید؛ قوانین فیلتر بسته را اضافه، حذف یا اصلاح کنید؛ و همچنین شمارشگرهای هر قانون فیلتر بسته را مشاهده کنید.

۲۱.  مدیریت فایروال در لینوکس با Firewalld: جایگزین مدرن برای Iptables

Firewalld یک دیمون قدرتمند و پویا برای مدیریت فایروال لینوکس (Netfilter) است که مشابه iptables عمل می‌کند. این ابزار به جای استفاده از زنجیره‌های INPUT، OUTPUT و FORWARD در iptables، از “منطقه‌های شبکه” استفاده می‌کند. در توزیع‌های فعلی لینوکس، مانند RHEL/CentOS 7 و Fedora 21 به بالا، iptables به طور فعال توسط firewalld جایگزین می‌شود.

نکته مهم: iptables هنوز پشتیبانی می‌شود و می‌توان آن را با مدیر بسته YUM نصب کرد. با این حال، شما نمی‌توانید به طور همزمان از Firewalld و iptables در یک سرور استفاده کنید و باید یکی را انتخاب کنید.

 ۲۲. UFW: ابزار ساده و کارآمد برای پیکربندی فایروال در لینوکس

UFW یک ابزار پیکربندی فایروال شناخته‌شده و پیش‌فرض در توزیع‌های لینوکس دبیان و اوبونتو است. این ابزار برای فعال/غیرفعال کردن فایروال سیستم، افزودن، حذف، اصلاح و بازنشانی قوانین فیلتر بسته و بسیاری کارهای دیگر مورد استفاده قرار می‌گیرد.

برای بررسی وضعیت فایروال UFW، دستور زیر را تایپ کنید:

$ sudo ufw status 

اگر فایروال UFW فعال نیست، می‌توانید آن را با استفاده از دستور زیر فعال کنید:

$ sudo ufw enable 

برای غیرفعال کردن فایروال UFW، از دستور زیر استفاده کنید:

$ sudo ufw disable  

اگر می‌خواهید اطلاعات بیشتری درباره یک برنامه خاص پیدا کنید، می‌توانید به صفحات راهنمای آن مراجعه کنید، همان‌طور که در زیر نشان داده شده است:

$ man programs_name 

در این آموزش جامع، ابزارها و کاربردهای مهم و پرکاربرد خط فرمان برای مدیریت شبکه در لینوکس را مورد بررسی قرار دادیم. این اطلاعات به مدیران سیستم و همچنین مهندسان و مدیران شبکه کمک می‌کند تا بتوانند به‌صورت مؤثرتر شبکه‌ها را پیکربندی، نگهداری و عیب‌یابی کنند.

اگر شما نیز ابزار یا اطلاعات مهم دیگری را در این زمینه می‌شناسید که در این راهنما به آن اشاره نشده، خوشحال می‌شویم نظرات و تجربیات خود را از طریق فرم نظرات زیر با ما به اشتراک بگذارید. هدف ما ارتقاء آگاهی و بهبود توانمندی‌های کاربران در زمینه مدیریت شبکه‌های لینوکس است

مطالب مرتبط: