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

输入模式

控制台的命令行输入模式支持3种,可以在它们之间切换,包含以下:

  • Normal mode– 普通命令模式
  • Safe mode-安全模式,切入安全模式后,会在命令提示符后增加safe字符表示。在该模式下,只有关闭安全模式后,配置才会保存到磁盘存储中。安全模式可以按Ctrl+X或F4打开/关闭。
  • Hot-lock mode -用额外的黄色>表示。热锁模式输入关键字后自动补全命令,可按F7打开/关闭

基本操作

下面是一个简单的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

官方视频

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章很值,打赏犒劳作者一下