کنسول

بررسی اجمالی

کنسول میکروتیک برای دسترسی به تنظیمات و ویژگی‌های مدیریت روتر MikroTik با استفاده از ترمینال های متنی، از راه دور با استفاده از پورت سریال، telnet، SSH یا صفحه کنسول در Winbox یا مستقیماً با استفاده از مانیتور و صفحه کلید استفاده می‌شود. کنسول برای نوشتن اسکریپت نیز استفاده می شود. این راهنما اصول کلی عملکرد کنسول را شرح می دهد. لطفاً در مورد برخی از دستورات کنسول پیشرفته و نحوه نوشتن اسکریپت به کتابچه راهنمای اسکریپت مراجعه کنید.

سلسله مراتب

کنسول اجازه می دهد تا تنظیمات روتر را با استفاده از دستورات متنی پیکربندی کنید. از آنجایی که دستورات زیادی وجود دارد، آنها به گروه هایی تقسیم می شوند که به روشی با سطوح منو سلسله مراتبی سازماندهی شده اند. نام یک سطح منو نشان دهنده اطلاعات پیکربندی قابل دسترسی در بخش مربوطه است، به عنوان مثال. /ip hotspot

مثال

به عنوان مثال، می توانید دستور ip route print/ را صادر کنید :  

				
					[admin@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
 # DST-ADDRESS PREF-SRC G GATEWAY DIS INTE...
0 A S 0.0.0.0/0 r 10.0.3.1 1 bridge1
1 ADC 1.0.1.0/24 1.0.1.1 0 bridge1
2 ADC 1.0.2.0/24 1.0.2.1 0 ether3
3 ADC 10.0.3.0/24 10.0.3.144 0 bridge1
4 ADC 10.10.10.0/24 10.10.10.1 0 wlan1
[admin@MikroTik] >
				
			

به جای تایپ کردن مسیر  IP / قبل از هر دستور، مسیر را می توان تنها یک بار تایپ کرد تا به این شاخه خاص از سلسله مراتب منو منتقل شود. بنابراین، مثال بالا نیز می تواند به صورت زیر اجرا شود:

				
					[admin@MikroTik] > ip route
[admin@MikroTik] ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
 B - blackhole, U - unreachable, P - prohibit #
DST-ADDRESS PREF-SRC G GATEWAY DIS INTE...
0 A S 0.0.0.0/0 r 10.0.3.1 1 bridge1
1 ADC 1.0.1.0/24 1.0.1.1 0 bridge1
2 ADC 1.0.2.0/24 1.0.2.1 0 ether3
3 ADC 10.0.3.0/24 10.0.3.144 0 bridge1
4 ADC 10.10.10.0/24 10.10.10.1 0 wlan1 [
admin@MikroTik] ip route>
				
			

توجه داشته باشید که اعلان تغییر می کند تا نشان دهد که در حال حاضر در سلسله مراتب منو کجا قرار دارید. برای رفتن دوباره به سطح بالا، ”  /  ” را تایپ کنید

				
					[admin@MikroTik] > ip route
[admin@MikroTik] ip route> /
[admin@MikroTik] >
				
			

برای بالا رفتن یک سطح فرمان، عبارت ” .. ” را تایپ کنید.  

				
					[admin@MikroTik] ip route> ..
[admin@MikroTik] ip>
				
			

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

				
					[admin@MikroTik] ip route> /ping 10.0.0.1
10.0.0.1 ping timeout
2 packets transmitted, 0 packets received, 100% packet loss
[admin@MikroTik] ip firewall nat> .. service-port print
Flags: X - disabled, I - invalid
# NAME PORTS
0 ftp 21
1 tftp 69
2 irc 6667
3 h323
4 sip
5 pptp
[admin@MikroTik] ip firewall nat>
				
			

نام و شماره آیتم ها

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

برای تغییر خصوصیات یک آیتم، باید از دستور set استفاده کنید و نام یا شماره آیتم را مشخص کنید.  

نام آیتم ها

برخی از لیست ها دارای مواردی هستند که نام های خاصی به هر یک از آنها اختصاص داده شده است. به عنوان مثال interface یا user هستند . در آنجا می توانید از نام آیتم به جای شماره آیتم استفاده کنید.    

لازم نیست قبل از دسترسی به آیتم ها با نام آنها از دستور print استفاده کنید، که بر خلاف اعداد، به صورت داخلی توسط کنسول تخصیص داده نمی شوند، اما ویژگی های آیتم ها هستند. بنابراین، آنها به تنهایی تغییر نمی کنند. با این حال، هنگامی که چندین کاربر همزمان پیکربندی روتر را تغییر می دهند، انواع موقعیت های مبهم ممکن است. به طور کلی، نام آیتم‌ها نسبت به اعداد «پایدارتر» هستند و همچنین اطلاعات بیشتری دارند، بنابراین هنگام نوشتن اسکریپت‌های کنسول، باید آنها را به اعداد ترجیح دهید.  

شماره آیتم ها

شماره آیتم ها توسط دستور print اختصاص داده می شود و ثابت نیستند – ممکن است دو دستور print متوالی موارد را متفاوت نشان دهند. اما نتایج آخرین دستورات print به خاطر سپرده می شود و بنابراین، پس از اختصاص دادن، می توان از شماره آیتم ها حتی پس از عملیات addremove و move استفاده کرد (از نسخه 3، عملیات move موارد را مجددا شماره گذاری نمی کند). شماره آیتم‌ها بر اساس هر سشن تخصیص داده می‌شوند، تا زمانی که کنسول را ترک نکنید یا تا زمانی که دستور print بعدی اجرا نشود، ثابت می‌مانند. همچنین، اعداد به طور جداگانه برای هر لیست اختصاص داده می شوند، بنابراین ip address print، شماره گذاری لیست اینترفیس را تغییر نمی دهد.        

از نسخه 3 می توان از شماره آیتم ها بدون اجرای دستور print استفاده کرد . اعداد دقیقاً مانند دستور print تخصیص داده می شوند 

شما می توانید چندین مورد را به عنوان هدف برای برخی از دستورات مشخص کنید. تقریباً در همه جا، جایی که می توانید تعداد آیتم را بنویسید، می توانید لیستی از اعداد را نیز بنویسید

				
					[admin@MikroTik] > interface print
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE MTU
0 R ether1 ether 1500
1 R ether2 ether 1500
2 R ether3 ether 1500
3 R ether4 ether 1500
[admin@MikroTik] > interface set 0,1,2 mtu=1460
[admin@MikroTik] > interface print
 Flags: X - disabled, D - dynamic, R - running
# NAME TYPE MTU
0 R ether1 ether 1460
1 R ether2 ether 1460
2 R ether3 ether 1460
3 R ether4 ether 1500
[admin@MikroTik] >
				
			

هشدار:  از شماره آیتم ها در اسکریپت ها استفاده نکنید، این روش قابل اعتمادی برای ویرایش موارد در scheduler  scripts ها و غیره نیست. به جای آن از دستور  find استفاده کنید  . اطلاعات بیشتر در اینجا همچنین به نمونه های اسکریپت نویسی نگاه کنید .   

تایپ سریع

دو ویژگی در کنسول وجود دارد که به وارد کردن دستورات بسیار سریعتر و آسان تر کمک می کند – کلید تکمیلی [Tab] و اختصارات نام دستورات. تکمیل ها مشابه پوسته bash در یونیکس کار می کنند. اگر کلید [Tab] را بعد از بخشی از یک کلمه فشار دهید، کنسول سعی می کند دستوری را در متن فعلی پیدا کند که با این کلمه شروع می شود. اگر فقط یک مشابه وجود داشته باشد، به طور خودکار اضافه می شود و یک فاصله به دنبال آن اضافه می شود:

/inte[Tab]_ becomes /interface _

 

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

/interface set e[Tab]_ becomes /interface set ether_

 

اگر فقط قسمت مشترک را تایپ کرده اید، یک بار فشار دادن کلید تب تاثیری ندارد. با این حال، فشار دادن آن برای بار دوم تمام مشابه های ممکن را به صورت فشرده نشان می دهد

				
					[admin@MikroTik] > interface set e[Tab]_
[admin@MikroTik] > interface set ether[Tab]_
[admin@MikroTik] > interface set ether[Tab]_
ether1 ether5
[admin@MikroTik] > interface set ether_
				
			

کلید [Tab] را می توان تقریباً در هر زمینه ای که کنسول ممکن است سرنخی در مورد مقادیر احتمالی داشته باشد – نام فرمان ها، نام آرگومان ها، آرگومان هایی که فقط چندین مقدار ممکن دارند (مانند نام موارد در برخی لیست ها یا نام پروتکل در فایروال) استفاده شود. و قوانین NAT). شما نمی توانید اعداد، آدرس های IP و مقادیر مشابه را تکمیل کنید.  

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

				
					[admin@MikroTik] > pin 10.1 c 3 si 100
				
			

