手里拿到一台全新的思科路由器,第一反应往往是盯着那行Router>发呆。命令行不像家用路由器那样有网页界面,鼠标点一点就完事。很多刚接触网络设备的运维或者学生,就是在这种“不知道该敲什么”的状态下,把设备扔到角落里吃灰的。其实思科的命令系统没有想象中那么复杂,它的设计逻辑非常清晰:先分模式,再看状态,最后做配置。一旦摸清这套规律,绝大多数日常配置任务都能顺下来。这篇文章不打算罗列几百条命令,只想把最常用、最能救急的那一批串成一条线,从登录设备到配置接口,再到写路由、保存配置,最后聊聊几个高频故障怎么排查。看完你就能上手操作一台真实的路由器,而不是面对命令行不知所措。
1. 思科命令体系与模式切换:先弄清楚自己在哪
1.1 为什么要分这么多模式
初次接触思科设备的人,最容易懵的就是提示符一直在变:Router>、Router#、Router(config)#、Router(config-if)#。有人觉得这就是故弄玄虚,多此一举。实际上,这种模式划分恰恰是命令行安全设计最精髓的部分。把权限分级,就好比一家公司的门禁系统——普通访客只能在门厅等着,员工可以进办公区,而机房只有少数管理员能进去。用户模式>只能查看非常基础的信息,比如设备名、时钟、版本摘要,发不了多少配置命令;特权模式#可以执行全部查看命令、调试命令,还能进入配置模式,相当于拿到了管理员权限;全局配置模式下才能修改设备配置;再到接口、线路、路由协议等子模式,配置范围进一步收窄。
没有这套模式限制,任何人只要登录到设备,就可以随手改配置甚至恢复出厂设置,那就全乱套了。所以,先接受这个设定,后面一切都会变得很有条理。
1.2 模式间的切换路径和提示符规律
模式切换是思科命令操作的基础功底,我把最常用的切换方式整理一下:
| 目标模式 | 执行命令 | 进入后提示符 | 说明 |
|---|---|---|---|
| 用户模式 | 登录设备默认进入 | Router> | 能看的很少 |
| 特权模式 | enable | Router# | 输入enable密码后进入 |
| 全局配置模式 | configure terminal | Router(config)# | 简写conf t |
| 接口配置模式 | interface 接口名 | Router(config-if)# | 前提是已在全局配置模式 |
| 线路配置模式 | line console 0或line vty 0 4 | Router(config-line)# | 配置登录和远程管理 |
| 路由协议配置模式 | router ospf 1等 | Router(config-router)# | 配置动态路由 |
回头想退出就用这几条命令:
exit:退回上一级模式,在接口模式下执行返回全局模式,在全局模式下执行返回特权模式。end或者快捷键Ctrl+Z:从任何子配置模式直接跳回特权模式#。disable:从特权模式退回用户模式。
很多新手分不清 exit 和 end,记住一句话就行:exit是一级一级退,end是直接回到特权模式。比如在接口配置模式下,按end直接到Router#,再按disable就到Router>。
1.3 救命快捷键:问号、Tab 和简写
思科命令的第二个贴心之处在于内置了非常完善的“提示系统”。任何时候不确定下一步能敲什么命令,直接输入?,设备会把当前模式下所有可用命令列出来。注意这个问号不需要回车,输入完立刻出结果。命令记不全也没关系,只要打出前几个字母,按Tab键,设备会自动补齐完整的命令单词。比如输入conf再按 Tab,系统自动补全成configure。
思科命令还支持唯一前缀匹配的简写。比如configure terminal可以敲成conf t,interface可以敲成int,show running-config可以敲成sh run。只要前缀能唯一确定一条命令就行,设备不会误解。不过,刚开始练的时候建议敲全拼,或者至少敲到能准确补全的程度,这样出错率低,而且对养成扎实的命令习惯有帮助。等输入了需要参数的命令但漏了参数,设备会提示% Incomplete command.,它还会用^标记指出错误发生的位置,照着改就行。
2. 看懂设备再说配置:高频查看命令详解
2.1 show running-config:一切配置的源头
只要排查问题,第一件事基本都是show running-config,这个命令会打印出设备当前运行中的所有配置。它涉及的内容很长,可能几十行甚至几百行,但重点要按顺序看:主机名和 enable 密码是否设置、接口的 IP 和状态、路由表配置、ACL、NAT 等。在输出里你会看到hostname Router、interface GigabitEthernet0/0、ip address 192.168.1.1 255.255.255.0、no shutdown等配置片段。
要注意的一点是,show running-config显示的是设备当前正在生效的配置,它存储在内存里。如果设备断电,这些配置可能会丢失(取决于设备是否在启动时加载了 startup-config)。所以判断“配置到底生效没有”,就看 running-config;判断“重启后还有没有”,就看 startup-config。两者不一样时,一切以 running-config 为准,但要小心——未经保存的配置在重启后会消失。
2.2 show ip interface brief:快速检查接口状态
配置完接口,第一步永远是检查物理状态和协议状态。show ip interface brief是接口状态速查利器,输出包含类似这样的信息:
Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0 192.168.1.1 YES manual up up GigabitEthernet0/1 10.0.0.1 YES manual up up Serial0/0/0 unassigned YES unset administratively down down这里关键是 Status 和 Protocol 两列:
up / up:接口物理接通,协议层也正常,这是最理想的。administratively down / down:接口被手动关闭了,常见原因是没敲no shutdown。down / down:物理层不通,通常是网线没插好、对端设备关机,或者光模块问题。up / down:物理层有信号但协议层起不来,多见于串行接口封装不匹配,或者 PPP 协商失败。
这条命令输出简洁,适合批量检查所有接口。如果只想看一个接口的详细报文统计、错误计数器,那就要用show interfaces GigabitEthernet0/0,里面能看见input errors、output errors、CRC等计数,排查物理链路质量时非常有用。
2.3 show ip route:理解路由表是路由器的核心
路由器是干什么的?转发数据包。怎么转发?靠路由表。show ip route输出的是当前设备已知的全部路由。把这句命令的输出读懂,基本就掌握了路由器的转发逻辑。
路由表里每一行的开头是路由来源代码,常见的有:
C:直连路由,接口配置好 IP 而且 up 之后自动生成。S:静态路由,管理员手工配置。O:OSPF 动态学习。R:RIP 动态学习。D:EIGRP 动态学习。S*:默认静态路由,通常是0.0.0.0/0。
举个例子:
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0 S 10.0.0.0/8 [1/0] via 192.168.1.254第一行说明 192.168.1.0/24 网段挂在 GigabitEthernet0/0 上,数据包往这个网段发直接扔给这个接口就行。第二行说明去 10.0.0.0/8 的数据包,下一跳是 192.168.1.254,管理距离是 1(静态路由默认 1),度量值是 0。看懂了这两个条目,就能预测数据包的转发走向。
2.4 show version 和 show cdp neighbors:硬件信息和邻居发现
刚拿到一台二手设备,或者想确认设备型号、IOS 版本、运行时长,用show version。输出里包含设备硬件型号、处理器信息、IOS 版本号、系统运行时长、上次重启原因,还有配置寄存器的值。配置寄存器值在密码恢复时非常关键,设置成0x2102表示正常从 NVRAM 加载配置,改成0x2142表示跳过 NVRAM 里的 startup-config 启动。
show cdp neighbors用来查看直连的思科邻居设备。CDP 是思科私有协议,默认开启,可以列出邻居的主机名、平台、本地接口和远程接口。在网络拓扑不明朗、找不到线缆连接关系时,这条命令能帮你快速画出一张直连设备关系图。需要注意的是,如果网络里有非思科设备,CDP 可能收不到这些邻居的信息。
2.5 其他值得掌握的 show 命令
show ip interface:查看接口上 IP 协议的详细状态,包括 ACL 入站出站过滤是否启用。show access-lists:查看访问控制列表的命中计数器,排查 ACL 是否生效很管用。show mac address-table:查看交换机的 MAC 地址表(如果设备支持交换功能)。show running-config | section interface:用竖线加过滤词只看接口部分,长输出里找关键配置的神级技巧。过滤还可以用include、exclude、begin。
3. 基础配置实操:从改名到通路由
3.1 设备身份和全局参数设置
先给设备起个名字。在全局配置模式下的 hostname 命令,不必多说。
Router> enable Router# configure terminal Router(config)# hostname R1 R1(config)#看到提示符变化没有?主机名从Router变成了R1。很多培训机构、实验室环境都喜欢用 R1、R2 这种命名方式,方便识别。
接着设置进入特权模式的密码。有两种选择:enable password是明文存储,enable secret是加密存储,二者同时配置时enable secret优先生效,所以直接养成用enable secret的习惯:
R1(config)# enable secret Cisc0Passw0rd再开一个全局加密保护,把配置文件里的明文密码都变成密文显示:
R1(config)# service password-encryption注意,service password-encryption的加密算法并不强,只能防君子不防小人。真正要保护密码,还得靠 SSH 和强密码策略。还要提示一点:生产环境里密码不能写在博文、笔记、截图里到处发,这是基本的职业素养。
给登录界面加个 banner。banner motd用来设置登录设备前显示的标语,比如“仅限授权人员访问”:
R1(config)# banner motd # Authorized access only! #这个#是分隔符,替代空格用来区分标语内容的起点和终点。它可以是任意不会出现在标语里的字符,比如%、$。
3.2 配置接口 IP 地址:别忘了 no shutdown
这是路由器基础配置里最重要、也最容易出问题的一步。假设我们要把 GigabitEthernet0/0 配置成 192.168.1.1/24:
R1(config)# interface GigabitEthernet0/0 R1(config-if)# ip address 192.168.1.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# description Connected to LAN R1(config-if)# exit逐行解释一下:
interface GigabitEthernet0/0:进入接口子模式。设备接口命名方式因型号而异,常见的有FastEthernet0/0、GigabitEthernet0/0、TenGigabitEthernet0/1/0。记不准确就用show ip interface brief查看可用接口列表。ip address 192.168.1.1 255.255.255.0:配置 IP 地址和子网掩码,注意这里写的是子网掩码而非前缀长度,255.255.255.0就是/24。no shutdown:思科接口默认是 shutdown 状态。很多新手配置完 IP 发现接口还是 down,就是因为少了这一句。这条命令等同于把接口“开启”。description:给接口加注释说明,类似于编程里的代码注释。排查问题时一眼就能看出这个接口是连哪个网段的。
检查接口状态:
R1# show ip interface brief Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0 192.168.1.1 YES manual up up看到up/up就说明接口配置成功。
3.3 配置远程登录:从 console 到 vty
只靠 console 线管理设备太麻烦了,生产环境里绝大多数设备管理都靠远程登录。思科路由器上一般有 5 条虚拟终端线路(vty 0 到 vty 4),可以同时支持 5 个远程会话。基础配置如下:
R1(config)# line vty 0 4 R1(config-line)# password TelnetPassw0rd R1(config-line)# login R1(config-line)# transport input telnet ssh R1(config-line)# exitlogin的意思是登录时必须输入密码。如果没有这句,vty 线路默认不允许远程登录。transport input用来指定允许哪种协议接入,现在强烈建议只开 ssh,把 telnet 关掉,因为 telnet 是明文传输,用户名密码在网络里相当于裸奔。在生产设备上,vty 里更稳妥的做法是配置 SSH 版本和本地用户认证,但那是进阶话题,基础阶段先理解 vty 密码的模式。
顺带提一句,line console 0是配置 console 口登录密码的入口。很多人会忽略 console 密码,导致任何人都能通过串口线直接登录设备,这就跟家里大门不上锁一样危险:
R1(config)# line console 0 R1(config-line)# password ConsolePassw0rd R1(config-line)# login3.4 静态路由配置:让数据包知道往哪走
接口配置完成后,路由器只知道直连网络。假设 R1 的 G0/0 是 192.168.1.1/24,G0/1 是 10.0.0.1/30,那么路由表里自动有了这两条直连路由,去这两个网段的数据包都能转发。但是去其他任何网段,路由器都会回答“目的不可达”。想让路由器学会怎么去远程网络,最直接的办法就是配置静态路由。
静态路由的格式:
ip route 目标网段 子网掩码 下一跳地址或出接口在全局配置模式下:
R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2 R1(config)# ip route 0.0.0.0 0.0.0.0 10.0.0.2第一行:去 192.168.2.0/24,下一跳交给 10.0.0.2。第二行:默认路由,就是当路由表里找不到更精确的匹配时,所有未知目标都扔给 10.0.0.2。在企业出口路由器上,默认路由通常指向运营商的接入设备,实现“所有出网流量都从出口走”。
这里有两个细节需要理解:
- 下一跳地址必须可达。如果 10.0.0.2 不在直连网段里,这条静态路由无法生效,设备会报错或者无法写入路由表。
- 静态路由可以指定出接口而不是下一跳,但点到点链路(比如串口)才推荐用出接口,广播网络(比如以太网)推荐用下一跳。背后的原因是如果在以太网接口上只指定出接口,路由器会对每个目标都发送 ARP 请求,会增加不必要的开销和不确定性。
配置完可以用show ip route验证。能看到S 192.168.2.0/24 [1/0] via 10.0.0.2就说明路由已经进表了。
如果要让两个局域网互通,两端路由器都得配置指向对端网络的路由。比如 R1 会配一条去 R2 局域网的路由,R2 也得配一条去 R1 局域网的路由,这叫双向路由。只配单边,数据包能过去但回不来,现象就是 ping 不通。
3.5 处理默认配置里的小坑:接口命名和 IP 地址的版本差异
思科不同系列、不同 IOS 版本,接口命名方式可能差异很大。老设备上常见的是FastEthernet0/0、Serial0/0/0,新设备上可能是GigabitEthernet0/0/0、TenGigabitEthernet0/1/0。配置之前务必用show ip interface brief看清设备实际的接口标识,凭经验猜名字很容易猜错。另外,有些设备上的接口编号从 0 开始,有些从 0/0 开始,还有三层接口和二层接口之分,基础阶段不需要钻太深,但拿到一台设备先看show version和show ip interface brief绝对不会错。
4. 配置保存与设备管理:别让辛苦白费
4.1 running-config 和 startup-config 的区别
思科设备里有两份重要的配置:running-config 是当前内存里运行的配置,startup-config 是每次开机时从 NVRAM 里加载的配置。可以这么理解:running-config 是你正在写的文档草稿,startup-config 是已经保存到硬盘的定稿。你改了草稿但没保存,电脑突然断电,定稿还是老样子,所有修改全部丢失。思科设备也一样,改完配置后如果不保存到 startup-config,设备一旦重启,配置就回到上次保存的状态。这是新手最容易踩的坑,没有之一。
4.2 保存配置的正确姿势
保存配置有几种写法,效果完全相同,挑顺手的用:
R1# copy running-config startup-config或者老一点的写法:
R1# write memory也可以用简写:
R1# wr执行后会看到类似Destination filename [startup-config]?的提示,直接回车接受默认文件名就行。看到[OK]表示保存成功。我现在写文档、做实验,习惯性操作就是配置完立刻wr,这是肌肉记忆,不用过脑子。
可以通过两个 show 命令互相印证配置是否保存成功:
R1# show running-config R1# show startup-config对比两份配置内容是否一致。如果不一致,说明有修改没保存。
4.3 重启设备与恢复出厂
需要重启设备时用reload。执行后设备会提示保存当前配置吗?不会,它会直接开展重启流程,而且会再次确认是否继续,输入yes确认。如果你有未保存的配置,重启后就会不见,所以 reload 之前先想清楚。
恢复出厂有两种常见思路:
R1# erase startup-config R1# reload或者:
R1# write erase R1# reload执行 reload 之前设备会问是否保存当前 running-config,这时一定要选no,否则刚擦掉的配置又被保存回去了,那就真的“恢复无效”了。这个细节特别容易翻车,我在实验环境里犯过这个错误。擦完配置重启后,设备会进入初始配置向导,或者直接回到Router>提示符,取决于 IOS 版本,但至少 startup-config 里是干净的了。
4.4 忘记密码后的恢复思路
虽然这不算日常操作,但谁都有脑子短路的时候。如果 enable 密码忘了,无法进入特权模式,标准的恢复思路是:通过 console 线连接设备,开机后立刻按Ctrl+Break进入 ROM 监控模式,修改配置寄存器跳过 NVRAM 中的配置加载,重新启动后进入无配置状态,再从 startup-config 中恢复配置并重新设置密�码。整个过程对思科设备来说是一套成熟的运维自救手段,不涉及任何非法的东西。
这里给出两个关键命令的参考(不同平台存在差异):
rommon 1 > confreg 0x2142 rommon 2 > reset重启后设备不再加载 startup-config,进入特权模式后:
Router# copy startup-config running-config Router# configure terminal Router(config)# enable secret 新密码 Router(config)# config-register 0x2102 Router(config)# exit Router# write memory最后必须把 config-register 改回0x2102,否则下次重启还是不加载配置。如果没有改回寄存器值,设备会一直处于“配置不生效”的状态,这个问题在生产环境中非常隐蔽。
5. 高频故障排查实录
5.1 接口状态不正常
这是配置过程中出现频率最高的问题。show ip interface brief里看到administratively down,几乎可以断定是接口处于 shutdown 状态,进入接口模式敲no shutdown即可解决。看到down/down,先查物理链路:网线松了、对端设备没开、光纤收发器故障等,这类问题没法靠命令解决,必须伸手去查线缆。看到up/down,多半是二层封装协商问题,常见于串口线路的两端封装协议不一致,比如一边是 HDLC,一边是 PPP。解决办法是把两端封装改成一致,注意改封装会导致接口短暂 flap,生产环境要选业务低峰期操作。
5.2 设备之间 ping 不通
排查思路要按层次走:
- 先确认直连接口是不是
up/up,连物理层都没起来,后面全是空中楼阁。 - 再确认 IP 地址是否在同一网段、有没有冲突。常见错误是两边子网掩码不一致,比如一边是 /24,另一边是 /16,虽然两边都能通,但行为会很奇怪。
- 接着看路由表。A 能 ping 通 B 的直连接口,但 ping 不通 B 的远端接口,问题多半出在 B 没有回程路由。记住:ping 是双向的,回包走不通,发送方就会看到 request timed out。
- 如果设备之间有防火墙或者 ACL,还要检查是否被策略拦截了。用
show access-lists看计数器的命中次数,通常能快速定位。
5.3 远程登录失败
通过 telnet 或 SSH 登录路由器失败时,按这几个方向排查:
- vty 线路是否有密码?没有密码且没有配置 SSH 本地认证的话,登录会直接被拒绝。
login命令有没有写?忘了这条命令,vty 线路虽然可以建立连接,但进不去。- 设备是否在 vty 上配置了 ACL 做来源限制?如果 ACL 写错了,合法地址也被挡在外面。
- telnet 和 SSH 版本要匹配。设备配置了
transport input ssh,你用 telnet 去连当然失败。 - 还有一个容易忽略的:enable 密码没有配置的话,远程登录进来后无法进入特权模式,很多操作做不了。
5.4 静态路由不生效
配置了ip route但show ip route里却看不到,或者看到了但转发不通。优先检查以下几点:
- 下一跳地址是否可达。不可达的话,静态路由不会出现在路由表里。拿
ping验证一下。 - 掩码是否写错。
192.168.2.0 255.255.255.0和192.168.2.0 255.255.255.128是两个完全不同的路由。 - 有没有更精准的路由覆盖了它。路由表里永远优先匹配最长前缀,如果另一条 /24 甚至更短的路由更具体,静态路由可能不会生效。
- 是不是接口 down 导致路由被撤销。静态路由的下一跳指向的接口如果 down 了,路由也会从路由表里消失。
5.5 配置不改就重启,一切回到解放前
这个问题最经典。很多人配置完一个半小时,测试也通过了,结果第二天过来发现设备完全变回出厂状态。问了一圈发现,配置根本没保存。养成wr的习惯,或者每次操作前先show running-config确认当前配置,操作完立刻保存,两条腿走路就不会忘。更稳妥的做法是把配置导出到外部文件备份,比如用 TFTP 服务器把 startup-config 拉下来存档。配置文件就是网络设备的大脑,平时多备份一份,出问题的时候才知道有多重要。
6. 个人习惯与一点建议
敲了这么多年思科命令,有一点体会特别深:这些命令根本不需要死记硬背,你只需要理解三个规律——命令模式决定你权限范围、show系列命令是排查故障的第一工具、no是撤销一切配置的魔法开关。剩下的一切,都可以靠问号和 Tab 键在设备上现场摸出来。真正值钱的不是背下了多少条命令,而是拿到一台陌生设备时知道从哪里开始看、从哪里开始查、哪里最容易翻车。
基础阶段的学习路径其实很清晰。先把这篇文章里涉及的命令挨个在设备上敲一遍,不用追求多,关键是要理解每个命令敲下去之后发生了什么。然后自己搭一个最简单的小实验:两台路由器背靠背连着,配上 IP,配上静态路由,让两个局域网互相 ping 通。这个过程看着不起眼,但能把接口配置、路由表、保存配置这些核心概念全部串起来。等到静态路由玩明白了,再去碰 OSPF、VLAN、NAT、ACL,就是一个自然而然的能力递进过程。说句实在话,网络这个行当,入门不难,难的是把最基础的东西理解透。因为这些底层的转发逻辑、配置思路,几十年了其实一直没怎么变过。