Как управлять роутером через консоль

Настройка роутеров через консоль является важной задачей для администраторов сети. Она позволяет управлять параметрами и функциями роутера, а также подключаться к сети настройки и мониторинга. В данной статье представлен список основных команд, которые помогут вам настроить ваш роутер через консоль, а также примеры их использования.

1. Команда enable: эта команда позволяет перейти в режим привилегированного доступа, который дает возможность выполнения административных операций. Пример использования:

Router> enable

2. Команда configure terminal: данная команда переводит вас в режим конфигурации, где вы можете настраивать параметры роутера. Пример использования:

Router# configure terminal

3. Команда interface: эта команда позволяет перейти в режим настройки интерфейса роутера. Вы можете настроить IP-адреса, маски подсети, vlan и другие параметры. Пример использования:

Router(config)# interface GigabitEthernet0/0

4. Команда ip address: этой командой вы можете настроить IP-адрес для выбранного интерфейса. Пример использования:

Router(config-if)# ip address 192.168.1.1 255.255.255.0

5. Команда hostname: эта команда позволяет изменить имя роутера. Пример использования:

Router(config)# hostname R1

Это только некоторые из команд, которые могут быть полезны при настройке роутера через консоль. Зная эти команды и их использование, вы сможете легко управлять вашим роутером и настраивать его в соответствии с требованиями вашей сети.

Содержание

  1. Список команд для настройки роутеров через консоль с примерами
  2. Основные команды настройки роутеров
  3. Дополнительные команды настройки роутеров
  4. Команды для диагностики и администрирования роутеров

Список команд для настройки роутеров через консоль с примерами

2. configure terminal — вход в режим глобальной конфигурации

3. hostname — задание имени для роутера

4. interface [тип] [номер] — выбор интерфейса для настройки

5. ip address [адрес] [маска] — назначение IP-адреса интерфейсу

6. no shutdown — включение интерфейса

7. exit — выход из режима конфигурации интерфейса

8. router ospf [идентификатор] — вход в режим настройки OSPF

9. network [адрес] [обратная маска] area [номер области] — указание сетевых адресов для OSPF

10. exit — выход из режима настройки OSPF

11. write memory — сохранение настроек в постоянную память

Примеры:

— Назначение имени: hostname Router-1

— Назначение IP-адреса интерфейсу: interface g0/1
ip address 192.168.1.1 255.255.255.0

— Включение OSPF и указание сетевых адресов: router ospf 1
network 10.0.0.0 0.0.0.255 area 0

Основные команды настройки роутеров

1. enable — команда, позволяющая переключиться в привилегированный режим, чтобы получить полный доступ ко всем возможностям роутера.

2. configure terminal — команда, используемая для входа в режим конфигурации, где можно изменять параметры роутера.

3. interface [interface-name] — команда, которая позволяет выбирать определенный интерфейс роутера для настройки (например, Ethernet или Wi-Fi).

4. ip address [ip-address] [subnet-mask] — команда, используемая для настройки IP-адреса и маски подсети на выбранном интерфейсе.

5. no shutdown — команда, позволяющая включить выбранный интерфейс роутера, если он был отключен.

6. hostname [name] — команда, использованная для изменения имени роутера, чтобы идентифицировать его в сети.

7. exit — команда, которую можно использовать для выхода из текущего режима конфигурации и возвращения к предыдущему режиму.

Это лишь некоторые из команд, которые можно использовать для настройки роутеров. Они помогут вам осуществить базовую конфигурацию устройства и настроить интерфейсы и IP-адреса. Более подробные настройки и команды могут варьироваться в зависимости от модели и производителя роутера.

Дополнительные команды настройки роутеров

1. Команда show running-config

Команда show running-config позволяет просмотреть текущую конфигурацию роутера. Эта команда отображает все текущие настройки, включая интерфейсы, маршруты, настройки безопасности и другие параметры.

Пример использования:

Router# show running-config

2. Команда copy running-config startup-config

Команда copy running-config startup-config копирует текущую конфигурацию роутера в постоянную память (NVRAM), чтобы она сохранялась после перезагрузки. Это позволяет сохранить все внесенные изменения.

Пример использования:

Router# copy running-config startup-config

3. Команда banner motd

Команда banner motd позволяет настроить вывод предупреждающего сообщения (message of the day) перед тем, как пользователь войдет в систему. Это сообщение может содержать любую информацию, которая должна быть показана перед тем, как пользователь получит доступ к устройству.

Пример использования:

Router(config)# banner motd #
Enter message, end with the character '#'.
Unauthorized access is strictly prohibited! #

4. Команда access-list

Команда access-list позволяет создавать и настраивать списки доступа (access lists), которые используются для контроля доступа к ресурсам на роутере. С помощью этой команды можно определить допустимые и запрещенные пакеты на основе адресов и портов.

Пример использования:

Router(config)# access-list 1 deny host 192.168.1.1

5. Команда ip route

Команда ip route используется для настройки статических маршрутов на роутере. С помощью этой команды можно указать, каким образом пакеты должны быть направлены, если нет соответствующей записи в таблице маршрутизации.

Пример использования:

Router(config)# ip route 192.168.2.0 255.255.255.0 192.168.1.1

Команды для диагностики и администрирования роутеров

В процессе настройки и управления роутерами необходимо знать основные команды для проведения диагностики и администрирования сетевых устройств. В данном разделе представлены некоторые важные команды, которые помогут вам настраивать и поддерживать ваш роутер. Следует помнить, что некоторые команды могут иметь разные варианты названий в зависимости от модели или производителя роутера.

1. show running-config

Эта команда позволяет просмотреть текущую конфигурацию роутера. Вы увидите весь настроенный параметры, включая IP-адреса, маршруты, настройки интерфейсов и т.д.

2. show interfaces

Команда выводит информацию о текущем состоянии всех интерфейсов роутера. Вы увидите скорость передачи данных, счетчики ошибок, состояние интерфейса (активен/отключен) и другую полезную информацию.

3. ping

Команда используется для проверки доступности удаленного узла с помощью ICMP эхо-запросов. Например, ping 192.168.1.1 позволит вам определить, доступен ли роутер с указанным IP-адресом.

4. traceroute

Данная команда используется для определения пути, который пакет данных проходит от отправителя к получателю через сеть. Traceroute отображает список всех узлов маршрутизации, которые посещает пакет данных, включая время задержки на каждом узле.

5. enable

Команда enable используется для перехода в режим привилегированного доступа (при необходимости ввести пароль администратора).

6. configure terminal

Команда позволяет перейти в режим настройки или редактирования конфигурации роутера. В этом режиме вы можете изменять различные параметры, создавать интерфейсы и маршруты, а также выполнять другие действия для настройки роутера.

7. copy running-config startup-config

С помощью данной команды вы можете сохранить текущую конфигурацию роутера в постоянной памяти. Это позволит автоматически восстановить настройки роутера после перезагрузки.

8. reload

Команда reload используется для перезагрузки роутера. Перезагрузка может быть полезна, если вы внесли значительные изменения в конфигурацию или для устранения возможных проблем с роутером.

Это лишь небольшой список команд, которые могут быть полезны при настройке и администрировании роутеров. Многие модели роутеров имеют свои уникальные команды, поэтому всегда рекомендуется обращаться к документации производителя для получения полной информации о доступных командах и функциях.

The console is used for accessing the MikroTik Router’s configuration and management features using text terminals, either remotely using a serial port, telnet, SSH, console screen within WinBox, or directly using monitor and keyboard. The console is also used for writing scripts. This manual describes the general console operation principles. Please consult the Scripting Manual on some advanced console commands and on how to write scripts.

Login Options

Console login options enable or disable various console features like color, terminal detection, and many other.

Additional login parameters can be appended to the login name after the ‘+’ sign.

    login_name ::= user_name [ '+' parameters ]
    parameters ::= parameter [ parameters ]
    parameter ::= [ number ] 'a'..'z'
    number ::= '0'..'9' [ number ]
  

If the parameter is not present, then the default value is used. If the number is not present then the implicit value of the parameter is used.

Example: admin+c80w — will disable console colors and set terminal width to 80.

Param Default Implicit Description
«w» auto auto Set terminal width
«h» auto auto Set terminal height
«c» on off disable/enable console colors
«t» on off Do auto-detection of terminal capabilities
«e» on off Enables «dumb» terminal mode

The login process will display the MikroTik banner and short help after validating the user name and password.

  MMM      MMM       KKK                          TTTTTTTTTTT      KKK
  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK
  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK
  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK
  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK
  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK

  MikroTik RouterOS 6.22 (c) 1999-2014       https://www.mikrotik.com/

[?]             Gives the list of available commands
command [?]     Gives help on the command and list of arguments

[Tab]           Completes the command/word. If the input is ambiguous,
                a second [Tab] gives possible options

/               Move up to base level
..              Move up one level
/command        Use command at the base level

After the banner can be printed other important information, like system note set by another admin, the last few critical log messages, demo version upgrade reminder, and default configuration description.

For example, the demo license prompt and last critical messages are printed

UPGRADE NOW FOR FULL SUPPORT
----------------------------
FULL SUPPORT benefits:
- receive technical support
- one year feature support
- one year online upgrades
    (avoid re-installation and re-configuring your router)
To upgrade, register your license "software ID"
on our account server www.mikrotik.com

Current installation "software ID": ABCD-456

Please press "Enter" to continue!


dec/10/2007 10:40:06 system,error,critical login failure for user root from 10.0.0.1 via telnet
dec/10/2007 10:40:07 system,error,critical login failure for user root from 10.0.0.1 via telnet
dec/10/2007 10:40:09 system,error,critical login failure for user test from 10.0.0.1 via telnet

Command Prompt

At the end of the successful login sequence, the login process prints a banner that shows the command prompt, and hands over control to the user.

Default command prompt consists of user name, system identity, and current command path />

For example, change the current path from the root to the interface then go back to the root

  [admin@MikroTik] > interface [enter]
  [admin@MikroTik] /interface> / [enter]
  [admin@MikroTik] >

Use up arrow to recall previous commands from command history (commands that added sensitive data, like passwords, will not be available in the history), TAB key to automatically complete words in the command you are typing, ENTER key to execute the command, Control-C to interrupt currently running command and return to prompt and ? to display built-in help, in RouterOS v7, F1 has to be used instead.

The easiest way to log out of the console is to press Control-D at the command prompt while the command line is empty (You can cancel the current command and get an empty line with Control-C, so Control-C followed by Control-D will log you out in most cases).

