路由配置:命令 ip route
, netstat
, ss
1. 路由的概念
今天我们要更深入一点:配置路由、分析网络连接以及研究端口。这里就是网络管理真正的魔法开始的地方——弄清楚数据包如何流转以及为什么在这方面你需要成为“路由管理的掌控者”。
路由不仅是一件听起来很复杂的事情,它还是现代网络的基石。想象一下:你的电脑就像一个游客,想去另一个电脑(宾馆),而路由就是道路和指示牌。如果没有路由,游客可能会到处乱逛,问路人(这些路人可能是DNS服务器,但这暂时不细说)或者干脆待在家里。
为什么需要路由
网络中的每个设备都需要知道如何到达其他设备。例如,如果你的电脑想向网站example.com
发送请求,它需要知道:
- 数据包该发往哪里。
- 通过哪个网关或接口发送。
路由有两种类型:
- 本地路由:为你子网中的设备提供路径指引(例如,你的电脑和打印机)。
- 外部路由:为子网外的设备提供路径指引(例如,互联网资源)。
2. 路由表
路由表是一个包含规则的表格,它决定了基于 IP 地址将数据包发送到哪里。这就像你的电脑有一个 Google Maps:"如果你想去某地,就通过这个网关走"。
试着查看自己的路由表:
ip route show
输出示例:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
这意味着什么:
default via 192.168.1.1
: 如果没有明确告知数据包去哪,就通过地址为192.168.1.1
的网关发送。dev eth0
: 使用接口eth0
。192.168.1.0/24
: 这是整个子网192.168.1.0/24
的路由。数据包会留在本地网络中。proto
和metric
: 额外参数,稍后再讲。
3. 命令 ip route
查看路由
我们已经用过 ip route show
来查看路由表。可以添加过滤器,比如只查看本地网络的路由:
ip route show match 192.168.1.0/24
添加路由
你可以添加一个静态路由——就像自己设置一个路标。例如,要将所有到子网 10.0.0.0/24
的请求通过指定网关转发:
sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0
解释如下:
10.0.0.0/24
– 目标子网。via 192.168.1.1
– 数据包通过的网关。dev eth0
– 数据包发送的接口。
删除路由
如果你不想某条路由存在了,可以用以下命令删除它:
sudo ip route del 10.0.0.0/24
4. 实践:配置静态路由
- 确认你可以访问其他子网。
- 添加路由:
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
- 检查路由表:
ip route show
- 如果不再需要路由,删除它。
5. 命令 netstat
当涉及到分析当前连接时,netstat
是系统管理员的老朋友(虽然现在有一个更现代的替代品 ss
,我们稍后会讨论)。
检查活动连接
netstat -tun
这是什么意思:
-t
– 显示 TCP 连接。-u
– 显示 UDP 连接。-n
– 使用数字地址(而不是主机名)。
输出示例:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.1.100:22 192.168.1.50:50240 ESTABLISHED
这是什么意思:
- 本地地址
192.168.1.100:22
– 你的电脑正在监听端口 22(SSH)。 - 远程地址
192.168.1.50:50240
– 连接到你端口上的远程主机。 ESTABLISHED
– 这是一个活跃的连接,数据正在传输。
监听端口
要查看你的电脑上哪些端口在“监听”:
netstat -ltn
标志 -l
仅显示正在监听的端口,而 -t
和 -n
我们已经讨论过了。
6. 命令ss
如果说netstat
是恐龙的话,那么ss
就是未来的DeLorean汽车:运行更快并且提供更多信息。
检查活动连接
ss -tun
输出示例与netstat
类似,但速度更快,信息更详细。
监听端口
ss -tln
跟netstat
差不多,但使用ss
更方便也更现代。
7. 连接监控
- 使用
netstat
或ss
查看你的电脑监听了哪些端口。 - 在其他设备上打开一个 SSH 连接,检查它是否出现在连接列表中。
- 尝试解释这些命令的输出。
我们已经深入了解了路由和连接监控的世界:现在你会使用 ip route
来管理路由表,也会用 netstat
/ss
来分析网络连接。这些工具就是你处理最复杂网络问题的瑞士军刀。如果你的朋友抱怨“网络不通”,快用上你的新技能,炫耀一下吧!
下一节课会更有趣:我们将深入了解 DNS 和它的魔法。而现在,练习一下 ip route
,看看数据包是如何找到回家的路的吧。
GO TO FULL VERSION