RouterOS CLI(Command Line Interface)命令行操作(视频)
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
官方视频