برابر با:

				
					[admin@MikroTik] > ping 10.0.0.1 count 3 size 100
				
			

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

				
					[admin@MikroTik] > interface x[TAB][TAB]_
dot1x  vxlan  export
[admin@MikroTik] > interface mt[TAB]_
[admin@MikroTik] > interface monitor-traffic _
				
			

دستورات عمومی

برخی از دستورات تقریباً در تمام سطوح منو مشترک هستند، از جمله: print, set, remove, add, find, get, export, enable, disable, comment, move . این دستورات در سطوح مختلف منو رفتار مشابهی دارند. 

  • add  – این دستور معمولاً همه آرگومان های مشابه set را دارد ، به جز آرگومان شماره آیتم. یک آیتم جدید با مقادیری که شما مشخص کرده‌اید، معمولاً در انتهای فهرست آیتم‌ها، در مکان‌هایی که به ترتیب اقلام مرتبط است، اضافه می‌کند. برخی از ویژگی های مورد نیاز وجود دارد که باید آنها را ثبت کنید، مانند اینترفیس برای یک آدرس جدید، در حالی که سایر ویژگی ها روی پیش فرض تنظیم شده اند، مگر اینکه شما آنها را مشخص کنید.
    • پارامترهای رایج
      • copy-from  – یک مورد موجود را کپی می کند. مقادیر پیش فرض ویژگی های یک آیتم جدید را از یک مورد دیگر می گیرد. اگر نمی خواهید یک کپی دقیق ایجاد کنید، می توانید مقادیر جدیدی را برای برخی از ویژگی ها مشخص کنید. هنگام کپی کردن مواردی که دارای نام هستند، معمولاً باید یک نام جدید به کپی بدهید
      • place-before  – یک مورد جدید را قبل از یک مورد موجود با موقعیت مشخص قرار می دهد. بنابراین، پس از افزودن یک آیتم به لیست، نیازی به استفاده از دستور move ندارید. 
      • disabled  – وضعیت غیرفعال/فعال بودن آیتم(های) تازه اضافه شده را کنترل می کند
      • comment – شرح یک مورد جدید ایجاد شده را نگه می دارد
    • ارزش های بازگشتی
      • دستور add عدد داخلی آیتمی را که اضافه شده است، برمی گرداند
  • edit – این دستور با دستور set مرتبط است . می توان از آن برای ویرایش مقادیر خواصی که حاوی مقدار زیادی متن هستند، مانند اسکریپت ها استفاده کرد، اما با تمام ویژگی های قابل ویرایش کار می کند. بسته به قابلیت های ترمینال، یک ویرایشگر تمام صفحه یا یک ویرایشگر تک خطی برای ویرایش مقدار ویژگی مشخص شده راه اندازی می شود.  
  • find  – دستور find همان آرگومان‌های set را دارد، به علاوه آرگومان‌های پرچم مانند غیرفعال یا فعال که بسته به مقدار پرچم مربوطه مقادیر بله یا خیر را می‌گیرند. برای دیدن همه پرچم ها و نام آنها، به بالای خروجی فرمان  print نگاه کنید . دستور find اعداد داخلی همه مواردی را که مقادیر آرگومان های مشخص شده یکسانی دارند، برمی گرداند.           
  • move – ترتیب موارد موجود در لیست را تغییر می دهد.
    • پارامترهای عمومی
      • آرگومان اول آیتم(های) در حال جابجایی را مشخص می کند.
      • آرگومان دوم آیتمی را مشخص می کند که همه آیتم های در حال جابجایی قبل از آن قرار می گیرند (اگر آرگومان دوم حذف شود در انتهای لیست قرار می گیرند).
  • print – تمام اطلاعاتی را نشان می دهد که از یک سطح فرمان خاص در دسترس هستند. بنابراین، system clock print / تاریخ و زمان سیستم را نشان می دهد، / ip route print همه مسیرها و غیره را نشان می دهد. اگر لیستی از آیتم ها در سطح فعلی وجود دارد و فقط خواندنی نیستند، یعنی می توانید آنها را تغییر دهید/حذف کنید. نمونه ای از لیست آیتم های فقط خواندنی / system history است که تاریخچه ای از اقدامات اجرا شده را نشان می دهد، سپس دستور print همچنین اعدادی را اختصاص می دهد که توسط همه دستوراتی که با آیتم های این لیست کار می کنند استفاده می شود.
    • پارامترهای رایج
      • from – فقط موارد مشخص شده را به همان ترتیبی که داده شده اند نشان دهید.
      • where – فقط مواردی را نشان دهید که با معیارهای مشخص شده مطابقت دارند. سینتکس جایی که ویژگی  مشابه دستور find است .   
      • brief – دستور چاپ را مجبور به استفاده از فرم خروجی جدولی می کند
      • detail – دستور print را مجبور می کند که از فرم خروجی خاصیت=مقدار استفاده کند
      • count-only  تعداد موارد را نشان می دهد
      • file  – محتویات زیر منوی خاص را در یک فایل روی روتر چاپ می کند.
      • interval  – خروجی دستور print را برای هر ثانیه فاصله به روز می کند.  
      • oid  – مقدار OID را برای ویژگی هایی که از SNMP قابل دسترسی هستند چاپ می کند
      • without-paging  – خروجی را بدون توقف پس از هر صفحه نمایش چاپ می کند.
  • remove – آیتم(-های) مشخص شده را از لیست حذف می کند.
  • set – به شما امکان می دهد مقادیر پارامترهای عمومی یا پارامترهای مورد را تغییر دهید. دستور set دارای آرگومان هایی با نام های مربوط به مقادیری است که می توانید تغییر دهید. استفاده کنید ؟ یا برای مشاهده لیست همه آرگومان ها، [Tab] را دوبار بزنید. اگر فهرستی از آیتم‌ها در این سطح فرمان وجود دارد، set یک آرگومان عملی دارد که تعداد آیتم (یا فهرست اعداد) را می‌پذیرد که می‌خواهید تنظیم کنید. این دستور چیزی را بر نمی گرداند.
  • reset – پارامترها را به مقادیر پیش فرض برمیگرداند.

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