It is possible to write commands that consist of multiple lines. When the entered line is not a complete command and more input is expected, the console shows a continuation prompt that lists all open parentheses, braces, brackets, and quotes, and also trailing backslash if the previous line ended with backslash-white-space.

    [admin@MikroTik] > {
    {... :put (\
    {(\... 1+2)}
    3

When you are editing such multiple line entries, the prompt shows the number of current lines and total line count instead of the usual username and system name.

line 2 of 3> :put (\

Sometimes commands ask for additional input from the user. For example, the command ‘/password‘ asks for old and new passwords. In such cases, the prompt shows the name of the requested value, followed by colon and space.

    [admin@MikroTik] > /password
    old password: ******
    new password: **********
    retype new password: **********

Hierarchy

The console allows the configuration of the router’s settings using text commands. Since there is a lot of available commands, they are split into groups organized in a way of hierarchical menu levels. The name of a menu level reflects the configuration information accessible in the relevant section.

For example, you can issue the /ip route print command:

[admin@MikroTik] > /ip route print 
Flags: D - dynamic; X - disabled, I - inactive, A - active; 
C - connect, S - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn 
 #     DST-ADDRESS        GATEWAY            DISTANCE
 0  XS 4.4.4.4            10.155.101.1      
   D o 0.0.0.0/0          10.155.101.1            110
 1  AS 0.0.0.0/0          10.155.101.1              1
   D b 1.0.4.0/24         10.155.101.1             20
   D b 1.0.4.0/24         10.155.101.1             20
   DAb 1.0.4.0/24         10.155.101.1             20
[admin@MikroTik] >

Instead of typing `/ip route` path before each command, the path can be typed only once to move into this particular branch of the menu hierarchy. Thus, the example above could also be executed like this:

[admin@MikroTik] > /ip route
[admin@MikroTik] /ip/route> print 
Flags: D - dynamic; X - disabled, I - inactive, A - active; 
C - connect, S - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn 
 #     DST-ADDRESS        GATEWAY            DISTANCE
 0  XS 4.4.4.4            10.155.101.1      
   D o 0.0.0.0/0          10.155.101.1            110
 1  AS 0.0.0.0/0          10.155.101.1              1
   D b 1.0.4.0/24         10.155.101.1             20
   D b 1.0.4.0/24         10.155.101.1             20
   DAb 1.0.4.0/24         10.155.101.1             20
[admin@MikroTik] >

Each word in the path can be separated by space (as in the example above) or by «/»

[admin@MikroTik] > /ip/route/
[admin@MikroTik] /ip/route> print 
Flags: D - dynamic; X - disabled, I - inactive, A - active; 
C - connect, S - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn 
 #     DST-ADDRESS        GATEWAY            DISTANCE
 0  XS 4.4.4.4            10.155.101.1      
   D o 0.0.0.0/0          10.155.101.1            110
 1  AS 0.0.0.0/0          10.155.101.1              1
   D b 1.0.4.0/24         10.155.101.1             20
   D b 1.0.4.0/24         10.155.101.1             20
   DAb 1.0.4.0/24         10.155.101.1             20
[admin@MikroTik] >

Notice that the prompt changes in order to reflect where you are located in the menu hierarchy at the moment. To move to the top level again, type » / «

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

To move up one command level, type » .. «

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

You can also use / and .. to execute commands from other menu levels without changing the current level:

[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>

Item Names and Numbers

Many of the command levels operate with arrays of items: interfaces, routes, users, etc. Such arrays are displayed in similarly-looking lists. All items in the list have an item number followed by flags and parameter values.

To change the properties of an item, you have to use the set command and specify the name or number of the item.

Item Names

Some lists have items with specific names assigned to each of them. Examples are interface or user levels. There you can use item names instead of item numbers.

You do not have to use the print command before accessing items by their names, which, as opposed to numbers, are not assigned by the console internally, but are properties of the items. Thus, they would not change on their own. However, there are all kinds of obscure situations possible when several users are changing the router’s configuration at the same time. Generally, item names are more «stable» than the numbers, and also more informative, so you should prefer them to numbers when writing console scripts.

Item Numbers

Item numbers are assigned by the print command and are not constant — it is possible that two successive print commands will order items differently. But the results of the last print commands are memorized and, thus, once assigned, item numbers can be used even after add, remove and move operations (since version 3, move operation does not renumber items). Item numbers are assigned on a per session basis, they will remain the same until you quit the console or until the next print command is executed. Also, numbers are assigned separately for every item list, so ip address print will not change the numbering of the interface list.

You can specify multiple items as targets to some commands. Almost everywhere, where you can write the number of items, you can also write a list of numbers.

[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] >

General Commands

There are some commands that are common to nearly all menu levels, namely: print, set, remove, add, find, get, export, enable, disable, comment, move. These commands have similar behavior throughout different menu levels.

Property Description
add This command usually has all the same arguments as a set, except the item number argument. It adds a new item with the values you have specified, usually at the end of the item list, in places where the order of items is relevant. There are some required properties that you have to supply, such as the interface for a new address, while other properties are set to defaults unless you explicitly specify them.

Common Parameters

  • copy-from — Copies an existing item. It takes default values of a new item’s properties from another item. If you do not want to make an exact copy, you can specify new values for some properties. When copying items that have names, you will usually have to give a new name to a copy
  • place-before — places a new item before an existing item with a specified position. Thus, you do not need to use the move command after adding an item to the list
  • disabled — controls disabled/enabled state of the newly added item(-s)
  • comment — holds the description of a newly created item

Return Values

  • add command returns the internal number of items it has added
edit This command is associated with the set command. It can be used to edit values of properties that contain a large amount of text, such as scripts, but it works with all editable properties. Depending on the capabilities of the terminal, either a full-screen editor or a single line editor is launched to edit the value of the specified property.
find The find command has the same arguments as a set, plus the flag arguments like disabled or active that take values yes or no depending on the value of the respective flag. To see all flags and their names, look at the top of the print command’s output. The find command returns internal numbers of all items that have the same values of arguments as specified.
move Changes the order of items in the list. Parameters:

  • the first argument specifies the item(-s) being moved.
  • the second argument specifies the item before which to place all items being moved (they are placed at the end of the list if the second argument is omitted).
print Shows all information that’s accessible from a particular command level. Thus, /system clock print shows the system date and time, /ip route print shows all routes etc. If there\’s a list of items in the current level and they are not read-only, i.e. you can change/remove them (example of read-only item list is /system history, which shows a history of executed actions), then print command also assigns numbers that are used by all commands that operate with items in this list.

Common Parameters:

  • append — 
  • brief — forces the print command to use tabular output form
  • count-only — shows the number of items
  • detail — forces the print command to use property=value output form
  • file — prints the contents of the specific sub-menu into a file on the router.
  • follow — 
  • follow-only — 
  • follow-strict — 
  • from — show only specified items, in the same order in which they are given.
  • interval — updates the output from the print command for every interval of seconds.
  • oid — prints the OID value for properties that are accessible from SNMP
  • proplist — 
  • show-ids — 
  • where — show only items that match specified criteria. The syntax of where the property is similar to the find command.
  • without-paging — prints the output without stopping after each screenful.
remove Removes specified item(-s) from a list.
set Allows you to change values of general parameters or item parameters. The set command has arguments with names corresponding to values you can change. Use ? or double Tab to see a list of all arguments. If there is a list of items in this command level, then the set has one action argument that accepts the number of items (or list of numbers) you wish to set up. This command does not return anything.

Input Modes

It is possible to switch between several input modes:

  • Normal mode — indicated by normal command prompt.
  • Safe mode — safe mode is indicated by the word SAFE after the command prompt. In this mode, the configuration is saved to disk only after the safe mode is turned off. Safe mode can be turned on/off with Ctrl+X or F4. Read more >>
  • Hot-lock mode — indicated by additional yellow >. Hot-lock mode autocompletes commands and can be turned on/off with F7

Quick Typing

There are two features in the console that help entering commands much quicker and easier — the [Tab] key completions, and abbreviations of command names. Completions work similarly to the bash shell in UNIX. If you press the [Tab] key after a part of a word, the console tries to find the command within the current context that begins with this word. If there is only one match, it is automatically appended, followed by a space:

/inte[Tab]_ becomes /interface _

If there is more than one match, but they all have a common beginning, which is longer than that what you have typed, then the word is completed to this common part, and no space is appended:

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

If you’ve typed just the common part, pressing the tab key once has no effect. However, pressing it for the second time shows all possible completions in compact form:

[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_

The [Tab] key can be used almost in any context where the console might have a clue about possible values — command names, argument names, arguments that have only several possible values (like names of items in some lists or name of the protocol in firewall and NAT rules). You cannot complete numbers, IP addresses, and similar values.

Another way to press fewer keys while typing is to abbreviate command and argument names. You can type only the beginning of the command name, and, if it is not ambiguous, the console will accept it as a full name. So typing:

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

equals to:

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

It is possible to complete not only the beginning, but also any distinctive sub-string of a name: if there is no exact match, the console starts looking for words that have string being completed as first letters of a multiple word name, or that simply contain letters of this string in the same order. If a single such word is found, it is completed at the cursor position. For example:

[admin@MikroTik] > interface x[TAB]_
[admin@MikroTik] > interface export _

[admin@MikroTik] > interface mt[TAB]_
[admin@MikroTik] > interface monitor-traffic _

Console Search

Console search allows performing keyword search through the list of RouterOS menus and the history. The search prompt is accessible with the [Ctrl+r] shortcut. 

Internal Chat System

RouterOS console has a built-in internal chat system. This allows remotely located admins to talk to each other directly in RouterOS CLI. To start the conversation prefix the intended message with the # symbol, anyone who is logged in at the time of sending the message will see it.

[admin@MikroTik] > # ready to break internet?
[admin@MikroTik] > 
fake_admin: i was born ready
[admin@MikroTik] > 
[fake_admin@MikroTik] > 
admin: ready to break internet?
[fake_admin@MikroTik] > # i was born ready
[fake_admin@MikroTik] > 

List of Keys

Key Description
Control-C keyboard interrupt
Control-D log out (if an input line is empty)
Control-K clear from the cursor to the end of the line
Control-U clear from the cursor to the beginning of the line
Control-X or F4 toggle safe mode
F7 toggle hot lock mode mode
Control-R or F3 toggle console search
F6 toggle cellar
F1 show context-sensitive help.
Tab perform line completion. When pressed a second time, show possible completions.
# Send a message to an internal chat system
Delete remove character at the cursor
Control-H or Backspace removes character before cursor and moves the cursor back one position.
Control-\ split line at cursor. Insert newline at the cursor position. Display second of the two resulting lines.
Control-B or Left move cursor backward one character
Control-F or Right move cursor forward one character
Control-P or Up go to the previous line. If this is the first line of input then recall previous input from history.
Control-N or Down go to the next line. If this is the last line of input then recall the next input from the history
Control-A or Home move the cursor to the beginning of the line. If the cursor is already at the beginning of the line, then go to the beginning of the first line of the current input
Control-E or End move the cursor to the end of the line. If the cursor is already at the end of the line, then move it to the end of the last line of the current input
Control-L or F5 reset terminal and repaint screen

thumb

Как получить полный контроль, над роутером ASUS с установленной оригинальной (заводской) прошивкой, через командную строку с помощью Telnet протокола доступа.

Для получения больших возможностей по настройке роутера многие тут-же прошивают роутер альтернативной прошивкой, такой как DDWRT, OpenWRT и другие. Но не всегда это оправдано. Вэб-интерфейс оригинальной прошивки может не содержать каких-то триггеров но в самой прошивки есть многие необходимые утилиты.

Значит, мы можем проделать все манипуляции над роутером с оригинальной (заводской) прошивкой, через командную строку с помощью Telnet протокола доступа.

Самый безопасный и мощный способ это использовать SSH протокол, но можно воспользоваться не безопасным Telnet так, как он имеется во всех роутерах ASUS.

Если вэб-интерфейс вашего роутера не имеет триггера для включения Telnet, то вам необходимо прочитать эту статью: «Как включить Telnet сервер на роутере ASUS».

Получение доступа к командной строке

Прежде всего вам нужно подключиться к роутеру используя любой Telnet клиент, например PuTTY или консольный клиент.

Домен, IP-адрес, логин и пароль такие же как в вэб-интерфейсе роутера.

  • IP-адрес192.168.1.1 (или тот который вы установили).
  • Доменrouter.asus.com (стандартный для ASUS роутеров)
  • Порт23 (стандартный для Telnet протокола).
  • Имя пользователя (логин)admin (стандартный для ASUS роутеров).
  • Пароль — тот который вы установили (стандартный для ASUS роутеров — admin).

Для подключения с помощью консольного клиента:

Откройте терминал.

Подключитесь к роутеру по протоколу доступа Telnet:

Для авторизации используйте логин и пароль такие же как в вэб-интерфейсе роутера:

Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.

# |

Поздравляю, теперь вы в командной строке Linux роутер!

В роутере

Теперь вы в командной строке Linux роутера ASUS.

В общем, Linux роутер очень похож на Debian но имеет некоторые особенности. Начну с общего.

Показать информацию о железе и прошивке роутера можно так:

Linux version 2.6.30.9 (root@wireless-desktop) (gcc version 3.4.6-1.3.6) #4 Thu Jan 15 17:40:33 CST 2015

и так:

system type             : RTL8196C
processor               : 0
cpu model               : 52481
BogoMIPS                : 389.12
tlb_entries             : 32
mips16 implemented      : yes

и так:

RTL8196C v1.0 --   1  15 17:38:00 CST 2015
The SDK version is: Realtek SDK v2.5-r
Ethernet driver version is: -
Wireless driver version is: -
Fastpath source version is: -
Feature support version is: -

Показать все примонтированные разделы, можно так:

rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro,relatime)
proc on /proc type proc (rw,relatime)
ramfs on /var type ramfs (rw,relatime)

Как вы видите squashfs раздел примонтирован с параметром ro то есть только на чтение. Но, ramfs (/var) примонтирован с параметром rw то есть чтение и запись. Значит, мы можем создавать и удалять файлы в этой директории. Но после перезагрузки всё будет как раньше, а новые файлы будут удалены.

Все загрузочные скрипты находятся в директории /etc/init.d/.

rcS
rcS_16M

Это место находится на разделе подключённом в режиме только чтения, поэтому вы не можете добавлять свои скрипты сюда.

На роутере установлен BusyBox. BusyBox — это набор UNIX утилит командной строки, который используется в качестве основного интерфейса во встраиваемых операционных систем. В различных версиях и сборках он содержит различное количество утилит.

Для того, чтобы получить список команд, поддерживаемых данным экземпляром BusyBox, запустите его без каких-либо аргументов или используйте опцию --list:

BusyBox v1.13.4 (2015-01-15 17:36:18 CST) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable. Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as!

Currently defined functions:
        arp, ash, bunzip2, bzcat, cat, cp, cut, date, echo, expr, false,
        free, grep, gzip, halt, head, hostname, ifconfig, init, ip, kill,
        killall, klogd, ln, ls, mkdir, mount, ping, poweroff, ps, reboot,
        renice, rm, route, sh, sleep, sync, syslogd, tail, telnetd, top,
        true, umount, vconfig, wc, zcip

Для того, что бы узнать о том, что делают отдельные команды, используйте опцию --help в сочетании с этой командой:

Но не все программы в прошивке являются частью BusyBox. Поэтому может потребоваться просмотреть список всех программ:

lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_BootLoaderVersion -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_FWVersion -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_FwReadyStatus -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_MacAddr_2G -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_PINCode -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_RegulationDomain -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_ResetButtonStatus -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_SWMode -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_WanLanStatus -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Get_WpsButtonStatus -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_AllLedOff -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_AllLedOn -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_MacAddr_2G -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_PINCode -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_RegulationDomain -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_RestoreDefault -> ate
lrwxrwxrwx    1 root     root            3 Jan 15 12:38 ATE_Set_StartATEMode -> ate
-rwxrwxrwx    1 root     root         8476 Jan 15 12:38 acltd
-rwxrwxrwx    1 root     root        13540 Jan 15 12:38 acs
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 arp -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ash -> busybox
-rwxrwxrwx    1 root     root        21876 Jan 15 12:38 ate
-rwxrwxrwx    1 root     root         3324 Jan 15 12:38 atewatchdog
-rwxrwxrwx    1 root     root       177296 Jan 15 12:38 auth
-rwxrwxrwx    1 root     root        22836 Jan 15 12:38 brctl
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 bunzip2 -> busybox
-rwxrwxrwx    1 root     root       284072 Jan 15 12:38 busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 bzcat -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 cat -> busybox
-rwxrwxrwx    1 root     root           37 Jan 15 12:38 connect.sh
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 cp -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 cut -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 date -> busybox
-rwxrwxrwx    1 root     root         5096 Jan 15 12:38 ddns_inet
-rwxrwxrwx    1 root     root        12772 Jan 15 12:38 detectWAN
-rwxrwxrwx    1 root     root           28 Jan 15 12:38 disconnect.sh
-rwxrwxrwx    1 root     root        44260 Jan 15 12:38 dnrd
-rwxrwxrwx    1 root     root          207 Jan 15 12:38 dw
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 echo -> busybox
-rwxrwxrwx    1 root     root          123 Jan 15 12:38 ew
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 expr -> busybox
-rwxrwxrwx    1 root     root       110292 Jan 15 12:38 ez-ipupdate
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 false -> busybox
-rwxrwxrwx    1 root     root           29 Jan 15 12:38 firewall.sh
-rwxrwxrwx    1 root     root        84720 Jan 15 12:38 flash
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 free -> busybox
-rwxrwxrwx    1 root     root         7656 Jan 15 12:38 fwupgrade
-rwxrwxrwx    1 root     root           98 Jan 15 12:38 getmib
-rwxrwxrwx    1 root     root           98 Jan 15 12:38 getmib1
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 grep -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 gzip -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 halt -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 head -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 hostname -> busybox
-rwxrwxrwx    1 root     root       481996 Jan 15 12:38 httpd
-rwxrwxrwx    1 root     root         7592 Jan 15 12:38 httpdcheck
-rwxrwxrwx    1 root     root          104 Jan 15 12:38 ib
-rwxrwxrwx    1 root     root          104 Jan 15 12:38 ib1
-rwxrwxrwx    1 root     root          105 Jan 15 12:38 id1
-rwxrwxrwx    1 root     root          105 Jan 15 12:38 idd
-rwxrwxrwx    1 root     root          105 Jan 15 12:38 idd1
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ifconfig -> busybox
-rwxrwxrwx    1 root     root        25264 Jan 15 12:38 igmpproxy
-rwxrwxrwx    1 root     root        16852 Jan 15 12:38 infosvr
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 init -> busybox
-rwxrwxrwx    1 root     root          116 Jan 15 12:38 init.sh
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ip -> busybox
-rwxrwxrwx    1 root     root           72 Jan 15 12:38 ip_qos.sh
-rwxrwxrwx    1 root     root       321088 Jan 15 12:38 iptables
lrwxrwxrwx    1 root     root           13 Jan 15 12:38 iptables-restore -> /bin/iptables
-rwxrwxrwx    1 root     root          111 Jan 15 12:38 irf
-rwxrwxrwx    1 root     root          111 Jan 15 12:38 irf1
-rwxrwxrwx    1 root     root          104 Jan 15 12:38 iw
-rwxrwxrwx    1 root     root          104 Jan 15 12:38 iw1
-rwxrwxrwx    1 root     root        37424 Jan 15 12:38 iwcontrol
-rwxrwxrwx    1 root     root        27076 Jan 15 12:38 iwpriv
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 kill -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 killall -> busybox
-rwxrwxrwx    1 root     root          301 Jan 15 12:38 killsh.sh
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 klogd -> busybox
-rwxrwxrwx    1 root     root           27 Jan 15 12:38 l2tp.sh
-rwxrwxrwx    1 root     root       113968 Jan 15 12:38 l2tpd
-rwxrwxrwx    1 root     root        64352 Jan 15 12:38 lld2d
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ln -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ls -> busybox
-rwxrwxrwx    1 root     root        97348 Jan 15 12:38 miniigd
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 mkdir -> busybox
-rwxrwxrwx    1 root     root          182 Jan 15 12:38 mmd_cmdr
-rwxrwxrwx    1 root     root          196 Jan 15 12:38 mmd_cmdw
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 mount -> busybox
-rwxrwxrwx    1 root     root          589 Jan 15 12:38 mp.sh
-rwxrwxrwx    1 root     root        31004 Jan 15 12:38 networkmap
-rwxrwxrwx    1 root     root         9156 Jan 15 12:38 notify_service
-rwxrwxrwx    1 root     root         6912 Jan 15 12:38 ntp_inet
-rwxrwxrwx    1 root     root        25084 Jan 15 12:38 ntpclient
-rwxrwxrwx    1 root     root          115 Jan 15 12:38 ob
-rwxrwxrwx    1 root     root          115 Jan 15 12:38 ob1
-rwxrwxrwx    1 root     root          116 Jan 15 12:38 od
-rwxrwxrwx    1 root     root          116 Jan 15 12:38 od1
-rwxrwxrwx    1 root     root          122 Jan 15 12:38 orf
-rwxrwxrwx    1 root     root          122 Jan 15 12:38 orf1
-rwxrwxrwx    1 root     root          115 Jan 15 12:38 ow
-rwxrwxrwx    1 root     root          115 Jan 15 12:38 ow1
-rwxrwxrwx    1 root     root          184 Jan 15 12:38 phyr
-rwxrwxrwx    1 root     root          151 Jan 15 12:38 phyw
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ping -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 poweroff -> busybox
-rwxrwxrwx    1 root     root         6520 Jan 15 12:38 ppp_inet
-rwxrwxrwx    1 root     root       276552 Jan 15 12:38 pppd
-rwxrwxrwx    1 root     root           30 Jan 15 12:38 pppoe.sh
-rwxrwxrwx    1 root     root           49 Jan 15 12:38 pppoe_conn_patch.sh
-rwxrwxrwx    1 root     root           87 Jan 15 12:38 pppoe_disc_patch.sh
-rwxrwxrwx    1 root     root        63784 Jan 15 12:38 pptp
-rwxrwxrwx    1 root     root           29 Jan 15 12:38 pptp.sh
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 ps -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 reboot -> busybox
-rwxrwxrwx    1 root     root        11699 Jan 15 12:38 reload
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 renice -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 rm -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 route -> busybox
-rwxrwxrwx    1 root     root        53887 Jan 15 12:38 routed
-rwxrwxrwx    1 root     root           48 Jan 15 12:38 rssi
-rwxrwxrwx    1 root     root           48 Jan 15 12:38 rssi1
-rwxrwxrwx    1 root     root          108 Jan 15 12:38 setmib
-rwxrwxrwx    1 root     root          108 Jan 15 12:38 setmib1
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 sh -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 sleep -> busybox
-rwxrwxrwx    1 root     root         2406 Jan 15 12:38 snmpd.sh
-rwxrwxrwx    1 root     root         8492 Jan 15 12:38 start_mac_clone
-rwxrwxrwx    1 root     root          656 Jan 15 12:38 startup.sh
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 sync -> busybox
-rwxrwxrwx    1 root     root       198664 Jan 15 12:38 sysconf
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 syslogd -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 tail -> busybox
-rwxrwxrwx    1 root     root       259828 Jan 15 12:38 tc
-rwxrwxrwx    1 root     root         7592 Jan 15 12:38 tcpcheck
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 telnetd -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 top -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 true -> busybox
lrwxrwxrwx    1 root     root            6 Jan 15 12:38 udhcpc -> udhcpd
-rwxrwxrwx    1 root     root        43595 Jan 15 12:38 udhcpd
-rwxrwxrwx    1 root     root        62408 Jan 15 12:38 udpxy
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 umount -> busybox
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 vconfig -> busybox
-rwxrwxrwx    1 root     root        38144 Jan 15 12:38 wanduck
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 wc -> busybox
-rwxrwxrwx    1 root     root           31 Jan 15 12:38 wlanapp.sh
-rwxrwxrwx    1 root     root       281752 Jan 15 12:38 wscd
lrwxrwxrwx    1 root     root            7 Jan 15 12:38 zcip -> busybox
-rwxrwxrwx    1 root     root          100 Jan 15 12:38 zcip.sh

Если в списке вы видите что-то похожее на […] -> busybox то эта программа является частью BusyBox.

Если нет нужной вам программы, то вы можете скачать её из интернета (или создать его путем кросс-компиляции) и положить в временный каталог (/tmp/). Также вы можете скачать полную версию BusyBox с официального сайта (http://www.busybox.net) и поместить его в временный каталог (/tmp/). Но, как я писал выше, после перезагрузки всё будет как раньше и новые файлы будут удалены.

К примеру, в моём роутере, встроенный BusyBox (v1.13.4) не содержит редактор vi или nano.

NVRAM

А теперь про особенности о которых Я писал выше. Все настройки роутера (настройки изменяемые через веб-интерфейс, пользовательские настройки, загрузочные скрипты) хранятся в энергонезависимый памяти — NVRAM (Non Volatile Random Access Memory). Существует специальная команда для работы с этой памятью — flash и она уже установлена в оригинальную прошивку.

Его можно запустить без аргументов для того, чтобы увидеть все опции:

Usage: flash cmd
option:
cmd:
      default -- write all flash parameters from hard code.
      get [wlan interface-index] mib-name -- get a specific mib from flash
          memory.
      set [wlan interface-index] mib-name mib-value -- set a specific mib into
          flash memory.
      all -- dump all flash parameters.
      gethw hw-mib-name -- get a specific mib from flash
          memory.
      sethw hw-mib-name mib-value -- set a specific mib into
          flash memory.
      allhw -- dump all hw flash parameters.
      reset -- reset current setting to default.
      set_mib -- get mib from flash and set to wlan interface.

Как вы можете видеть есть несколько опций. Аббревиатура hw означает — оборудование (железо).

Все настройки хранятся в переменных.

Показать все переменные:

DEF_IP_ADDR=192.168.1.1
DEF_SUBNET_MASK=255.255.255.0
DEF_DEFAULT_GATEWAY=0.0.0.0
DEF_DHCP=2
DEF_DHCP_CLIENT_START=192.168.1.2
DEF_DHCP_CLIENT_END=192.168.1.254
DEF_DHCP_LEASE_TIME=0
DEF_DHCP_LEASE=86400
DEF_ELAN_MAC_ADDR=000000000000
DEF_DNS1=0.0.0.0
DEF_DNS2=0.0.0.0
DEF_DNS3=0.0.0.0
DEF_STP_ENABLED=0
DEF_DEVICE_NAME="RTL8196c"
....

И многие другие переменные.

Примечание: Все переменные начинающиеся с префикса DEF_ имеют значение по умолчанию (исходная конфигурация). Она включается при нажатии кнопки Reset на корпусе роутера или из веб-интерфейса роутера или с помощью команды flash в терминале.

Примечание: Не все из перечисленных переменных работают.Такие переменные как SAMBA_ENABLED=0 не работают, из-за того, что Samba не установлен.

Для того, чтобы найти переменные с словом NAME, используйте команду flash совместно с grep:

DEF_DEVICE_NAME="RTL8196c"
DEF_DOMAIN_NAME="ASUS"
DEF_SUPER_NAME="admin"
DEF_USER_NAME=""
DEF_PPP_USER_NAME=""
DEF_PPTP_USER_NAME=""
DEF_L2TP_USER_NAME=""
DEF_DDNS_DOMAIN_NAME=""
DEF_DDNS_SUGGEST_NAME=""
DEF_HOST_NAME=""
DEF_PPP_SERVICE_NAME=""
DEF_PPTPD_USERNAME=""
DEVICE_NAME="RT-N12LX"
DOMAIN_NAME="asus.loc"
SUPER_NAME="admin"
USER_NAME=""
PPP_USER_NAME="*****"
PPTP_USER_NAME=""
L2TP_USER_NAME=""
DDNS_DOMAIN_NAME=""
DDNS_SUGGEST_NAME=""
HOST_NAME=""
PPP_SERVICE_NAME=""
PPTPD_USERNAME=""
Aborted

Примечание: Имена всех переменных записываются в верхнем регистре.

Показать значение определенной переменной (например, имя администратора):

SUPER_NAME="admin"

Установить новое значение переменной (например, имя администратора):

flash set SUPER_NAME superadmin

Теперь у вас есть новое имя администратора (логин), а это повышает безопасность.

Но для того, что бы изменения вступили в силу необходимо перезагрузить роутер:

Если необходимо вернуть все заводские параметры (сброс к изначальным настройкам):

P.S. Если вы не нашли в этой статье нужную вам информацию, то может быть вы сможете найти её в комментариях ниже. В английской версии статьи комментариев больше.

Если эта статья помогла вам, пожалуйста, оставьте комментарий :smiley:

Спасибо за прочтение!

Полезные материалы по MikroTik

Введение

Эта статья содержит много практических примеров использования консоли MikroTik RouterOS, а не просто перечисление имеющихся команд и их возможностей. Поэтому материал, содержащийся на этой странице, можно уверенно назвать учебником, а не справочником.

Консоль RouterOS используется для настройки устройств MikroTik с помощью введения текстовых команд. Термины «консоль» и «командная строка» являются синонимами. Термин «командная строка» происходит от англоязычного термина Command Line Interface (CLI). В операционной системе RouterOS командная строка является аналогом bash в Linux. Доступ к командной строке может быть получен с помощью серийного порта, протоколов Telnet и SSH или окна терминала в утилитах WinBox или WebFig. Использование командной строки значительно облегчает анализ конфигурации и дает значительный прирост скорости при выполнении некоторых операций. Также некоторые команды доступны только через консоль и недоступны через графический интерфейс.

Как перестать бояться командной строки RouterOS (Введение)

Умение пользоваться консолью является обязательным навыком, который должен быть у каждого администратора устройств MikroTik. Но зачастую у многих начинающих администраторов необходимость использования командной строки вызывает чувство страха. Материал, изложенный на этой странице, содержит большое количество наглядных примеров с помощью повторения которых можно легко и за короткий срок начать общаться с консолью MikroTik RouterOS на «ты». Такой «переход» происходит в несколько этапов:

  • Изучение основ:
    • принципы работы командной строки,
    • закрепление навыков работы с основными командами,
  • Получение навыка чтения конфигураций.

Как перестать бояться командной строки RouterOS (Этап 1. Изучение основ)

В самом начале обучения работе с CLI RouterOS администратор должен:

  • изучить принципы работы командной строки,
  • закрепить навыки работы с основными командами.

К основным принципам работы с командной строкой относятся следующие навыки и знания:

  • разница между командными строками RouterOS v6 и v7,
  • получение информации об имени пользователя и имени устройства,
  • перемещение по структуре меню,
  • использование встроенной помощи,
  • перемещение курсора в рамках строки,
  • манипуляции с текстом,
  • назначение функциональных клавиш,
  • ускорение ввода команд,
  • некоторые другие знания и навыки.

К основным командам, которые должны быть освоены на начальном этапе, относятся команды: add, remove, move, set, unset и print, а также некоторые их ключи. В результате освоения администратор должен не зачитывать определения того, что с помощью этих команд можно сделать, а уметь выполнять через консоль RouterOS следующие базовые операции:

  • создание правил,
  • удаление правил,
  • перемещение правил,
  • манипуляции с параметрами уже имеющихся правил (установка, изменение и удаление значений),
  • включение и выключение правил.

Все эти знания и навыки и можно получить с помощью материала, изложенного ниже. После уверенного закрепления материалов первого этапа освоения консоли RouterOS можно переходить ко второму этапу, который также изложен на этой странице.

Разница между командными строками RouterOS v6 и RouterOS v7

Командные строки RouterOS v6 и RouterOS v7 идентичны. Единственная разница заключается в формате записи пути. В RouterOS v6 при указании пути разные иерархические уровни разделяются пробелами, а в RouterOS v7 – с помощью слэша (/). Разница касается только указания пути. Сами команды записываются одинаково в обеих версиях операционной системы.

Пример указания пути и создания правила брандмауэра в RouterOS v6:

[admin@MikroTik] /ip firewall filter> add action=accept chain=forward connection-state=established,related

Пример указания пути и создания правила брандмауэра в RouterOS v7:

[admin@MikroTik] /ip/firewall/filter> add action=accept chain=forward connection-state=established,related

В обоих приведенных выше примерах до знака > указан путь, а после команда. Поэтому различается только левая часть, которая содержит в себе запись пути.

Далее в этой статье примеры будут приводиться в формате записи для RouterOS v7. Но любая информация из статьи применима и для консоли RouteroOS v6.

Информация об имени пользователя и имени устройства

После получения доступа к консоли начинает отображаться приглашение аналогичное тому, которое приведено ниже. В квадратных скобках [admin@MikroTik] мы можем увидеть два имени, которые указаны через знак @. Первое имя (до знака @) – это имя пользователя от имени которого выполнено подключение, а второе имя (после знака @) – это имя устройства к которому выполнено подключение. Из приведенного ниже примера мы можем сделать вывод, что пользователь с именем admin подключился к устройству с именем MikroTik.

[admin@MikroTik] >

Структура меню

Ввиду того, что существует огромное количество возможных команд, они разбиты по иерархически организованным группам. В зависимости от того в каком месте иерархии происходит управление, будут доступны разные команды и разные наборы дальнейших путей для дальнейшего перемещения по структуре. Такой принцип организации структуры называется «контекстно-ориентированным». Самая верхняя точка меню называется «корень иерархической структуры» или просто «корень».

Пример доступных путей и команд из корня консоли:

[admin@MikroTik] > 
caps-man     interface  partitions  routing        user    password
certificate  ip         port        snmp           beep    ping    
console      ipv6       ppp         special-login  blink   quit    
disk         log        queue       system         export  redo    
file         mpls       radius      tool           import  undo 

Пример доступных путей и команд из раздела /ip:

[admin@MikroTik] /ip >
address      dhcp-server  kid-control  route     ssh           export
arp          dns          neighbor     service   tftp          
cloud        firewall     packing      settings  traffic-flow  
dhcp-client  hotspot      pool         smb       upnp          
dhcp-relay   ipsec        proxy        socks     vrf           

Пример доступных путей и команд из раздела /ip/address:

[admin@MikroTik] /ip/address>
add  comment  disable  edit  enable  export  find  print  remove  reset  set       

В оригинальном отображении командной строки для разных элементов используются разные цвета. Пример:

[admin@MikroTik] > /system/clock set time-zone-name=Europe/Moscow

В приведенном выше примере:

  • /system/clock – путь,
  • set – команда,
  • time-zone-name= – параметр, который необходимо задать,
  • Europe/Moscow – значение параметра, которое должно быть задано.

Чем между собой различаются путь, команда, параметр и значение параметра мы разберем далее в этой статье. Формально имя пути и команда это не одно и тоже. Но для облегчения изучения материала под термином «команда» мы будем подразумевать одновременно оба термина: «имя пути» и «команда».

Структуры интерфейса командной строки (CLI) и графического интерфейса (GUI) чаще всего совпадают, но иногда встречаются и различия. Различия могут заключаться, как в написании отдельных слов, так и в указании полного пути до интересующего раздела с настройками.

Примеры совпадений

CLI GUI
/ip/pool IP → Pool
/ip/cloud IP → Cloud
/system/license System → License
Примеры различий

CLI GUI
/ip/address IP → Addresses
/ping Tools → Ping
/interface/ethernet/switch Switch

Перемещение по структуре меню

Варианты перемещения

С помощью приведенных в предыдущем разделе команд возможны разные способы перемещения по структуре меню RouterOS с помощью командной строки:

  • Переход в раздел меню, являющийся нижестоящим относительно текущего расположения, возможен с помощью:
    • поочередного перехода с указанием одного нижестоящего пункта за один раз,
    • быстрого перехода с указанием более, чем одного нижестоящего пункта за один раз.
  • Переход в раздел меню, который не является нижестоящим относительно текущего расположения, возможен с помощью:
    • указания полного пути с указанием корня в начале команды,
    • предварительного перехода в нужный вышестоящий пункт меню с помощью указания .. (двух точек),
    • предварительного перехода сразу в корень с помощью указания / (слэша).

Далее в статье приведен детальный разбор с примерами каждой из описанных выше ситуаций.

Команды

Для перемещения по меню RouterOS с помощью командной строки используются следующие команды:

  • название вложенного пункта меню — переход в соответствующий подраздел,
  • / – перемещение в корень,
  • .. – перемещение на один уровень вверх.

Определение текущего расположения

Путь по которому происходит управление в консоли, отображается до символа >.

1 [admin@MikroTik] > /ip/firewall/filter
2 [admin@MikroTik] /ip/firewall/filter>

В обоих приведенных выше примерах примерах есть текст /ip/firewall/filter. Разница между примерами, заключается в расположении текста /ip/firewall/filter относительно знака >. В первом случае слева от этого знака пусто, а это значит, что управление происходит из корня иерархической структуры, а /ip/firewall/filter это путь по которому произойдет переход если будет нажата клавиша Enter. Во втором случае слева от знака > указан путь /ip/firewall/filter, а это значит, что этот путь и является путем текущего расположения.

Перемещение вглубь структуры меню

Для перемещения в нижестоящий раздел необходимо ввести название интересующего раздела и нажать Enter.

Перемещение на один пункт за один раз

Если интересующий раздел находится далее, чем в одном шаге от текущего раздела, то процесс перехода необходимо выполнить в несколько этапов пока не будет достигнут нужный раздел.

1 [admin@MikroTik] > ip
2 [admin@MikroTik] /ip> firewall
3 [admin@MikroTik] /ip/firewall> filter
4 [admin@MikroTik] /ip/firewall/filter>
  1. Мы находимся в корне и указываем, что хотим переместиться на один пункт вглубь меню в раздел ip.
  2. Мы оказываемся в разделе /ip и указываем, что хотим переместиться на один пункт вглубь меню в раздел firewall.
  3. Мы оказываемся в разделе /ip/firewall и указываем, что хотим переместиться на один пункт в глубь меню в раздел filter.
  4. Мы оказываемся в разделе /ip/firewall/filter.

Перемещение на два и более пунктов за один раз

Для перемещения сразу в нужный раздел необязательно делать это пошагово. Это можно сделать указав сразу более одного пункта меню за один раз.

1 [admin@MikroTik] > ip/firewall/filter
2 [admin@MikroTik] /ip/firewall/filter>
  1. Мы находимся в корне и указываем, что хотим переместиться сразу в раздел ip/firewall/filter.
  2. Мы оказываемся сразу в разделе /ip/firewall/filter.

Перемещение между пунктами меню, не связанными друг с другом напрямую

Для перемещения в пункт меню, который не является вложенным относительно текущего расположения необходимо указать знак корня / до указания пути по которому необходимо выполнить переход. Использование этого знака даст понять операционной системе, что точкой отсчета пути будет являться корень, а не текущий раздел.

1 [admin@MikroTik] /ip/firewall/filter> nat
2 bad command name nat (line 1 column 1)
3 [admin@MikroTik] /ip/firewall/filter> ip/firewall/nat
4 syntax error (line 1 column 3)
5 [admin@MikroTik] /ip/firewall/filter> /ip/firewall/nat
6 [admin@MikroTik] /ip/firewall/nat> /system/license
7 [admin@MikroTik] /system/license> /
8 [admin@MikroTik] >
  1. Мы находимся в разделе /ip/firewall/filter и хотим перейти в раздел /ip/firewall/nat. Для этого мы указываем nat.
  2. Мы получаем ошибку, т.к. система считает, что мы хотим перейти по пути /ip/firewall/filter/nat. А такой путь отсутствует, т.к. путь до раздела nat не является вложенным в раздел /ip/firewall/filter. Он, идет «параллельно» ему, т.е. тоже находится по пути /ip/firewall, но без входа в подраздел filter.
  3. Мы указываем путь ip/firewall/nat.
  4. Мы получаем ошибку, т.к. система считает, что мы хотим перейти по пути /ip/firewall/filter/ip/firewall/nat. А такой путь отсутствует.
  5. Мы указываем путь /ip/firewall/nat. Разница с пунктом 3 заключается в том, что в этот раз перед путем был указан знак корня /.
  6. Мы оказываемся в разделе /ip/firewall/nat и указываем путь /system/license.
  7. Мы оказываемся в разделе /system/license и указываем путь /.
  8. Мы оказываемся в корне.

Перемещение по меню в обратном направлении (назад к корню)

Для перемещения по иерархической структуре в обратном направлении используется команда .. (две точки).

Перемещение на один пункт за один раз

Для перемещения по иерархической структуре в обратном направлении на один уровень необходимо указать .. (две точки).

1 [admin@MikroTik] /ip/firewall/filter> ..
2 [admin@MikroTik] /ip/firewall> ..
3 [admin@MikroTik] /ip> ..
4 [admin@MikroTik] >
  1. Мы находимся в разделе /ip/firewall/filter и указываем .. для того, чтобы перейти на один уровень наверх (ближе к корню) в раздел /ip/firewall.
  2. Мы оказываемся в разделе /ip/firewall и указываем .. для того, чтобы перейти на один уровень наверх (ближе к корню) в раздел /ip.
  3. Мы оказываемся в разделе /ip/ и указываем .. для того, чтобы перейти на один уровень наверх (ближе к корню).
  4. Мы оказываемся в корне.

Перемещение на два и более пунктов за один раз

Для перемещения по иерархической структуре в обратном направлении более чем на один уровень необходимо указать блоки из двух точек (..) несколько раз. Между разными блоками должны стоять знаки пробела. Количество блоков должно соответствовать количеству уровней на которые необходимо сделать переход назад.

1 [admin@MikroTik] /ip/firewall/filter> .. .. ..
2 [admin@MikroTik] >
  1. Мы находимся в разделе /ip/firewall/filter и указываем .. .. .. (три раза по две точки, с пробелами после первого и второго блока из двух точек).
  2. Мы оказываемся в корне.

Полезные материалы по MikroTik

Встроенные средства помощи

Способы получения помощи

В консоли MikroTik RouterOS имеются встроенные средства помощи, которые так же являются контекстно-ориентированными. Для получения помощи можно использовать:

  • Однократное и двукратное нажатие клавиши Tab
    • в начале строки указания команды,
    • после пробела после команды,
    • сразу после части команды без пробела.
  • Клавишу F1.

Клавиша Tab

Использование клавиши Tab в начале строки или после пробела

После первого нажатия на Tab в консоли будет выведен список доступных команд из «основного» списка. В приведенном ниже примере показан список команд, которые доступны из корня.

[admin@MikroTik] > [Tab]
caps-man     interface  partitions  routing        user    password
certificate  ip         port        snmp           beep    ping    
console      ipv6       ppp         special-login  blink   quit    
disk         log        queue       system         export  redo    
file         mpls       radius      tool           import  undo    

После второго нажатия на Tab в консоли будет выведен список доступных команд для встроенного скриптового языка. В приведенном ниже примере показан список команд скриптового языка, которые доступны из корня.

[admin@MikroTik] > [Tab]
/            error    if       put      time       toip6 
:            execute  len      resolve  timestamp  tonum 
environment  find     local    return   toarray    tostr 
terminal     for      nothing  rndnum   tobool     totime
delay        foreach  parse    rndstr   toid       typeof
do           global   pick     set      toip       while

В приведенном ниже примере показан список команд из «основного» списка, которые доступны из раздела /ip/firewall/filter.

[admin@MikroTik] /ip/firewall/filter> [Tab]
add      disable  enable  find  print   reset           reset-counters-all  unset
comment  edit     export  move  remove  reset-counters  set                 

В приведенном ниже примере показан список команд из «основного» списка, которые доступны для команды add из раздела /ip/firewall/filter.

[admin@MikroTik] /ip/firewall/filter> add [Tab]
action                dst-address       in-bridge-port-list  log-prefix                 place-before  src-address-list
address-list          dst-address-list  in-interface         nth                        port          src-address-type
address-list-timeout  dst-address-type  in-interface-list    out-bridge-port            priority      src-mac-address 
chain                 dst-limit         ingress-priority     out-bridge-port-list       protocol      src-port        
comment               dst-port          ipsec-policy         out-interface              psd           tcp-flags       
connection-...        fragment          ipv4-options         out-interface-list         random        tcp-mss         
content               hotspot           jump-target          p2p                        realm         time            
copy-from             hw-offload        layer7-protocol      packet-mark                reject-with   tls-host        
disabled              icmp-options      limit                packet-size                routing-mark  ttl             
dscp                  in-bridge-port    log                  per-connection-classifier  src-address

Использование клавиши Tab без пробела после указания части команды

Клавишу Tab можно нажать сразу после введенной части команды (без пробела). В этом случае выйдет подсказка, которая будет зависеть от конкретной ситуации: есть продолжение или его нет. Если оно есть, то оно уникальное или нет.

В случае неуникальной части команды

На букву «p» начинается три подчиненных подраздела (partition, port и ppp), две «обычные» команды (password и ping) и три команды скриптового языка (parse, pick и put).

Первое нажатие Tab результата не принесло.

[admin@MikroTik] > p[Tab]

Второе нажатие Tab показало доступные пути и «обычные» команды, которые начинаются с буквы «p» и не показало ни одной команды скриптового языка.

[admin@MikroTik] > p[Tab]
partitions  port  ppp  password  ping
В случае уникальной части команды
Ситуация № 1

На букву «d» начинается один подчиненный подраздел (disk), не начинается ни одна «обычная» команда и начинается две команды скриптового языка (delay и do);

Первое нажатие клавиши Tab в результате дало полное написание единственного доступного варианта который начинается на букву «p», из «основного» списка путей и команд.

[admin@MikroTik] > d[Tab]
[admin@MikroTik] > disk/ 
Ситуация № 2

На букву «w» не начинается ни один подраздел и ни одна команда из «обычного» меню и начинается одна команда скриптового языка (while). Первое нажатие клавиши Tab в результате дало полное написание единственного доступного варианта который начинается на букву «w», из списка команд скриптового языка.

[admin@MikroTik] > w[Tab]
[admin@MikroTik] > while  
Ситуация № 3

На букву «y» не начинается ни один подраздел и ни одна команда из «обычного» меню и не начинается ни одна команда скриптового языка, но при этом буква «y» является второй буквой в одно названии пути (system), не является второй буквой ни у одной из «обычных» команд и является второй буквой у одной команды скриптового языка (typeof). Первое нажатие клавиши Tab в результате дало полное написание единственного доступного варианта который начинается на букву «y», из «основного» списка путей и команд.

[admin@MikroTik] > y[Tab]
[admin@MikroTik] > system/  
Ситуация № 4

На букву «h» не начинается ни один подраздел и ни одна команда из «обычного» меню, но при этом буква «h» встречается в трех командах скриптового языка (foreach, nothing, while). Первое нажатие клавиши Tab результата не дало.

[admin@MikroTik] > h[Tab]

Второе нажатие клавиши Tab показало три варианта из списка команд скриптового языка, которые не начинаются с буквы «h», но при этом содержат ее в имени.

[admin@MikroTik] > h[Tab]
foreach  nothing  while

Клавиша F1

С помощью нажатия клавиши F1 при нахождении курсора в самом начале командной строки можно увидеть список команд, доступных из текущего раздела. Разница, по сравнению с использованием клавиши Tab, заключается в том, что с помощью F1 можно увидеть описание части команд.

Пример для корня:

[admin@MikroTik] > [F1]

beep -- 
blink -- 
caps-man -- 
certificate -- Certificate management
console -- 
delay -- does nothing for a while
disk -- 
do -- executes command
environment -- list of all variables
error -- make error value
 
Часть выдачи пропущена

while -- executes command while condition is true
export -- Print or save an export script that can be used to restore 
configuration

Press F1 for general console usage help

Пример для раздела /ip:

[admin@GW] /ip> [F1]

.. -- go up to root
address -- Address management
arp -- ARP entries management
cloud -- 
dhcp-client -- DHCP client settings
dhcp-relay -- DHCP relay settings
dhcp-server -- DHCP server settings

Часть выдачи пропущена

vrf -- 
export -- Print or save an export script that can be used to restore 
configuration

Press F1 for general console usage help

Комбинации клавиш и функциональные клавиши

Перемещение курсора

В консоли MikroTik RouterOS в пределах строки можно перемещать курсор следующими способами:

  • Control-\ – разбиение строки на две отдельные строки в месте расположения курсора с последующим отображением второй из двух строк.
  • Control+B или – перемещение курсора на один знак назад.
  • Control+F или – перемещение курсора на один знак вперед.
  • Control+A или клавиша Home – перемещение курсора в начало строки.
  • Control+E или клавиша End – перемещение курсора в конец строки.

Манипуляции с текстом

В командной строке MikroTik RouterOS манипуляции с текстом можно выполнять следующими способами:

  • Ctrl+C – скопировать выделенный текст.
  • Ctrl+V – вставить выделенный текст.
  • Ctrl+K – удалить все знаки, начиная со знака, на котором находится курсор, и до конца строки.
  • Ctrl+U – удалить все знаки от начала строки и до знака, на котором находится курсор, не считая самого этого знака.
  • Delete – удалить знак, на котором находится курсор.
  • Ctrl+H или клавиша Backspace – удалить знак перед курсором и сдвинуть курсор на один знак.

Прочие комбинации клавиш

Ниже перечислены прочие возможности консоли MikroTik, которые не были перечислены ранее:

  • Ctrl+C – прервать выполнение команды.
  • Ctrl+D – завершить сессию и выйти из консоли (поле ввода должно быть пустым).
  • Ctrl+L или F5 – очистить экран.
  • Ctrl+R или F3 – поиск по истории введенных команд.
  • Ctrl+X или F4 – активация/деактивация безопасного режима.
  • Ctrl+P или – перемещение назад по истории команд.
  • Ctrl+N или – перемещение вперед по истории команд.

Функциональные клавиши

  • F1 – контекстно ориентированная помощь.
  • F2 – не используется.
  • F3 – поиск по истории введенных команд.
  • F4 – активация/деактивация безопасного режима.
  • F5 – очистить экран.
  • F6 – переключение между окнами в WinBox.
  • F7 – активация/деактивация режима Hot Lock.
  • F8 – F12 – не используются.

Ускорение ввода команд

В консоли RouterOS можно ускорить введение команд после того как будет введена уникальная комбинация символов, которая позволит однозначно идентифицировать команду в текущем разделе. Для ускорения ввода команд можно использовать:

  • клавишу Tab,
  • указание только уникальной части команды,
  • режим Hot Lock.

Ниже мы разберем эти способа более подробно.

Клавиша [Tab]

Этот вариант уже разбирался в этой статье ранее, но в несколько ином контексте.

[admin@MikroTik] > ip/firewall/filter

На самом деле была введена следующая последовательность команд ip/f[Tab]f[Tab]. Т.е. всего было выполнено семь нажатий клавиш. Остальная часть была подставлена автоматически.

Указание только уникальной части команды

Сокращение имени пути

1 [admin@MikroTik] > s
2 bad command name s (line 1 column 1)
3 [admin@MikroTik] > sn
4 [admin@MikroTik] /snmp> 
  1. Мы находимся в корне консоли, ввели s и нажали клавишу Enter.
  2. Система выдала ошибку, т.к. с буквы s начинается более одного наименования пути или команды (snmp, special-login, system).
  3. Мы ввели sn и нажали клавишу Enter.
  4. Мы оказываемся в разделе /snmp потому, что комбинация символов «sn» является уникальной и с нее начинается только название раздела system.
[admin@MikroTik] > ip/fi/fi
[admin@MikroTik] /ip/firewall/filter> 
  1. Мы находимся в корне консоли, ввели ip/fi/fi и нажали клавишу Enter.
  2. Мы оказываемся в разделе /ip/firewall/filter потому, что «ip» – это полное название вложенного раздела, который доступен из корня; первое «fi» является уникальной частью, которая есть только в имени раздела «firewall», который доступен в разделе /ip, а второе «fi» является уникальной частью, которая есть только в имени раздела «filter», который доступен в разделе /ip/firewall.
[admin@MikroTik] > ip/f/f
[admin@MikroTik] /ip/firewall/filter>

Приведенный выше пример аналогичен предыдущему, но разница заключается в том, что вместо ip/fi/fi мы указали еще более короткий вариант ip/f/f и система успешно приняла его. Логика принятия такая же как и в предыдущем варианте.

Сокращение команд

Использование уникальной части команды можно применять не только для сокращения названия пути, но и для сокращения команд. Вместо [admin@MikroTik] > ping 10.0.0.1 count 3 size 100 можно указать [admin@MikroTik] > pi 10.1 c 3 si 100.

Режим Hot Lock

С помощью клавиши F7 в консоли MikroTik RouterOS активируется режим Hot Lock в котором команды автоматически дополняются до полного написания как только будет введен уникальный набор символов, который позволит однозначно идентифицировать эту команду.

1 [admin@MikroTik] > [F7]
2 [admin@MikroTik] >> ip/firewall/filter
3 [admin@MikroTik] ip/firewall/filter>> 
  1. Мы нажали клавишу F7 и затем клавишу Enter.
  2. Консоль перешла в режим Hot Lock. Об этом свидетельствует изменение > на >>. Если ориентироваться на визуальную выдачу, то может показаться что был введен путь ip/firewall/filter. На на самом деле были введены только следующие символы ip/ff, а все остальное было подставлено автоматически.
[admin@MikroTik] >> ip/firewall/i

В приведенном выше примере мы указали ip/fi. И в итоге был получен нежелательный результат. Символы fi являются уникальными для имени пути firewall в разделе /ip. Но самой короткой уникальной частью является самый первый символ f. Поэтому как только был введен этот символ выдача консоли была автоматически дополнена до ip/firewall/ и после этого был добавлен символ i. А в разделе /ip/firewall нет ничего что начиналось бы на символ i. Именно поэтому на практике режим Hot Lock редко используется из-за того, что для его использования надо уверенно знать уникальные части всех команд.

Полезные материалы по MikroTik

Чек-лист

Список обязательных действий при настройке маршрутизатора MikroTik. Бесплатно через подписку по форме ниже.

Подписка на чек-лист

Имя

E-mail


Я хочу получить чек-лист
и согласен с политикой конфиденциальности

Характеристики чек-листа

RouterOS: v6 и v7
Дата публикации: апрель 2022
Применимость: сети до 100 и более компьютеров
Темы: Firewall, NAT, QoS, DHCP, DNS, Wi-Fi, основная и гостевая сеть и многое другое
Формат: файл, состоящий из 28 пунктов на 2-х листах в формате pdf
Автор: Скоромнов Дмитрий, практикующий инженер и сертифицированный тренер MikroTik (TR0680)
Время получения: в течение 5-ти минут после подписки

Telegram-канал

На Telegram-канале Mikrotik сэнсей можно получить доступ к закрытой информации от официального тренера MikroTik.

Основные операции

Разница между путем, командой, параметром и значением параметра

В оригинальной выдаче командной строки RouterOS для разных элементов используются разные цвета. Пример:

[admin@MikroTik] > /system/clock set time-zone-name=Europe/Moscow

В приведенном выше примере:

  • /system/clock – путь,
  • set – команда,
  • time-zone-name= – параметр, который необходимо задать,
  • Europe/Moscow – значение параметра, которое должно быть задано.

Попробуем разобрать разницу между этими элементами на примере:

Руководитель говорит сотруднику в офисе: подготовь отчет в формате pdf, крайний срок исполнения конец дня.

В приведенном выше примере:

  • Руководитель говорит сотруднику – аналогия для «системный администратор настраивает маршрутизатор MikroTik».
  • В офисе – путь.
  • Подготовь – команда.
  • Отчет – параметр № 1.
  • В формате pdf – значение параметра «отчет».
  • Крайний срок исполнения – параметр № 2.
  • Конец дня – значение параметра «крайний срок исполнения».

Для одной команды должен быть указан хотя бы один параметр. Значение параметра указывается после самого параметра и знака равно. Если в значении параметра используется хотя бы один пробел, то все значение должно быть взято в кавычки. Пример: comment="rule № 1".

Выполнение команд из раздела к которому они не относятся

В процессе работы иногда требуется выполнить команду, которая не относится к текущему разделу. При этом переход в соответствующий раздел возможен, но нежелателен. Например, потому что потом опять надо вернуться в исходный раздел. В таких ситуациях надо указать полный путь до интересующей команды, включая знак корня (/).
В приведенном ниже примере команда ping выполнена из раздела /ip/route:

[admin@MikroTik] /ip/route> /tool/ping 8.8.8.8

Определение номера правила

Для дальнейшего понимания принципа работы с командной строкой MikroTik RouterOS надо понять по какому принципу происходит нумерация правил и как можно определить номер конкретного интересующего нас правила.

[admin@MikroTik] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic 
 0    ;;; rule_1
      chain=forward action=accept

 1    ;;; rule_2
      chain=forward action=accept

 2    ;;; rule_3
      chain=forward action=accept

В приведенном выше примере в разделе /ip/firewall/filter с помощью команды print мы получили информацию о списке имеющихся правил и их номерах. Учтите, что в жизни такие правила не имеют никакого смысла. Они сделаны в таком виде исключительно для удобства обучения. Первое правило имеет комментарий «rule_1», второе правило имеет комментарий «rule_2» и т.д. Но это именно комментарий к правилу, а не номер, который будет учитывать операционная система. Все правила нумеруются по порядку начиная с нуля: 0, 1, 2, 3, 4 и т. д. В итоге самое первое правило с комментарием «rule 1» с точки зрения RouterOS имеет номер 0, второе правило с комментарием «rule 2» с точки зрения операционной системы имеет номер 1, и т.д. Это очень важно учитывать и при настройке и через CL и через GUI, и при общении с коллегами. Если это не учитывать, то может получиться, что один человек имел ввиду номер в «человеческом» исчислении, а другой человек имел ввиду номер в «машинном» исчислении. Результат такого недопонимания может быть очень плачевным.

Список основных команд

  • add – добавить правило.
  • remove – удалить правило.
  • move – переместить правило.
  • set – изменить значение параметра.
  • unset – удалить значение параметра.

Добавление нового правила

Для создания новых правил используется команда add.

В конце списка

По умолчанию любое вновь созданное правило добавляется в конец списка.

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic

2 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_1

3 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_2

4 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_3
 
5 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept
  
   1    ;;; rule_2
        chain=forward action=accept
  
   2    ;;; rule_3
        chain=forward action=accept
  1. Мы находимся в разделе /ip/firewall/filter и выполняем команду print в выдаче которой мы видим, что правила в текущем разделе отсутствуют.
  2. Мы создаем правило с комментарием rule_1.
  3. Мы создаем правило с комментарием rule_2.
  4. Мы создаем правило с комментарием rule_3.
  5. В выдаче команды print мы видим, что в разделе /ip/firewall/filter появились правила с номерами 0, 1 и 2 и эти правила имеют комментарии «rule_1», «rule_2», «rule_3».

На заданную позицию

В некоторых таблицах порядок правил играет роль, а в некоторых нет. Например, в /ip/route порядок правил роли не играет, а в /ip/firewall/filter порядок правил роль играет. Поэтому иногда может потребоваться поместить правило не в конец списка, а на какую-то конкретную позицию. Это делается с помощью параметра place-before в котором указывается номер правила перед которым должно быть помещено вновь создаваемое правило.

1 [admin@MikroTik] /ip/firewall/filter> print
   Flags: X - disabled, I - invalid; D - dynamic 
    0    ;;; rule_1
         chain=forward action=accept 
  
    1    ;;; rule_2
         chain=forward action=accept 
  
    2    ;;; rule_3
         chain=forward action=accept
 
2 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_4 place-before=1

3 [admin@MikroTik] /ip/firewall/filter> print 
  Flags: X - disabled, I - invalid; D - dynamic 
    0    ;;; rule_1
         chain=forward action=accept 
  
    1    ;;; rule_4
         chain=forward action=accept 
  
    2    ;;; rule_2
         chain=forward action=accept 
  
    3    ;;; rule_3
         chain=forward action=accept

  1. В выдаче команды print мы видим, что отсутствует правило с комментарием «rule_4».
  2. Мы указываем, что хотим создать новое правило с комментарием «rule_4» и сразу поместить его до текущего правила с номером 1 (place-before=1).
  3. В выдаче команды print мы видим, что созданное на предыдущем шаге правило с комментарием «rule_4» сразу было помещено на место с номером 1, а предыдущее правило, которое ранее имело номер 1 и комментарий «rule_2» переместилось на позицию с номером 2.

Перемещение существующего правила

Для перемещения правил используется команда move и ее параметры numbers и destination. В параметре numbers задается какое правило или правила мы хотим переместить, а в параметре destination задается позиция куда должно быть перенесено правило. Итоговый номер перенесенного правила зависит от того в каком направлении производится перемещение: вверх или вниз по списку.

Перемещение правила ниже по списку

В любое место кроме последнего

Если правило должно быть перемещено ниже по списку, то в параметре destination необходимо указать номер правила перед которым должно быть помещено перемещаемое правило.

1 [admin@MikroTik] /ip/firewall/filter> print 
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 
  
   1    ;;; rule_4
        chain=forward action=accept 
  
   2    ;;; rule_2
        chain=forward action=accept 
  
   3    ;;; rule_3
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> move numbers=1 destination=3

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 
  
   1    ;;; rule_2
        chain=forward action=accept 
  
   2    ;;; rule_4
        chain=forward action=accept
  
   3    ;;; rule_3
        chain=forward action=accept
  1. В выдаче команды print мы видим, что правило с комментарием «rule_4» имеет номер 1.
  2. С помощью команды move мы указываем, что надо взять правило с номером 1 (numbers=1) и поместить его перед правилом номер 3 (destination=3).
  3. В выдаче команды print мы видим, что правило, которое ранее имело номер 1 и комментарий «rule_4», было помещено перед правилом с номером 3 и комментарием «rule_3».
На последнее место

Если правило должно быть перемещено в самый конец списка, то необходимо не указывать значение параметра destination. Т.е. запись должна выглядеть так: destination=.

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 
  
   1    ;;; rule_2
        chain=forward action=accept 
  
   2    ;;; rule_4
        chain=forward action=accept
  
   3    ;;; rule_3
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> move numbers=2 destination=

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 
  
   1    ;;; rule_2
        chain=forward action=accept 
  
   2    ;;; rule_3
        chain=forward action=accept
  
   3    ;;; rule_4
        chain=forward action=accept
  1. В выдаче команды print мы видим, что правило с комментарием «rule_4» имеет номер 2.
  2. С помощью команды move мы указываем, что надо взять правило с номером 2 (numbers=2) и поместить в самый конец списка (destination=).
  3. В выдаче команды print мы видим, что правило с комментарием «rule_4», которое ранее имело номер 2, было поставлено в самый конец списка, т.е. теперь оно имеет номер 3.

Перемещение правила выше по списку

Если правило должно быть перемещено выше по списку, то в параметре destination указывается номер, который должно занять перемещаемое правило.

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 
  
   1    ;;; rule_2
        chain=forward action=accept 
  
   2    ;;; rule_3
        chain=forward action=accept
  
   3    ;;; rule_4
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> move numbers=3 destination=1

3 [admin@MikroTik] /ip/firewall/filter> print
 Flags: X - disabled, I - invalid; D - dynamic 
  0    ;;; rule_1
       chain=forward action=accept 

  1    ;;; rule_4
       chain=forward action=accept

  2    ;;; rule_2
       chain=forward action=accept 

  3    ;;; rule_3
       chain=forward action=accept 
  1. В выдаче команды print мы видим, что правило с комментарием «rule_4» имеет номер 3.
  2. С помощью команды move мы указываем, что мы хотим взять правило с номером 3 (numbers=3) и поместить его на место правила с номером 1 (destination=1).
  3. В выдаче команды print мы видим, что правило с комментарием «rule_4» было перемещено на место правила с номером 1.

Перемещение более, чем одного правила

С помощью команды move можно переместить более одного правила за один раз. Для этого в в параметре numbers надо через запятую указать номера правил, которые мы хотим переместить. Правила переносятся в том порядке в котором они указаны в параметре numbers .

Перемещение правил с номерами, идущими по порядку
1 [admin@MikroTik] /ip/firewall/filter> print
 Flags: X - disabled, I - invalid; D - dynamic 
  0    ;;; rule_1
       chain=forward action=accept 

  1    ;;; rule_4
       chain=forward action=accept

  2    ;;; rule_2
       chain=forward action=accept

  3    ;;; rule_3
       chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> move numbers=2,3 destination=1

3 [admin@MikroTik] /ip/firewall/filter> print
 Flags: X - disabled, I - invalid; D - dynamic 
  0    ;;; rule_1
       chain=forward action=accept 

  1    ;;; rule_2
       chain=forward action=accept

  2    ;;; rule_3
       chain=forward action=accept

  3    ;;; rule_4
       chain=forward action=accept
  1. В выдаче команды print мы видим, что правила с комментариями «rule_2» и «rule_3» имеют номера 2 и 3 соответственно.
  2. С помощью команды move мы указываем, что мы хотим взять правила с номерами 2 и 3 (numbers=2,3) и поместить их на место правила с номером 1 (destination=1).
  3. В выдаче команды print мы видим, что правила с комментариями «rule_2» и «rule_3» были перемещены и получили номера 1 и 2 соответственно.
Перемещение правил с номерами, идущими не по порядку
1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept

   1    ;;; rule_2
        chain=forward action=accept

   2    ;;; rule_3
        chain=forward action=accept

   3    ;;; rule_4
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_5

3 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_6

4 [admin@MikroTik] /ip/firewall/filter> add chain=forward action=accept comment=rule_7

5 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_3
        chain=forward action=accept
 
   3    ;;; rule_4
        chain=forward action=accept 

   4    ;;; rule_5
        chain=forward action=accept

   5    ;;; rule_6
        chain=forward action=accept 

   6    ;;; rule_7
        chain=forward action=accept

6 [admin@MikroTik] /ip/firewall/filter> move numbers=6,2,4 destination=0

7 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_7
        chain=forward action=accept

   1    ;;; rule_3
        chain=forward action=accept

   2    ;;; rule_5
        chain=forward action=accept

   3    ;;; rule_1
        chain=forward action=accept

   4    ;;; rule_2
        chain=forward action=accept

   5    ;;; rule_4
        chain=forward action=accept

   6    ;;; rule_6
        chain=forward action=accept
  1. В выдаче команды print мы видим, что есть 4 правила с номерами 0–3 и комментариями «rule_1», «rule_2», «rule_3», «rule_4» имеет номер 2.
  2. Мы добавляем правило с комментарием «rule_5».
  3. Мы добавляем правило с комментарием «rule_6».
  4. Мы добавляем правило с комментарием «rule_7».
  5. В выдаче команды print мы видим, что есть 7 правил с номерами 0–6 и комментариями «rule_1» – «rule_7». Правило 0 имеет комментарий «rule_1», правило 1 имеет комментарий «rule_2», Правило 2 имеет комментарий «rule_3» и т. д. по порядку.
  6. С помощью команды move мы говорим, что хотим переместить правила с номерами 6, 2 и 4 (numbers=6,2,4) на место правила с номером 0 (destination=0).
  7. В выдаче команды print мы видим, что привила 6 («rule_7»), 2 («rule_3») и 4 («rule_2») были перенесены на место правила 0. Так же мы видим, что перенос был выполнен с учетом порядка в котором номера правил были перечислены в параметре numbers.

Удаление правила

Для удаления правил используется команда remove. Номер удаляемого правила должен быть указан в параметре numbers. За один раз можно удалить как одно, так и более одного правил.

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_7
        chain=forward action=accept

   1    ;;; rule_3
        chain=forward action=accept

   2    ;;; rule_5
        chain=forward action=accept

   3    ;;; rule_1
        chain=forward action=accept

   4    ;;; rule_2
        chain=forward action=accept

   5    ;;; rule_4
        chain=forward action=accept

   6    ;;; rule_6
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> remove numbers=0,1,2

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_4
        chain=forward action=accept 

   3    ;;; rule_6
        chain=forward action=accept
  1. В выдаче команды print мы видим, что правила с номерами 0, 1 и 2 имеют комментарии «rule_7», «rule_3» и «rule_5».
  2. С помощью команды remove мы указываем, что хотим удалить правила с номерами 0, 1 и 2 (numbers=0,1,2).
  3. В выдаче команды print мы видим, что правила с комментариями «rule_7», «rule_3» и «rule_5» удалены.

Установка, изменение и удаление значения параметров у имеющихся правил

Установка значения параметра, который ранее не использовался

Для установки значения для какого-либо параметра у уже имеющегося правила, необходимо с помощью команды set и параметра numbers= определить интересующее правило, а далее необходимо указать интересующий параметр и его значение.

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_4
        chain=forward action=accept 

   3    ;;; rule_6
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> set numbers=2 dst-address=8.8.8.8

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_4
        chain=forward action=accept dst-address=8.8.8.8 

   3    ;;; rule_6
        chain=forward action=accept
  1. В выдаче команды print мы видим, что ни у одного из правил не указано значение параметра dst-address.
  2. С помощью команды set мы указываем, что у правила с номером 2 (numbers=2) необходимо установить значение параметра dst-address равное 8.8.8.8 (dst-address=8.8.8.8).
  3. В выдаче команды print мы видим, что у правила с номером 2 параметр dst-address получил значение 8.8.8.8.

Изменение значения параметра, который ранее использовался

Процедура изменения значения какого-либо параметра происходит аналогично процедуре установке значения у параметра, который ранее уже использовался. Для установки значения для какого-либо параметра у уже имеющегося правила, необходимо с помощью команды set и параметра numbers= определить интересующее правило, а далее необходимо указать интересующий параметр и его значение.

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_4 
        chain=forward action=accept dst-address=8.8.8.8

   3    ;;; rule_6
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> set numbers=2 comment=rule_3

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; ;;; rule_3
        chain=forward action=accept dst-address=8.8.8.8 

   3    ;;; rule_6
        chain=forward action=accept 
  1. В выдаче команды print мы видим, что у правила с номером 2 указан комментарий «rule_4».
  2. С помощью команды set мы указываем, что у правила с номером 2 (numbers=2) необходимо изменить значение параметра comment на «rule_3» (comment=rule_3).
  3. В выдаче команды print мы видим, что у правила с номером 2 комментарий изменился на «rule_3».

Удаление значения параметра

Для удаления значения параметра используется команда unset, но в некоторых случаях можно использовать частный случай команды set: set="".

С помощью параметра unset
1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept

   1    ;;; rule_2
        chain=forward action=accept

   2    ;;; ;;; rule_3
        chain=forward action=accept dst-address=8.8.8.8

   3    ;;; rule_6
        chain=forward action=accept 

2 [admin@MikroTik] /ip/firewall/filter> unset numbers=2 dst-address

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept

   1    ;;; rule_2
        chain=forward action=accept

   2    ;;; rule_3
        chain=forward action=accept

   3    ;;; rule_6
        chain=forward action=accept
  1. В выдаче команды print мы видим, что у правила номер 2 есть настройка dst-address=8.8.8.8.
  2. С помощью команды unset мы указываем, что у правила с номером 2 (numbers=2) необходимо удалить значение параметра dst-address.
  3. В выдаче команды print мы видим, что у правила номер 2 пропала настройка dst-address=8.8.8.8.
С помощью параметра set

В некоторых случаях удалить значение параметра можно с помощью команды set="".

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept

   1    ;;; rule_2
        chain=forward action=accept

   2    ;;; rule_3
        chain=forward action=accept

   3    ;;; rule_6
        chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> set numbers=3 comment=""

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1    ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_3
        chain=forward action=accept 

   3   chain=forward action=accept 
  1. В выдаче команды print мы видим, что у правила номер 3 указан комментарий «rule_6».
  2. С помощью команды set мы указываем, что у правила с номером 3 (numbers=2) необходимо указать пустой комментарий (comment="").
  3. В выдаче команды print мы видим, что у правила номер 3 больше нет комментария.

Включение и выключение чего-либо

В заголовке раздела не случайно написано «чего-либо», т.к. включать и выключать можно: правила, интерфейсы или функционал. Включение и выключение производится с помощью параметров disabled и enabled. Команда disabled встречается намного чаще. Важно помнить, что в зависимости от того какая именно команда используется один и тот же параметр (yes или no) будет иметь прямо противоположное значение.

Параметр disabled

Disabled – команда включения или выключения чего-либо при наличии нумерации. Возможные значения:

  • =yes выключено,
  • =no включено.
1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept

   1    ;;; rule_2
        chain=forward action=accept

   2    ;;; rule_3
        chain=forward action=accept

   3    chain=forward action=accept

2 [admin@MikroTik] /ip/firewall/filter> set numbers=1,3 disabled=yes

3 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept

   1 X  ;;; rule_2
        chain=forward action=accept

   2    ;;; rule_3
        chain=forward action=accept

   3 X  chain=forward action=accept
  1. В выдаче команды print мы видим, что у правил номер 1 и 3 отсутствуют флаги X. Наличие этого флага говорило бы о том, что правило выключено (X — disabled).
  2. С помощью команды set мы указываем, что правила с номерами 1 и 3 (numbers=1,3) необходимо выключить (disabled=yes).
  3. В выдаче команды print мы видим, что у правил номер 1 и 3 появился флаг X. а это означает, что правила оказались выключенными.

Параметр enabled

Enabled – команда включения или выключения чего-либо при отсутствии нумерации (пример: /interface/l2tp-server/server). Возможные значения:

  • =yes включено,
  • =no выключено.
1 [admin@MikroTik] /interface/l2tp-server/server> print
                   enabled: no
                   max-mtu: 1450
                   max-mru: 1450
                      mrru: disabled
            authentication: pap,chap,mschap1,mschap2
         keepalive-timeout: 30
              max-sessions: unlimited
           default-profile: default-encryption
                 use-ipsec: no
              ipsec-secret: 
            caller-id-type: ip-address
      one-session-per-host: no
           allow-fast-path: no
         l2tpv3-circuit-id: 
      l2tpv3-cookie-length: 0
        l2tpv3-digest-hash: md5
    accept-pseudowire-type: all
      accept-proto-version: all

2 [admin@MikroTik] /interface/l2tp-server/server> set enabled=yes

3 [admin@MikroTik] /interface/l2tp-server/server> print
                   enabled: yes
                   max-mtu: 1450
                   max-mru: 1450
                      mrru: disabled
            authentication: pap,chap,mschap1,mschap2
         keepalive-timeout: 30
              max-sessions: unlimited
           default-profile: default-encryption
                 use-ipsec: no
              ipsec-secret: 
            caller-id-type: ip-address
      one-session-per-host: no
           allow-fast-path: no
         l2tpv3-circuit-id: 
      l2tpv3-cookie-length: 0
        l2tpv3-digest-hash: md5
    accept-pseudowire-type: all
      accept-proto-version: all
  1. Мы находимся в разделе с настройками L2TP-сервера (/interface/l2tp-server/server) и в выдаче команды print можно увидеть, что нумерация не используется, а сам L2TP-сервер выключен (enabled: no).
  2. С помощью команды set мы указываем, что необходимо включить L2TP-сервер (enabled=yes).
  3. В выдаче команды print мы видим, что L2TP-сервер активировался (enabled: yes).

Почему нельзя использовать кириллицу

Консоль RouterOS не примет кириллические символы. Но это ограничение можно обойти, если использовать графический интерфейс. В WinBox кириллические символы использовать получится. Проблема проявится, когда надо будет такую конфигурацию проанализировать в консольном режиме. В приведенном ниже режиме выполнены команды print и export после того как в GUI для правила номер 3 был задан комментарий «правило_3».

1 [admin@MikroTik] /ip/firewall/filter> print
  Flags: X - disabled, I - invalid; D - dynamic 
   0    ;;; rule_1
        chain=forward action=accept 

   1 X  ;;; rule_2
        chain=forward action=accept 

   2    ;;; rule_3
        chain=forward action=accept 

   3 X  ;;;        _3
        chain=forward action=accept log=no log-prefix="" 
2 [admin@MikroTik] /ip/firewall/filter> export 
  # mar/31/2022 21:48:45 by RouterOS 7.1.1
  # software id = VP5J-JC7C
  #
  # model = RBD52G-5HacD2HnD
  # serial number = BEEB0AC80265
  /ip firewall filter
  add action=accept chain=forward comment=rule_1
  add action=accept chain=forward comment=rule_2 disabled=yes
  add action=accept chain=forward comment=rule_3
  add action=accept chain=forward comment="\EF\F0\E0\E2\E8\EB\EE_3" disabled=yes
  1. В выдаче команды print мы видим, что у правила номер 3 не отображается та часть комментария в которой были использованы кириллические символы.
  2. С выдаче команды export (команда будет изучена позже) мы видим, что у последнего правила вместо кириллических символов используется непонятная кодировка.

======================

ВАЖНО: вся приведенная ниже информация является черновиками будущего продолжения статьи.

Как перестать бояться работать в командной строке (Этап 2. Чтение конфигураций)

Просмотр конфигурации

Команда export. Перенос выдачи на другую строку.

Команда find

Команда print

  • print — показывает всю информацию, которая доступна из определенного уровня команд. Таким образом, /system clock print показывает системные дату и время, /ip route print показывает все маршруты и т.д. Если есть список элементов в текущем уровне, и они не только для чтения, то есть вы можете изменить или удалить их (пример только для чтения элемента списка или системной истории, которая показывает историю выполненных действий), а затем напечатать команду также правопреемников номера, которые используются всеми командами, которые работают с элементами в этом списке.
    • from — показать только указанные элементы, в том же порядке, в котором они даны.
    • where — показать только те элементы, которые соответствуют указанным критериям. Синтаксис свойства where аналогичен команде find.
    • brief — заставляет команду печати использовать табличную форму вывода
    • detail — заставляет команду печати использовать форму вывода property=value(свойство=значение)
    • count-only — показывает количество элементов
    • file — печатает содержимое конкретного подменю в файл на маршрутизаторе.
    • interval — обновление вывода команды print через интервал, заданный в секундах.
    • oid — печатает значение OID для свойств, которые доступны из SNMP
    • without-paging — печатает вывод без остановки после каждого заполненного экрана.

Результаты последних команд print запоминаются и, таким образом, один раз назначенные, номера позиций можно использовать даже после того, как применены операции add, remove and move.

Вы не должны использовать команду print перед обращением к элементам по их именам. Как правило, названия элементов являются более «стабильными», чем цифры, а также более информативными, так что отдавайте предпочтение их номерам при написании консольных скриптов.

Многие из уровней команды работают с массивами элементов: интерфейсы, маршруты, пользователей и т.д. Такие массивы отображаются как списки. У каждого элемента в списке есть номер элемента с последующим флагом и значениями параметров.

Прочие команды

  • quit – завершение сессии.
  • edit – редактировать значение в текстовом редакторе.
  • edit — эта команда связана с командой set. Она может быть использована для редактирования значений свойств, которые содержат большое количество текста, например, скрипты, но она работает со всеми редактируемыми свойствами. В зависимости от возможностей терминала, либо полноэкранный редактор, или один редактор строки запускается для редактирования значения указанного свойства.
  • add — эта команда обычно имеет все те же аргументы, как set, кроме аргумента с номером элемента. Это добавляет новый элемент со значениями, которые Вы определили, как правило, в конце списка позиций, в тех местах, где порядок элементов имеет значение. Есть некоторые необходимые свойства, которые вы должны поставить, например, как интерфейс для нового адреса, в то время как для других свойств устанавливаются значения по умолчанию, если вы явно не указали их.
    • Общие параметры:
      • copy-from — копировать параметры из уже существующего элемента. Если вы не хотите, сделать точную копию, то вы можете указать новые значения для некоторых свойств. При копировании элементов, которые имеют имена, вы, как правило, должны дать новое имя копии;
    • Возвращаемые значения:
      • добавляет команду возврата внутреннего номера элемента который был добавлен.
  • set — позволяет изменять значения общих параметров или параметров изделия. Команда имеет множество аргументов с именами соответствующих значений, которые вы можете изменить. Используйте ? или двойной [Tab], чтобы увидеть список всех аргументов. Если есть список элементов для которых доступны действия, установите аргумент соответственно номеру элемента (или список номеров), который(е) вы хотите настроить. Эта команда не возвращает ничего.

Прочее

Указать что не изучаем что значат различные настройки, например у файрвола. А изучаем те команды, которые изучаем.

С помощью move и можно указать просто первый и второй элементы без указания numbers= и place-before? Аналогично для move.

Некоторые списки имеют элементы с конкретными именами, заданными для каждого из них. Например для пунктов interface или user. Там вы можете использовать имена элементов вместо номера позиций. Вы не должны использовать команду print перед обращением к элементам по их именам. Как правило, названия элементов являются более «стабильными», чем цифры, а также более информативными, так что отдавайте предпочтение их номерам при написании консольных скриптов.

кстати, две точки (..) можно использовать и для перехода в соседний раздел в один присест. юникс-стайл же)
[admin@mt-test] /ip firewall filter> ..nat
[admin@mt-test] /ip firewall nat>

Видеоурок

Загрузить видео

Полезные материалы по MikroTik

Интерфейс командной строки (CLI) интернет-центра Keenetic

Для тонкой настройки интернет-центра предусмотрен профессиональный интерфейс командной строки (CLI — Command Line Interface). Для подключения к интерфейсу командной строки интернет-центра нужно использовать сетевой протокол TELNET/SSH.

Подключение к командной строке интернет-центра Keenetic через telnet-клиента

Важно! Если на вашем компьютере используется операционная система Windows Vista/7/8/10, обратитесь к статье «Включение службы Telnet«, т.к. в этих версиях ОС по умолчанию не установлен компоненты «Клиент Telnet». В Windows 2000/XP служба Telnet работает по умолчанию.

Запустите приложение «Командная строка» в операционной системе Windows (в системах Linux/Mac OS запустите «Терминал»). Вы увидите окно командной строки операционной системы компьютера.

По умолчанию в интернет-центре Keenetic предустановлен IP-адрес 192.168.1.1. Для подключения к командной строке интернет-центра введите команду:

telnet 192.168.1.1

и нажмите Enter.

После этого появится приглашение ввести пароль для входа в настройки интернет-центра.

Важно! Чтобы защитить систему от несанкционированного доступа, обязательно установите пароль администратора интернет-центра.

После успешной авторизации, вы увидите интерфейс командной строки (CLI):

Для удобного использования интерфейса командной строки роутера пользуйтесь клавишей Tab. Например, если в приглашении командной строки (config)> нажать клавишу Tab, вы увидите набор доступных команд текущего уровня. Для того чтобы сделать процесс ввода команд максимально удобным, интерфейс командной строки имеет функцию автодополнения команд и параметров, подсказывая пользователю, какие команды доступны на текущем уровне вложенности. Автодополнение работает по клавише [Tab].

(config)> sys[Tab]

system - maintenance functions

(config)> system conf[Tab]

configuration - manage system configuration

(config)> system configuration save[Enter]

Core::ConfigurationSaver: Saving configuration...

Для выхода из интерфейса командной строки (CLI) используйте команду:

(config)> exit

Важно! Подробную информацию по работе с интерфейсом командной строки интернет-центра, полным описанием всех команд и их синтаксисом, вы найдете в справочнике командного интерфейса. Его можно найти на  в разделе Центр загрузки, выбрав модель вашего устройства.

Подключение к командной строке интернет-центра Keenetic из веб-конфигуратора

Подключившись к веб-конфигуратору в адресной строке браузера вы увидите адрес вида http://192.168.1.1/dashboard
Сотрите слово dashboard и после символа косой черты / добавьте маленькую строчную букву a английского алфавита http://192.168.1.1/a

В веб-интерфейсе откроется страница Web cli, с которой можно отправлять команды для роутера.

Важно! Web cli не является полноценным интерфейсом командной строки. Некоторые команды здесь могут не выполняться и вывод команд будет отличаться от того как это выглядит в CLI при подключении через TELNET/SSH. Функция автодополнения команд и параметров по клавише Tab работает с версии KeeneticOS 2.15.
Для профессиональной настройки интернет-центра используйте только подключение к интерфейсу командной строки через TELNET/SSH.
Web cli предназначен для инженеров и разработчиков, но в исключительных случаях может применяться пользователями, когда необходимая настройка отсутствует в веб-конфигураторе, её можно сделать только выполнив специальную команду, а доступ к интерфейсу CLI по какой-то причине невозможен. Пожалуйста, соблюдайте осторожность при работе в Web cli. При необдуманных действиях можно повредить конфигурацию интернет-центра.

Рассмотрим пример. Предположим, на роутере нужно выполнить команды:

ip name-server 8.8.8.8 «» on ISP
system configuration save

На вкладке «Parse» в поле «Command» введите команду и нажмите кнопку «Send request». Последовательно выполните нужные команды.

Поделиться

Поделится

Поделится

Другие наши интересноые статьи:

  • Как управлять роутером удаленно со смартфона
  • Как управлять удаленно роутером тенда
  • Как уменьшить уровень сигнала роутера
  • Как управлять раздачей wifi с роутера
  • Как управлять роутером с телефона айфон

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии