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 printFlags: 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 INTERFACE0 A S 0.0.0.0/0 r 10.0.3.1 1 bridge11 ADC 1.0.1.0/24 1.0.1.1 0 bridge12 ADC 1.0.2.0/24 1.0.2.1 0 ether33 ADC 10.0.3.0/24 10.0.3.144 0 bridge14 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.110.0.0.1 ping timeout2 packets transmitted, 0 packets received, 100% packet loss[admin@MikroTik] ip firewall nat> .. service-port printFlags: X - disabled, I - invalid# NAME PORTS0 ftp 211 tftp 692 irc 66673 h3234 sip5 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> printFlags: X - disabled, D - dynamic, R - running# NAME TYPE RX-RATE TX-RATE MTU0 R ether1 ether 0 0 15001 R ether2 ether 0 0 15002 X wavelan1 wavelan 0 0 15003 X prism1 wlan 0 0 1500[admin@MikroTik] interface>
当某设备的网卡被禁用,你可以通过/interface enable name命令启用网卡,例如:
[admin@MikroTik] interface> printFlags: X - disabled, D - dynamic, R - running# NAME TYPE RX-RATE TX-RATE MTU0 X ether1 ether 0 0 15001 X ether2 ether 0 0 1500[admin@MikroTik] interface> enable 0[admin@MikroTik] interface> enable ether2[admin@MikroTik] interface> printFlags: X - disabled, D - dynamic, R - running# NAME TYPE RX-RATE TX-RATE MTU0 R ether1 ether 0 0 15001 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> printFlags: X - disabled, D - dynamic, R - running# NAME TYPE RX-RATE TX-RATE MTU0 R Local ether 0 0 15001 R Public ether 0 0 1500[admin@MikroTik] interface>
通过add命令添加规则,如添加IP地址操作:
[admin@Office] /ip address> prinFlags: X - disabled, I - invalid, D - dynamic# ADDRESS NETWORK BROADCAST INTERFACE0 10.200.15.1/24 10.200.15.0 10.200.15.255 lan1 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> prinFlags: X - disabled, I - invalid, D - dynamic# ADDRESS NETWORK BROADCAST INTERFACE0 10.200.15.1/24 10.200.15.0 10.200.15.255 lan1 D 222.212.60.227/32 222.212.48.1 0.0.0.0 ADSL2 192.168.10.1/24 192.168.10.0 192.168.10.255 lan[admin@Office] /ip address>
通过remove命令删除不需要的规则
[admin@Office] /ip firewall filter> prinFlags: X - disabled, I - invalid, D - dynamic0 X chain=forward action=drop layer7-protocol=qq1 X chain=forward action=drop dst-address-list=qq2 X chain=forward action=log log-prefix=""[admin@Office] /ip firewall filter> remove 2[admin@Office] /ip firewall filter> prinFlags: X - disabled, I - invalid, D - dynamic0 X chain=forward action=drop layer7-protocol=qq1 X chain=forward action=drop dst-address-list=qq[admin@Office] /ip firewall filter>
通过move移动规则的前后顺序,例如将2规则移动到0,即第三条规则优先到第一规则执行:
[admin@MikroTik] /ip firewall mangle> printFlags: X - disabled, I - invalid, D - dynamic0 chain=output action=mark-routing new-routing-mark=route1 passthrough=yes connection-mark=pcc11 chain=output action=mark-routing new-routing-mark=route2 passthrough=yes connection-mark=pcc22 chain=output action=mark-routing new-routing-mark=route3 passthrough=yes connection-mark=pcc3[admin@MikroTik] /ip firewall mangle> move 2 0
官方视频
2023-12-13T11:46:19
2023-12-13T11:48:22
2024-01-02T09:07:42
2024-01-02T09:07:20
2024-01-02T09:06:50
2024-01-02T09:06:26
2024-01-02T09:06:01
2024-01-02T09:05:20
2024-01-02T09:04:49
2024-01-02T09:04:17