ip firewall/filter/add chain=forward place-before=[find where comment=CommentX]
ip/firewall/filter/add chain=forward place-before=”CommentX”

حالت ها

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

انتخاب حالت ها به قابلیت های ترمینال شناسایی شده بستگی دارد.

لیست کلیدها

				
					F1              Give the list of available commands
command F1      Give help on the command and list of arguments
 
[Tab]           Complete the command/word. If the input is ambiguous,
                a second [Tab] gives possible options
 
F3 or Ctrl-R    Search command history
F4 or Ctrl-X    Toggle safe mode
F5 or Ctrl-L    Repaint the screen
F7              Toggle hotlock mode
Ctrl-\          Split line
Home or Ctrl-A  Go to the beginning of the line
End or Ctrl-E   Go to the end of the line
Ctrl-C          Interrupt current action
Ctrl-D          Terminate session (on empty prompt)
Ctrl-K          Delete to the end of the line
Ctrl-U          Delete to the beginning of the line
 
/               Move up to base level
..              Move up one level
/command        Use command at the base level
				
			

کلیدهای updown , split مکان نما را در انتهای خط قرار می دهد

راهنمای داخلی

کنسول دارای راهنمای داخلی است. برای استفاده از راهنمایی کنسول عمومی ، F1 را فشار دهید . قاعده کلی این است که Help در موقعیتی که F1 فشار داده شده است، نشان می دهد که چه چیزی را می توانید تایپ کنید (مثل فشار دادن کلید [Tab] دو بار، اما به صورت کامل و همراه با توضیحات).    

حالت امن

گاهی اوقات می توان پیکربندی روتر را به گونه ای تغییر داد که روتر را غیرقابل دسترس کند (به جز کنسول محلی). معمولاً این کار به صورت تصادفی انجام می شود، اما زمانی که اتصال به روتر از قبل قطع شده باشد، هیچ راهی برای لغو آخرین تغییر وجود ندارد. برای به حداقل رساندن چنین خطری می توان از حالت ایمن استفاده کرد.

دکمه “Safe Mode” در رابط کاربری گرافیکی Winbox به شما امکان می دهد وارد حالت Safe Mode شوید، در حالی که در CLI، می توانید با استفاده از میانبر صفحه کلید F4 یا فشار دادن [CTRL]+[X] به آن دسترسی داشته باشید . برای خروج بدون ذخیره تغییرات ایجاد شده در CLI، [CTRL]+[D] را فشار دهید. 

				
					[admin@MikroTik] ip route>[CTRL]+[X]
[Safe Mode taken]
[admin@MikroTik] ip route<SAFE>
				
			

 

پیام Safe Mode taken نمایش داده می‌شود و تغییرات سریع را نشان می‌دهد تا نشان دهد که سشن موجود در حالت ایمن است. تمام تغییرات پیکربندی انجام شده (همچنین از سایر سشن های ورود به سیستم)، در حالی که روتر در حالت ایمن است، در صورتی که سشن حالت امن به طور غیرعادی خاتمه یابد، تغییرات به طور خودکار لغو می شوند. شما می توانید تمام این تغییرات را که به طور خودکار لغو شده را که با یک پرچم F برچسب گذاری شده اند، در تاریخچه سیستم مشاهده کنید

				
					[admin@MikroTik] /ip/route>
