چه باید بدانیم
- برای اجرای netstat و مشاهده اطلاعات دقیق در مورد شبکه Mac خود، یک پنجره Terminal جدید باز کنید، netstat را تایپ کنید ورا فشار دهید. Enter.
- خروجی netstat را با پرچم ها و گزینه ها محدود کنید. برای مشاهده گزینههای موجود netstat، man netstat را در خط فرمان تایپ کنید.
- از دستور lsof برای جبران کمبود یا عملکرد محدود netstat استفاده کنید، از جمله نمایش فایلهایی که در حال حاضر در هر برنامهای باز هستند.
این مقاله نحوه اجرای دستور ترمینال netstat را در macOS توضیح می دهد تا بتوانید اطلاعات دقیقی در مورد ارتباطات شبکه مک خود مشاهده کنید، از جمله نحوه صحبت مک شما با دنیای خارج، در همه پورت ها و همه برنامه ها.
چگونه Netstat را اجرا کنیم
یادگیری نحوه استفاده از netstat می تواند به شما در درک اتصالاتی که رایانه شما ایجاد می کند و دلیل آن کمک کند. دستور netstat به طور پیش فرض در مک در دسترس است. شما نیازی به دانلود یا نصب آن ندارید.
برای اجرای netstat:
-
برو به Finder > برو > Utilities.
-
دوبار کلیک کنید Terminal.
-
در پنجره ترمینال جدید، netstat را تایپ کنید و Return (یا Enter را فشار دهید) برای اجرای دستور.
-
حجم عظیمی از متن روی صفحه نمایش شما شروع به پیمایش می کند. اگر از هیچ یک از پرچمهای موجود استفاده نمیکنید (به زیر مراجعه کنید)، netstat اتصالات شبکه فعال را در Mac شما گزارش میدهد.با توجه به تعداد عملکردهایی که یک دستگاه شبکه مدرن انجام می دهد، می توانید انتظار داشته باشید که لیست طولانی باشد. یک گزارش استاندارد می تواند بیش از 1000 خط اجرا شود.
پرچمها و گزینههای Netstat
فیلتر کردن خروجی netstat برای درک آنچه در پورت های فعال مک شما اتفاق می افتد ضروری است. پرچمهای داخلی Netstat به شما امکان میدهد گزینههایی را تنظیم کنید و دامنه فرمان را محدود کنید.
برای دیدن همه گزینه های موجود netstat، man netstat را در خط فرمان تایپ کنید تا صفحه man netstat (مخفف «دستی») نمایش داده شود. همچنین میتوانید نسخه آنلاین صفحه مرد netstat را مشاهده کنید.
Syntax
مهم است که توجه داشته باشید که netstat در macOS مانند netstat در ویندوز و لینوکس کار نمی کند. استفاده از پرچمها یا نحو از آن پیادهسازیهای netstat ممکن است منجر به رفتار مورد انتظار نشود.
برای افزودن پرچم و گزینه به netstat در macOS، از نحو زیر استفاده کنید:
netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]
اگر خلاصه فوق کاملاً نامفهوم به نظر می رسد، نحوه خواندن دستور دستور را یاد بگیرید.
پرچم های مفید
در اینجا برخی از رایج ترین پرچم های مورد استفاده آمده است:
- - a شامل پورت های سرور در خروجی netstat است که در خروجی پیش فرض گنجانده نشده است.
- - g اطلاعات مرتبط با اتصالات چندپخشی را نمایش می دهد.
- - I داده های بسته را برای رابط مشخص شده فراهم می کند. همه رابطهای موجود را میتوان با پرچم - i مشاهده کرد، اما en0 معمولاً رابط شبکه پیشفرض خروجی است. (به حرف کوچک توجه کنید.)
- - n برچسب آدرس های راه دور را با نام سرکوب می کند. این سرعت خروجی netstat را افزایش می دهد در حالی که فقط اطلاعات محدود را حذف می کند.
- - p ترافیک مرتبط با یک پروتکل شبکه خاص را فهرست می کند. فهرست کامل پروتکلها در /etc/protocols موجود است، اما مهمترین آنها udp و tcp هستند..
- - r جدول مسیریابی را نمایش می دهد و نحوه مسیریابی بسته ها را در شبکه نشان می دهد.
- - s آمار شبکه را برای همه پروتکلها نشان میدهد، چه پروتکلها فعال باشند یا نه.
- - v پرحرفی را افزایش می دهد، به ویژه با افزودن ستونی که شناسه فرآیند (PID) مرتبط با هر پورت باز را نشان می دهد.
رابط
پروتکل
نمونههای Netstat
این مثال ها را در نظر بگیرید:
netstat -apv TCP
این دستور فقط اتصالات TCP را در مک شما برمی گرداند، از جمله پورت های باز و پورت های فعال. همچنین از خروجی پرمخاطب استفاده میکند و PIDهای مرتبط با هر اتصال را فهرست میکند.
netstat -a | grep -i "گوش دادن"
این ترکیب netstat و grep درگاههای باز را نشان میدهد، که پورتهایی هستند که به پیام گوش میدهند. کاراکتر لوله | خروجی یک دستور را به دستور دیگری ارسال می کند.در اینجا، خروجی netstat لوله به grep می رسد، به شما امکان می دهد کلمه کلیدی "گوش دادن" را جستجو کنید و نتایج را پیدا کنید.
دسترسی به Netstat از طریق Network Utility
همچنین می توانید از طریق برنامه Network Utility به برخی از عملکردهای netstat دسترسی داشته باشید که در نسخه های macOS تا Catalina موجود است (در Big Sur گنجانده نشده است).
برای دسترسی به Network Utility، Network Utility را در Spotlight Search تایپ کنید تا برنامه راه اندازی شود، سپس برگه Netstat را برای دسترسی به رابط گرافیکی.
گزینه های داخل Network Utility محدودتر از گزینه های موجود از طریق خط فرمان هستند. هر یک از چهار دکمه رادیویی انتخاب شده یک فرمان netstat از پیش تعیین شده را اجرا می کند و خروجی را نمایش می دهد.
دستورات netstat برای هر دکمه رادیویی به شرح زیر است:
- نمایش اطلاعات جدول مسیریابی اجرا می شود netstat -r.
- نمایش آمار جامع شبکه برای هر پروتکل اجرا netstat -s.
- نمایش اطلاعات چندپخشی اجرا می شود netstat -g.
- نمایش وضعیت همه اتصالات سوکت فعلی اجرا می شود netstat. اجرا می شود
تکمیل Netstat با Lsof
پیاده سازی macOS نت استات بسیاری از عملکردهایی را که کاربران انتظار دارند و نیاز دارند را شامل نمی شود. اگرچه نتاستات کاربردهای خود را دارد، اما نتاستات به اندازه ویندوز در سیستمعامل macOS مفید نیست. یک دستور متفاوت، lsof، جایگزین بسیاری از عملکردهای از دست رفته می شود.
Lsof فایل هایی را که در حال حاضر در برنامه ها باز هستند را نمایش می دهد. همچنین می توانید از آن برای بررسی پورت های باز مرتبط با برنامه استفاده کنید. lsof -i را اجرا کنید تا لیست برنامه هایی را که از طریق اینترنت در ارتباط هستند را مشاهده کنید. این هدف معمولاً هنگام استفاده از netstat در دستگاه های ویندوزی است. با این حال، تنها راه معنادار برای انجام این کار در macOS با netstat نیست، بلکه با lsof است.
Lsof Flags and Options
نمایش هر فایل باز یا اتصال به اینترنت معمولاً پرمخاطب است. به همین دلیل lsof با پرچم هایی برای محدود کردن نتایج با معیارهای خاص همراه است. مهمترین آنها در زیر آمده است.
برای اطلاعات بیشتر در مورد پرچمها و توضیحات فنی هر کدام، صفحه man lsof را بررسی کنید یا man lsof را در یک درخواست ترمینال اجرا کنید.
- - i اتصالات شبکه باز و نام فرآیندی که از اتصال استفاده می کند را نمایش می دهد. با افزودن 4 ، مانند - i4 ، فقط اتصالات IPv4 را نمایش می دهد. افزودن 6 به جای آن (- i6) فقط اتصالات IPv6 را نمایش می دهد.
- پرچم - i همچنین می تواند برای مشخص کردن جزئیات بیشتر گسترش یابد. -iTCP یا -iUDP فقط اتصالات TCP و UDP را برمیگرداند. -iTCP:25 فقط اتصالات TCP را در درگاه 25 برمیگرداند. طیفی از پورتها را میتوان با یک خط تیره مشخص کرد. -iTCP:25-50.
- استفاده از [email protected] فقط اتصالات را به آدرس IPv4 1.2.3.4 برمی گرداند. آدرس های IPv6 را می توان به همین روش مشخص کرد. پیشنماز @ همچنین میتواند برای تعیین نام میزبان به همان روش استفاده شود، اما آدرسهای IP راه دور و نام میزبان نمیتوانند به طور همزمان استفاده شوند.
- - s معمولاً lsof را مجبور به نمایش اندازه فایل می کند. اما وقتی با پرچم - i جفت می شود، - s متفاوت عمل می کند. درعوض، به کاربر اجازه می دهد تا پروتکل و وضعیت را برای بازگشت دستور مشخص کند.
- - p lsof را به شناسه فرآیند خاص (PID) محدود می کند. چند PID را می توان با استفاده از موارد مشترک تنظیم کرد، مانند -p 123، 456، 789. شناسه های فرآیند نیز می توانند با ^ حذف شوند، مانند 123، ^456، که به طور خاص PID 456 را حذف می کند.
- - P تبدیل شماره پورت ها به نام پورت ها را غیرفعال می کند و سرعت خروجی را افزایش می دهد.
- - n تبدیل شماره شبکه به نام میزبان را غیرفعال می کند. هنگامی که با - P در بالا استفاده می شود، می تواند به میزان قابل توجهی سرعت خروجی lsof را افزایش دهد.
- - u کاربر فقط دستورات متعلق به کاربر نامبرده را برمیگرداند.
lsof مثالها
در اینجا چند راه برای استفاده از lsof آورده شده است.
lsof -nP [email protected]:513
این دستور پیچیده اتصالات TCP را با نام میزبان lsof.itap و پورت 513 فهرست می کند. همچنین lsof بدون اجرا می شود. اتصال نام ها به آدرس های IP و پورت ها، باعث می شود دستور به طور قابل توجهی سریع تر اجرا شود.
lsof -iTCP -sTCP:LISTEN
این دستور هر اتصال TCP را با وضعیت LISTEN برمی گرداند و پورت های باز TCP را در Mac آشکار می کند. همچنین فرآیندهای مرتبط با آن پورت های باز را فهرست می کند. این یک ارتقاء قابل توجه نسبت به netstat است که حداکثر PIDها را فهرست می کند.
sudo lsof -i -u^$(whoami)
سایر دستورات شبکه
سایر دستورات شبکه ترمینال که ممکن است در بررسی شبکه شما جالب باشد عبارتند از arp، ping، و ipconfig.