linux中的网络配置全过程

 更新时间:2025年10月09日 10:04:25   作者:lin琳.  
文章系统讲解了Linux网络配置与管理,涵盖ifconfig、hostname、route、netstat、ss等命令的使用方法,包括查看网络状态、路由表、连接信息及设置网络参数,区分了临时配置与固定配置方式,并通过双网卡和bond实验演示多网卡绑定与冗余配置实践

一、查看网络配置

1、ifconfig---查看指定网络接口信息

ifconfig:查看所有活动的网卡

nmcli:也可以用此命令查看网卡信息

ip a:查看ip地址,显示所有网卡包括没有启动的网卡

ifconfig [网络接口] 查看指定网络接口信息

解析:

  • 第一行:UP:该接口 已启用;BROADCAST:支持广播; RUNNING:正在运行; MULTICAST:支持组播; mtu 1500最大传输单元1500字节
  • 第二行:inet后是网络地址; netmask后是子网掩码; broadcast后是网关
  • 第三行:inet6后是ipv6的地址; prefixlen是子网长度;scopeid是作用域 ;0x20<link>:link表示仅该接口有效
  • 第四行:ether是mac地址 ;txqueuelen是传输队列长度(传输缓存大小) Ethernet是接口类型
  • 第五行:RX packets 808939:接收报文个数 bytes 1163548426 (1.0 GiB):总和字节数
  • 第六行:RX errors 0:接收 错误 ; dropped 0 :丢弃;overruns 0:溢出; frame 0:冲突帧数
  • 第七行:TX :发送; packets 1317:报文个数; bytes 294334 (287.4 KiB):总字节数
  • 第八行:TX errors 0:错误; dropped 0:丢失; overruns 0:溢出; carrier 0:载荷数; collisions 0:冲突数

2、hostname---查看主机名称

格式:hostname [主机名]

2.1 查看主机名

[root@B ~]# hostname

2.2 修改主机名

临时修改主机名,重启后失效

[root@B ~]# hostname new
[root@B ~]# su

永久修改主机名,重启后生效

[root@new ~]# vim /etc/hostname
#编辑配置文件/etc/hostname

[root@new ~]# reboot
#重启

3、route---查看路由表条目

route:查看或设置主机中路由表信息

route -n:以数字形式显示路由信息

路由表主要构成解析:

  • Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
  • Genmask:目标网络对应的netmask
  • Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
  • Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
  • Metric: 开销cost,值越小,路由记录的优先级最高

route add -net 网段地址 gw IP地址:添加指定网段的路由记录

route del -net 网段地址:删除指定网段的路由记录

route add default gw IP地址:向路由表中添加默认网关记录

route del default gw IP地址:删除路由表中默认的网关记录

4、netstat---查看网络连接情况

格式:netstat [选项]

netstat命令查看系统的网络连接状态、路由表、接口统计等信息

netstat选项及功能
选项功能
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。
-t查看TCP协议相关的信息。
-u显示UDP协议相关的信息。
-r显示路由表信息。
-l显示处于监听状态(Listen)的网络连接及端口信息。
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)

一般来说 -napt通常一起使用

过滤出22端口

过滤出80端口,发现没有说明某一个占用80的服务没有开启(http没有开启)

扩:

  • 系统打开了一个服务,会自动分配一个端口号
  • 这个端口号如果是众所周知 http 80; ssh 20; ftp 20 21; https 443等,会占用固定的端口号
  • 如果不是众所周知的,就会随机生成一个端口号

怎么判断一个服务是否启动? 可以过滤他的端口号

5、ss---查看网络连接情况,获取socket统计信息

格式:ss [选项]

  • ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。
  • 但 ss 的优势在于它能够显示更多更详细的有关 TCP 和UDP连接状态的信息,而且比 netstat 更快速更高效
  • 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
  • ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
  • ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。
ss选项及功能
选项功能
-ttcp协议相关
-uudp协议相关
-w裸套接字相关
-xunix sock相关
-llisten状态的连接
-a显示所有连接
-n数字格式
-p相关的程序及PID
-e扩展的信息
-m内存用量
-o计时器信息
-r--resolve 把 IP 解释为域名,把端口号解释为协议名称。

常用是ss -ntap

6、ping---测试网络连通性(icmp协议)

格式:ping [选项] 目标主机

ping选项及功能
选项功能
-c发送包数即指定ping 的次数
-w表示等待秒数
-i发送的间隔时间
-W超时等待时间

指定发送5次包

7、traceroute---跟踪数据包

格式:traceroute 目标主机地址

测试从当前主机到目的主机之间经过的网络节点。

8、nslookup---域名解析

格式:nslookup 目标主机地址 [DNS服务器地址]

测试DNS域名解析

也可以用dig命令来解析,它可以显示出更多详细内容

9、设置网络接口参数ifconfig

设置网络接口的IP地址、子网掩码

ifconfig 网络接口 ip地址 [netmask 子网掩码]
ifconfig 网络接口 ip地址 [/子网掩码长度]

禁用或者重新激活网卡

ifconfig ens33 up     ifup ens33
ifconfig ens33 down    ifdown ens33

设置虚拟网络接口

ifconfig ens33:0 192.168.157.100/24
#设置虚拟网卡

ifconfig ens33:0 down 
#关闭虚拟网卡

10、本地主机映射文件

/etc/resolv.conf :保存的是你DNS服务器的地址

/etc/hosts文件 :保存主机名与IP地址的映射记录

hosts文件和DNS服务器的比较:

  • 默认情况下,系统首先从 hosts 文件查找解析记录
  • hosts 文件只对当前的主机有效
  • hosts 文件可减少 DNS 查询过程,从而加快访问速度

二、设置网络参数的方式

1、临时配置---使用命令调整网络参数

  • 简单、快速,可直接修改运行中的网络参数
  • 一般只适合在调试网络的过程中使用
  • 系统重启以后,所做的修改将会失效

2、固定设置:通过配置文件修改网络参数

  • 修改各项网络参数的配置文件
  • 适合对服务器设置固定参数时使用
  • 需要重载网络服务或者重启以后才会生效

3、双网卡实验

3.1 添加一个网络适配器(NAT就可以)

3.2 进入网卡位置,查看此目录,此时发现有一个ifcfg-ens33

3.3 复制ifcfg-ens33并改名为ifcfg-ens36,查看此目录

3.4 查看所有ip,确认复制后是否名为ifcfg-ens36(有些情况下,虽然命名为36,但在ip a下发现并不是)

3.5 进入配置文件,进行修改关于ens36的配置

(修改有关ens33的名字、ens33的uuid和ip地址等)

3.6 重启服务,并查看网卡ens36的详细信息

3.7 测试

4、bond实验

4.1添加一个网络适配器(NAT就可以)

4.2 进入网卡配置位置并查看此目录

4.3 编辑bond0

4.4编辑ens33

4.5 编辑ens36

4.6 开启服务(此时无反应很正常)

4.7 此时用另一台主机去ping bond上的ip是可以ping同的

4.8 测试,将其中一块网络适配器当掉,另一台在虚拟机不受影响

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论