[Safe Mode taken]
[admin@MikroTik] /ip/route<SAFE> add
[admin@MikroTik] /ip/route<SAFE> /system/history/print
Flags: U, F - FLOATING-UNDO
Columns: ACTION, BY, POLICY
  ACTION                 BY     POLICY
F route 0.0.0.0/0 added  admin  write
				
			

حال اگر اتصال telnet (یا ترمینال winbox) قطع شود، پس از مدتی (تایم اوت TCP 9 دقیقه است) تمام تغییراتی که در حالت ایمن ایجاد شده اند، لغو خواهند شد. خروج از جلسه با [Ctrl]+[D] همچنین همه تغییرات حالت امن را خنثی می کند، در حالی که /quit این کار را نمی کند.      

اگر کاربر دیگری بخواهد وارد حالت امن شود، پیام زیر به او داده می شود:

				
					[admin@MikroTik] >
Hijacking Safe Mode from someone - unroll/release/don't take it [u/r/d]:
				
			
  • [u] – همه تغییرات حالت امن را لغو می کند و سشن فعلی را در حالت ایمن قرار می دهد.
  • [r] – تمام تغییرات حالت امن فعلی را نگه می دارد و سشن فعلی را در حالت ایمن قرار می دهد. صاحب قبلی حالت امن در این مورد مطلع شده است:
				
					[admin@MikroTik] ip firewall rule input
[Safe mode released by another user]
				
			
    • [d] – همه چیز را همانطور که هست رها می کند.

    اگر در حالت ایمن تغییرات زیادی ایجاد شود و در تاریخچه جایی برای نگهداری همه آنها وجود نداشته باشد (در حال حاضر سابقه تا 100 اقدام اخیر را نگه می دارد)، سشن به طور خودکار از حالت ایمن خارج می شود و هیچ تغییری به طور خودکار انجام نمی شود. بنابراین، بهتر است پیکربندی را در مراحل کوچک و در حالت ایمن تغییر دهید. دو بار فشار دادن [Ctrl] + [X] راهی آسان برای خالی کردن لیست عملکرد حالت ایمن است.

    حالت HotLock

    هنگامی که حالت HotLock فعال است، دستورات به طور خودکار تکمیل می شوند.

    برای ورود/خروج از حالت HotLock، F7 را فشار دهید . 

				
					[admin@MikroTik] /ip/address> [F7]
[admin@MikroTik] /ip/address>>
				
			

Double >>نشانه فعال بودن حالت HotLock است. به عنوان مثال، اگر تایپ کنید /in et، به طور خودکار تکمیل می شود

				
					[admin@MikroTik] /ip/address>> /interface/ethernet/