CodeGym /课程 /Docker SELF /路由配置:命令 `ip route`,`netstat`,`ss`

路由配置:命令 `ip route`,`netstat`,`ss`

Docker SELF
第 4 级 , 课程 1
可用

路由配置:命令 ip route, netstat, ss

1. 路由的概念

今天我们要更深入一点:配置路由、分析网络连接以及研究端口。这里就是网络管理真正的魔法开始的地方——弄清楚数据包如何流转以及为什么在这方面你需要成为“路由管理的掌控者”。

路由不仅是一件听起来很复杂的事情,它还是现代网络的基石。想象一下:你的电脑就像一个游客,想去另一个电脑(宾馆),而路由就是道路和指示牌。如果没有路由,游客可能会到处乱逛,问路人(这些路人可能是DNS服务器,但这暂时不细说)或者干脆待在家里。

为什么需要路由

网络中的每个设备都需要知道如何到达其他设备。例如,如果你的电脑想向网站example.com发送请求,它需要知道:

  1. 数据包该发往哪里。
  2. 通过哪个网关或接口发送。

路由有两种类型:

  • 本地路由:为你子网中的设备提供路径指引(例如,你的电脑和打印机)。
  • 外部路由:为子网外的设备提供路径指引(例如,互联网资源)。

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 的路由。数据包会留在本地网络中。
  • protometric: 额外参数,稍后再讲。

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. 实践:配置静态路由

  1. 确认你可以访问其他子网。
  2. 添加路由:
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
  1. 检查路由表:
ip route show
  1. 如果不再需要路由,删除它。

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. 连接监控

  1. 使用 netstatss 查看你的电脑监听了哪些端口。
  2. 在其他设备上打开一个 SSH 连接,检查它是否出现在连接列表中。
  3. 尝试解释这些命令的输出。

我们已经深入了解了路由和连接监控的世界:现在你会使用 ip route 来管理路由表,也会用 netstat/ss 来分析网络连接。这些工具就是你处理最复杂网络问题的瑞士军刀。如果你的朋友抱怨“网络不通”,快用上你的新技能,炫耀一下吧!

下一节课会更有趣:我们将深入了解 DNS 和它的魔法。而现在,练习一下 ip route,看看数据包是如何找到回家的路的吧。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION