Console终端控制台被用于MikroTik路由器的配置和管理终端,或者用于serial port、telnet、SSH、winbox里的终端或者直接使用显示屏加键盘操作等,Console同样也可以用于脚本编写。我们通过CLI可以在Console设置和管理RouterOS。

下面是一个简单的CLI操作命令,例如你可以通过/ip route print命令查看路由表:

[admin@MikroTik] > ip route print

Flags: X – disabled, A – active, D – dynamic,

C – connect, S – static, r – rip, b – bgp, o – ospf, m – mme,

B – blackhole, U – unreachable, P – prohibit

#      DST-ADDRESS        PREF-SRC        G GATEWAY         DIS  INTERFACE

0 A S  0.0.0.0/0                                    r 10.0.3.1           1     bridge1

1 ADC  1.0.1.0/24             1.0.1.1                                  0     bridge1

2 ADC  1.0.2.0/24             1.0.2.1                                  0     ether3

3 ADC  10.0.3.0/24            10.0.3.144                               0     bridge1

4 ADC  10.10.10.0/24          10.10.10.1                               0     wlan1

[admin@MikroTik] >

 

命令帮助 

 

在任何操作目录使用‘?’都可用获取在当前目录中的命令信息。

 

[admin@MikroTik] > ?

 

beep – 发声脚本命令

certificate – 证书管理

console – 控制平台

delay – 延迟脚本命令

do – 执行命令

driver – 驱动管理

environment – 当前变量值列表

error – 定义错误值

execute – 在控制台下运行指定脚本

file – 路由器本地文件管理

find – 查询指定项目的值

for – for循环脚本命令

foreach – foreach查找脚本命令

global – 定义全局变量

if – if判断脚本命令

import – 导入.rsc脚本配置文件

interface – 接口配置和管理

ip – IPv4,包括TCP/IP协议等相关选项

ipv6 – IPv6选项

led – LED指示灯控制

len – len长度脚本命令

local – 定义局部变量

log – 系统日志

nothing – 无任何操作或返回空信息

parse – 解析字符串,并返回控制台命令

password – 修改当前管理帐号密码

pick – 返回字符串或者数组值脚本命令

ping – ping工具

port – 串口接口管理

ppp – 点对点协议

put – 打印出指定值

queue – 带宽控制管理

quit – 推出控制台

RADIUS – RADIUS客户端设置

redo – 恢复命令

resolve – 使用本地dns解析域名,并返回域名解析值

return – 返回函数值

set – 修改指定项目属性

setup – 系统基本参数的向导设置

snmp — SNMP settings

special-login – 指定登录用户

store – 存储管理

system – 系统信息和配置管理

terminal – 终端平台命令操作界面

time – 返回命令执行的时间

toarray – 转换指定内容为数组

tobool – 转换指定内容为布尔型

toid – 转换指定内容为内部编码值

toip – 转换指定内容为IP地址

toip6 –转换指定内容为IPv6地址

tonum –转换指定内容为整型值

tool – 各种诊断工具

tostr –转换指定内容为字符串

totime –转换指定内容为时间

typeof – 返回值类型

undo – 撤消命令

user – 管理员帐号管理

while – while脚本命令

export – 导出当前目录下的配置或导出为配置脚本

 

进入IP层目录

 

[admin@MikroTik] ip>

 

.. – 回到根目录

service/ — IP服务

socks/ — SOCKS 4代理

arp/ — ARP项目管理

upnp/ — UPNP管理

dns/ — DNS设置

address/ — 地址管理

accounting/ — 传输记录

the-proxy/ —

vrrp/ — 虚拟路由冗余协议

pool/ — IP地址池

packing/ — 数据包封装设置

neighbor/ — 邻居

route/ — 路由管理

firewall/ — 防火墙管理

dhcp-client/ — DHCP客户端设置

dhcp-relay/ — DHCP中继设置

dhcp-server/ — DHCP服务设置

