ubuntu 修改ip_在Ubuntu中查看网络路由表的方法

什么是Linux中的路由和路由表?

路由的过程意味着IP包在网络上从一点传输到另一点。当你向某人发送电子邮件时,你实际上是在将一系列IP数据包或数据报从你的系统传输到另一个人的计算机上。从计算机发送的数据包通过几个网关或路由器到达目标计算机系统。同样的方法适用于所有internet协议,如HTTP、IRC和FTP等。

在所有Linux和UNIX系统中,有关如何转发IP数据包的信息都存储在内核结构中。这些结构称为路由表。当您希望系统与其他计算机通信时,可能需要配置这些路由表。首先,了解如何在Linux系统上查看这些路由表非常重要。

在本文中,我们将通过以下三个常用的命令来解释如何在Ubuntu中查看路由表:

netstat命令route命令ip route命令

我们在Ubuntu 18.04 LTS系统上运行了本文中提到的命令和过程。我们使用Ubuntu命令行终端,以便运行上述命令。您可以通过系统Dash或Ctrl + Alt + T快捷方式打开终端。

如何查看路由表?

方法1:通过netstat命令

netstat命令一直是Linux中打印路由表信息一种广泛使用的方法。然而,它被ip route命令正式取代。无论如何,我们都需要它,因为它仍然是检索所需信息的一种方法。

以下是使用此命令的方法:

$ netstat -rn
e1c2432fd89d573a7219e4aae9e4d657.png

-r此标志用于显示内核路由表

59dbc9f35f71f18961ba498e78a54c71.png

-n此标志用于显示数字地址

aa5eac886bdf3328f1921736b3630cfe.png

这是输出的结果:

Destination 此列指示目标网络。
Gateway 此列指示网络的已定义网关。 如果在此列中看到*,则表示指定的网络不需要转发网关。
Genmask 此列指示网络的网络掩码。
Flags 此列中的U输出表示路线已启动。 G输出表示应该为此路由使用指定的网关。 D代表动态安装,M代表修改,R代表恢复。
MSS 此列指示此路由的TCP连接的默认最大段大小(MSS)。
Window 此列指示此路由上TCP连接的默认窗口大小。
Irtt 此列指示此路线的初始往返时间。
Iface Iface列显示网络接口。 如果您有多个接口,您会看到lo(用于环回),eth0(第一个以太网设备)和eth1(用于第二个以太网设备),依此类推您已安装的接口数量。

方法2:通过route命令

route命令也属于曾经广泛使用但现在过时的命令来查看路由表。 此命令的手册页还提到该命令现在已被ip route命令替换。

通过此命令,您可以通过netstat命令查看完全相同的信息。 以下是如何使用它:

$ route -n
07924f2ac39e5db1bc7a08ceb773293e.png

内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.182.2 0.0.0.0 UG 20100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.182.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

-n此标志仅用于显示数字地址

方法3:通过ip route命令

最后但同样重要的是,这是在Linux中打印路由表信息的最佳方法。 以下是使用此命令的方法:

$ ip route
91818b6c16e9f64d07b0bc38cb0a3edf.png

虽然这些信息不像前面提到的命令那样对读者友好,但是它仍然足够您配置路由器。

这是几个在Ubuntu中查看路由表信息的命令。虽然ip route命令在外观上不是很整洁,但它仍然是查找相关路由表信息的推荐方法。虽然其他命令被认为是过时的,但它们有时确实有助于导出需要提取的内容。

根据提供的引用内容,SPPFCSPC是一种空间金字塔池化改进的方法。下面是SPPFCSPC的代码详解: ```python import torch import torch.nn as nn class SPPFCSPC(nn.Module): def __init__(self, in_channels, out_channels): super(SPPFCSPC, self).__init__() self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1) self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2) self.spp = SpatialPyramidPooling(out_channels) self.fc = nn.Linear(out_channels * 4, out_channels) def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = self.maxpool(x) x = self.spp(x) x = x.view(x.size(0), -1) x = self.fc(x) return x class SpatialPyramidPooling(nn.Module): def __init__(self, out_channels): super(SpatialPyramidPooling, self).__init__() self.out_channels = out_channels def forward(self, x): pool_sizes = [4, 2, 1] # 池化层的大小 output = [] for pool_size in pool_sizes: pool = nn.AdaptiveMaxPool2d(pool_size) pooled = pool(x) output.append(pooled) output = torch.cat(output, dim=1) return output # 使用示例 in_channels = 3 out_channels = 64 input_data = torch.randn(1, in_channels, 224, 224) model = SPPFCSPC(in_channels, out_channels) output = model(input_data) print(output.shape) ``` 上述代码中,`SPPFCSPC`是一个继承自`nn.Module`的自定义模型,它包含了卷积层、最大池化层、空间金字塔池化层和全连接层。`SpatialPyramidPooling`是一个单独的模块,用于实现空间金字塔池化操作。 在`SPPFCSPC`的前向传播过程中,输入数据经过两个卷积层和一个最大池化层,然后通过空间金字塔池化层进行特征提取,最后通过全连接层输出最终结果。 使用示例中,我们创建了一个输入数据`input_data`,它的形状是`(1, in_channels, 224, 224)`,然后创建了一个`SPPFCSPC`模型,并将输入数据传入模型进行前向传播,得到输出结果`output`。最后打印输出结果的形状。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值