Linux网络栈非常强大。网络栈提供了许多企业网络产品无法提供的功能。在这里,我们将看到基本的和日常的网络管理命令。
检查网络和Internet连接
使用ping和telnet工具可以轻松检查网络连接。检查internet连接的一种方法是 ping
去谷歌。
# ping google.com PING google.com (216.58.212.46) 56(84) bytes of data. 64 bytes from sof02s18-in-f46.1e100.net (216.58.212.46): icmp_seq=1 ttl=54 time=45.0 ms 64 bytes from sof02s18-in-f46.1e100.net (216.58.212.46): icmp_seq=2 ttl=54 time=45.1 ms
-
ping
发送icmp数据包 -
google.com
是icmp数据包的目的地 - 第3行和第4行显示
google.com
响应我们的icmp数据包 - 第2行
216.58.212.46
是服务器的ip地址google.com
看到这意味着我们的系统可以解析域名
一些 次 ping
不可能是一个可行的方法来检查互联网连接。因为有些网络管理员禁用了 icmp
由于安全原因,网络中的流量。我们的选择是 telnet
# telnet google.com 80 Trying 216.58.212.14... Connected to google.com. Escape character is '^]'.
-
telnet
是建立tcp连接的工具 -
google.com
是目的地系统 -
80
是系统的端口号 - 第3行表示tcp连接到
google.com
如果我们看到的不是第3行,那就意味着有问题了。
列出网络接口
Linux系统可以有多个接口。列出它们可以有不同的方法,但最常用和现代的方法是使用 ip
命令。
# ip link 1: lo:mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:ea:3f:9c brd ff:ff:ff:ff:ff:ff 3: br-b7a05d7f1b53: mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:32:dc:12:91 brd ff:ff:ff:ff:ff:ff 4: docker0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:19:73:82:9a brd ff:ff:ff:ff:ff:ff 6: [email protected]: mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default link/ether 22:fe:82:84:d4:d5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
我们发布 ip link
命令并获取所有接口。接口编号便于识别。
相关文章: 什么是/etc/hosts文件以及如何创建和编辑它?
在接口名称之后 ens
.
在接口名称之后显示状态 的接口。有不同的选择,但最重要的是 UP
和 DOWN
选项。如果有 DOWN
状态显示有问题或接口未设置 UP
.
还有一个MAC地址 52:54:00:ea:3f:9c
.
设置上/下界面
我们可以设置一个接口 ip link
使用命令 set
.
# ip link set down dev docker0 # ip link show docker0 4: docker0:mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:19:73:82:9a brd ff:ff:ff:ff:ff:ff
我们已经设置了接口,然后列出了接口的状态。现在我们可以重新设置接口。请记住,如果设置了接口,有关接口的网络通信将中断。
# ip link set up dev docker0 # ip link show docker0 4: docker0:mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:19:73:82:9a brd ff:ff:ff:ff:ff:ff
很好,一切正常。我们用的很简单 up
参数而不是 down
. 如果接口网络中有dhcp服务器,它将尽快获得ip地址。
列出IP地址
列出ip地址很容易。将列出所有接口的ip地址。
# ip address show 1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:ea:3f:9c brd ff:ff:ff:ff:ff:ff inet 192.168.122.106/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 3399sec preferred_lft 3399sec inet6 fe80::c85b:e028:c080:c51e/64 scope link valid_lft forever preferred_lft forever 3: br-b7a05d7f1b53: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:32:dc:12:91 brd ff:ff:ff:ff:ff:ff inet 172.18.0.1/16 scope global br-b7a05d7f1b53 valid_lft forever preferred_lft forever 4: docker0: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:19:73:82:9a brd ff:ff:ff:ff:ff:ff inet6 fe80::42:19ff:fe73:829a/64 scope link valid_lft forever preferred_lft forever 6: [email protected]: mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 22:fe:82:84:d4:d5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
我们可能需要列出特定的ip地址。因为在企业系统中会有很多接口和ip地址。
# ip address show ens3 2: ens3:mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:ea:3f:9c brd ff:ff:ff:ff:ff:ff inet 192.168.122.106/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 3293sec preferred_lft 3293sec inet6 fe80::c85b:e028:c080:c51e/64 scope link valid_lft forever preferred_lft forever
设置IP地址
我们想静态设置ip地址。如果在接口网络中启用dhcp,它将自动获得ip地址。
# ip address add 192.168.122.107/24 dev ens3 # ip address show ens3 2: ens3:mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:ea:3f:9c brd ff:ff:ff:ff:ff:ff inet 192.168.122.106/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 1130sec preferred_lft 1130sec inet 192.168.122.107/24 scope global secondary ens3 valid_lft forever preferred_lft forever inet6 fe80::c85b:e028:c080:c51e/64 scope link valid_lft forever preferred_lft forever
我们的接口已经准备好了一个ip地址。
-
add
指定要添加ip地址 -
192.168.122.107/24
是ip地址和网络掩码 -
dev ens3
是我们要设置ip地址的接口
相关文章: 如何在Linux中检查端口是否打开?
删除IP地址
删除ip地址类似于只添加ip地址 add
命令替换为 del
命令。
# ip address del 192.168.122.107/24 dev ens3 # ip address show ens3 2: ens3:mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:ea:3f:9c brd ff:ff:ff:ff:ff:ff inet 192.168.122.106/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 3065sec preferred_lft 3065sec inet6 fe80::c85b:e028:c080:c51e/64 scope link valid_lft forever preferred_lft forever
正如我们看到前面添加的ip地址被删除。
列表路由表
路由表是网络的一个重要组成部分,因为网络数据包是根据路由表发送到目的地的。我们可以检查路由表如下
# ip route show default via 192.168.122.1 dev ens3 proto static metric 100 172.18.0.0/16 dev br-b7a05d7f1b53 proto kernel scope link src 172.18.0.1 linkdown 192.168.122.0/24 dev ens3 proto kernel scope link src 192.168.122.106 metric 100
-
route
意味着我们将使用路由子模块 -
show
列出路由表内容
添加静态路由
静态路由是由系统管理员插入的新路由。通常路由条目由系统本身插入。
# ip route add 10.0.0.0/24 via 192.168.122.1 dev ens3
-
add
用于添加新的路由条目 -
10.0.0.0/24
指定目标网络 -
via 192.168.122.1
将下一个环设置到目标网络 -
dev ens3
是数据包输出到目标网络的网络接口
删除静态路由
删除静态路由比添加它更容易。
# ip route del 10.0.0.0/24
-
del
发布用于移除 -
10.0.0.0/24
指定要删除的路由的目标网络
添加默认网关
默认网关也是路由。但是默认网关是特殊的,因为如果路由表上没有关于目标网络的条目,则数据包通过默认网关转发。
# ip route add default via 192.168.122.1
-
default
表示目的地是所有网络 -
via 192.168.122.1
指定默认网关ip地址
相关文章: 什么是Windows Sysinternal?
正在删除默认网关
默认网关可以很容易地删除我只是改变 add
在“添加到”命令中 del
就像下面一样
# ip route del default via 192.168.122.1
-
del
删除此路由 -
default
路由是默认网关 -
via 192.168.122.1
默认网关的ip地址