hotspot/ — HotSpot 管理

ipsec/ — IP安全设置

web-proxy/ — HTTP代理

export —

 

[admin@MikroTik] ip>

 

在下面的例子中,你可用通过输入目录名称移动到不同的目录下。

 

[admin@MikroTik] >                   \\ 根目录

[admin@MikroTik] > driver          \\ 输入’driver’进入到驱动管理目录中

[admin@MikroTik] driver> /          \\ 输入’/’从任何目录中回到根目录

[admin@MikroTik] > interface       \\ 输入’interface’进入接口管理目录中

[admin@MikroTik] interface> /ip    \\ 输入’/ip’从任何目录进入IP管理目录

[admin@MikroTik] ip>

 

一个指令或一个变量参数不需要完整的输入,如果是含糊不清的指令或变量参数需要完整的输入。如输入interface时,你只要输入in或int,需要显示完整的指令可以使用[Tab]键

通过指令的组合,可以在当前的目录执行在不同目录操作,如:

 

[admin@MikroTik] ip route> print                    打印路由表

[admin@MikroTik] ip route> .. address print       打印IP地址列表

[admin@MikroTik] ip route> /ip address print      打印IP地址列表

 

你可以使用” / “和” .. “在非当前目录下的命令操作,例如ping命令只能在根目录下执行:

 

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

 

指令执行概述 :

 

Command 指令
command [Enter] 执行指令
[?] 显示该目录中的所有指令列表
command [?] 显示指令的帮助和变量列表
command argument [?] 显示指令的变量帮助
[Tab] 使指令/字段完整,如果输入内容含糊不清,第二次键入 [Tab]会给出存在的选项
/ 移动到根目录
/command 执行根目录中的指令
.. 移动到上一级目录
“” 指定一个空字符串

 

 

在配置IP地址中,配置’address’和’netmask’参数时,在许多事例中你可以将IP地址和子网掩码一起定义,也可以将子网掩码单独定义,这两种方式是相同的,例如下面的两个输入是等价的:

 

/ip address add address 10.0.0.1/24 interface ether1

/ip address add address 10.0.0.1 netmask 255.255.255.0 interface ether1

 

Tab快速输入

在console控制台有两种方式帮助快速而简单的输入命令,通过[Tab]键完成和通过缩写输入命令。这样的操作类似于UNIX的shell,如果你在一个半截单词后按[Tab]键,Console控制台试着找到当前关联的命令。如果仅有一个命令匹配,将自动显示完全,如下:

 

/inte[Tab]_ 变为 /interface _

 

如果有多个匹配命令参数

 

/interface set e[Tab]_  变为  /interface set ether_

 

如果你仅输入了共有部分的命令,按了一下tab键没有效果,当你连续按下第二次tab键后,将显示所有可能的参数和命令

 

[admin@MikroTik] > interface set e[Tab]_

[admin@MikroTik] > interface set ether[Tab]_

[admin@MikroTik] > interface set ether[Tab]_

ether1 ether5

[admin@MikroTik] > interface set ether_

 

[Tab]键能被用于提示任何关联内容,例如在控制台下的命令、参数,对应的参数仅有几个可能的值。

 

另外一种方式是,输入少数的命令字符,即缩写命令和参数。你可以输入命令开始的字符,当然输入的命令字符,要与指定的命令相对应,例如ping命令10.0.0.1,连续3次,大小100byte

 

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

 

等同于:

 

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

 

也可以不用从一个命令的起始字符输入,可以输入当前菜单下命令的关键字符,console会自动查找到对应的命令和参数,例如一下操作:

 

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

[admin@MikroTik] > interface export _

[admin@MikroTik] > interface mt[TAB]_

[admin@MikroTik] > interface monitor-traffic _

 

基本操作命令

 

接口管理(Interface Management)

在配置IP地址和路由前,如果你有即插即用网卡安装到路由器中,请检查/interface 中的接口列表,多数情况下设备驱动会自动安装,并且相关的接口信息会显示在/interface print列表中,例如:

 

