不得不了解的linux网络基础命令

768 阅读4分钟

一.查看并设置网络

1.1查看网络配置

1.1.1 ifconfig-查看网卡信息

  • 由net-tools包安装

image.png

  • 命令常见格式与选项

ifconfig 具体网卡名称只显示具体网卡的详细信息
ifconfig -a显示所有网卡包括没有启动的网卡
ifconfig 网卡名称 [up/down]表示开启或关闭网卡
ifconfig 网络接口 IP地址 [/子网掩码长度]临时设置网卡地址
ifconfig 网卡名称:数字 地址新建虚拟网卡
ifconfig -s查看通讯消息
命令

ifconfig

image.png

ifconfig down或者up

image.png image.png

至于ifconfig中显示的信息,我们只需要注意几个参数即可:

  1. inet:ip地址
  2. netmask:掩码
  3. broadcast:广播地址
  4. ether:物理地址,即MAC地址

1.1.2 route-查看路由表信息

在Linux系统中,route命令一般用于查看路由表或者更改路由表状态

命令选项

route           //打印路由表  ​ 
route -n       //以数字形式显示路由信息  ​ 
route add -net 网段地址 gw IP地址   //添加指定网段的路由记录  ​
route del -net 网段地址             //删除指定网段的路由记录  ​ 
route add default gw IP地址         //向路由表中添加默认网关记录  ​ 
route del default gw IP地址       //删除路由表中默认的网关记录

image.png 路由表各列字段说明:

含义
Destination目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关(这里是 10.139.128.1)
Gateway网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关
GenmaskDestination 字段的网络掩码,Destination 是主机时需要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0
Flags标记,含义参考表格后面的解释
Metric路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用。)
Ref路由项引用次数 (不在Linux内核中使用。)
Use此路由项被路由软件查找的次数
Iface网卡名字,例如 eth0

1.1.3 hostname-临时修改用户名

root@localhost ~]# hostname查看当前主机名称
[root@localhost ~]# hostnamectl set-hostname 主机名称永久修改主机名称
[root@localhost ~]# vim /etc/hostname设置完后需重启系统才生效

image.png

1.1.4 netstat-查看网络连接情况

和ss命令类似,但是实际生产环境中建议使用ss命令,速度比较快

格式: netstat [选项]

选项作用
-a显示当前主机中所有活动的网络连接信息
-n以数字的形式显示相关的主机地址、端口等信息
-r显示路由表信息
-l显示处于监听状态的网络连接及端口信息
-t查看TCP协议相关的信息
-u显示UDP协议相关的信息
-p显示与网络连接相关联的进程号、进程名称信息(需要root权限)

1.1.5 ss- 查看网络情况

ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。

但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

选项含义
-ttcp协议相关
-uudp协议相关
-w套接字相关
-xunix sock相关
-llisten状态的连接
-a所有
-n数字格式
-p相关的程序及PID
-e扩展的信息
-m内存用量
-o计时器信息
-r--resolve 把 IP 解释为域名,把端口号解释为协议名称

示例:

查看TCP协议下的21端口是否开启

 [root@localhost ~]# ss -ntap |grep 21       //查看TCP协议下的21端口
 LISTEN     0      32          :::21                      :::*                   users:(("vsftpd",pid=84913,fd=3))
 ​
复制代码

image.png

1.2测试网络连接

1.2.1 ping-测试网络连通性

ping 通常用来测试网络的连通性,在Linux中,ping命令一旦执行,是不会停止的,我们可以利用 -c 选项来指定ping的次数,也可以 ctrl+c 来中断ping的进程

格式:ping [选项] IP地址

常用选项作用
-c #指定ping #次
-w #在ping #秒后退出(linux中如果ping不通,会等一些时间,使用-w可以有效解决)

1.2.2 traceroute—跟踪数据包的路由途径

traceroute命令用于追踪数据包传递的路线,即达到目标网络需要经过多少网关

image.png

1.2.3 nslookup-测试域名解析

nslookup/dig命令用来测试域名解析

格式:nslookup/dig 目标主机IP/域名地址

dig可以显示更多内容

image.png