CLI(Command Line Interface)命令行操作
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