[admin@MikroTik] interface> print

Flags: X – disabled, D – dynamic, R – running

#    NAME                         TYPE             RX-RATE    TX-RATE    MTU

0  R ether1                       ether            0          0          1500

1  R ether2                       ether            0          0          1500

2 X  wavelan1                    wavelan          0          0          1500

3 X  prism1                       wlan             0          0          1500

[admin@MikroTik] interface>

 

当某设备的网卡被禁用,你可以通过/interface enable name命令启用网卡,例如:

 

[admin@MikroTik] interface> print

Flags: X – disabled, D – dynamic, R – running

#    NAME                         TYPE             RX-RATE    TX-RATE    MTU

0 X  ether1                       ether            0          0          1500

1 X  ether2                       ether            0          0          1500

 

[admin@MikroTik] interface> enable 0

[admin@MikroTik] interface> enable ether2

[admin@MikroTik] interface> print

Flags: X – disabled, D – dynamic, R – running

#    NAME                         TYPE             RX-RATE    TX-RATE    MTU

0  R ether1                       ether            0          0          1500

1  R ether2                       ether            0          0          1500

[admin@MikroTik] interface>

 

接口的名称能通过/interface set指令来改变其参数:

 

[admin@MikroTik] interface> set ether1 name=Local; set ether2 name=Public

[admin@MikroTik] interface> print

Flags: X – disabled, D – dynamic, R – running

#    NAME                         TYPE             RX-RATE    TX-RATE    MTU

0  R Local                        ether            0          0          1500

1  R Public                       ether            0          0          1500

[admin@MikroTik] interface>

 

通过add命令添加规则,如添加IP地址操作:

 

[admin@Office] /ip address> prin

Flags: X – disabled, I – invalid, D – dynamic

#   ADDRESS               NETWORK            BROADCAST       INTERFACE

0   10.200.15.1/24      10.200.15.0        10.200.15.255   lan

1 D 222.212.60.227/32  222.212.48.1       0.0.0.0          ADSL

 

[admin@Office] /ip address> add address=192.168.10.1/24 interface=lan

[admin@Office] /ip address> prin

Flags: X – disabled, I – invalid, D – dynamic

#   ADDRESS            NETWORK               BROADCAST       INTERFACE

0   10.200.15.1/24     10.200.15.0        10.200.15.255     lan

1 D 222.212.60.227/32  222.212.48.1      0.0.0.0           ADSL

2   192.168.10.1/24    192.168.10.0       192.168.10.255   lan

[admin@Office] /ip address>

 

通过remove命令删除不需要的规则

 

[admin@Office] /ip firewall filter> prin

Flags: X – disabled, I – invalid, D – dynamic

 

0 X chain=forward action=drop layer7-protocol=qq

 

1 X chain=forward action=drop dst-address-list=qq

 

2 X chain=forward action=log log-prefix=””

[admin@Office] /ip firewall filter> remove 2

[admin@Office] /ip firewall filter> prin

Flags: X – disabled, I – invalid, D – dynamic

0 X chain=forward action=drop layer7-protocol=qq

 

1 X chain=forward action=drop dst-address-list=qq

[admin@Office] /ip firewall filter>

 

通过move移动规则的前后顺序,例如将2规则移动到0,即第三条规则优先到第一规则执行:

 

[admin@MikroTik] /ip firewall mangle> print

Flags: X – disabled, I – invalid, D – dynamic

0   chain=output action=mark-routing new-routing-mark=route1 passthrough=yes

connection-mark=pcc1

 

1   chain=output action=mark-routing new-routing-mark=route2 passthrough=yes

connection-mark=pcc2

 

2   chain=output action=mark-routing new-routing-mark=route3 passthrough=yes

connection-mark=pcc3

[admin@MikroTik] /ip firewall mangle> move 2 0