【Linux网络服务】网络的基本配置

66 阅读9分钟

一、Linux网络

将Linux主机接入到网络,需要配置网络相关设置

一般包括如下内容:

  • 主机名
  • IP/netmask
  • 路由:默认网关
  • DNS服务器
  • 主DNS服务器
  • 次DNS服务器
  • 第三个DNS服务器

二、查看网络配置

1. ifconfig——查看网络接口信息

ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装)

image.png

ifconfig的基本用法

1)查看网络接口信息:ifconfig

image.png

2)查看指定网卡信息:ifconfig 网卡名

image.png

3)查看所有网卡,启用和不启用:ifconfig -a

image.png

4)设置虚拟网卡:ifconfig 网卡名:数字 ip地址/子网掩码

image.png

5)查看通讯情况:ifconfig -s

image.png

6)开启关闭网卡:ifconfig 网络接口 up/down

image.png

2. hostname——查看主机名称

hostname的基本用法

1)查看或设置当前主机名:hostname

image.png

2)临时修改主机名称:hostname 主机名

image.png

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

  • 方法一:编辑配置文件/etc/hostname,该文件只对第一行生效。

image.png

image.png

  • 方法二:使用 “hostnamectl set-hostname 新主机名” 命令,该命令实际是修改了配置文件。

image.png

3. route——查看路由表条目

1)打印路由表:route         image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

4. ss(socket statistics)——查看网络连接情况

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软件包的一部分,默认已经安装。

ss命令格式:ss [选项]

常用选项

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

示例

1)查看TCP协议端口是否开启

image.png

5. netstat——查看网络连接情况

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

netstat命令格式:netstat [选项]

常用选项

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

示例

1)列出处于监听状态的TCP端口:netstat -lt

image.png

2)使用ip地址列出所有处于监听状态的TCP端口,并加上程序名:netstat -tnlp

image.png

三、测试网络连接

1. ping——测试网络连通性

linux中,默认会一直ping下去, 按Ctrl+c 终止。

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

常用选项

选项说明
-w超时时间(在 deadline 秒后退出)
-c count指定发送报文的次数(ping指定次数后停止ping)
-i指定收发信息的间隔时间
-s设置数据包的大小
-n只输出数值
-p设置填满数据包的范本样式
-q不显示指令执行过程
-R记录路由过程
-t设置存活数值TTL的大小
-v详细显示指令的执行过程

示例

1)只ping5个包:ping -c5 目标主机

image.png

2)等待时间为4秒,4秒后自动退出:ping -w4 目标主机

image.png

2. nslookup——域名解析

测试DNS域名解析

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

示例

1)将百度域名解析成IP地址

image.png

3. tcpdump 抓包工具

tcpdump [option选项] [proto协议] [dir数据的方向] [type抓取的数据类型]

option(选项)

选项含义
-a尝试将网络和广播地址转换成名称
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作
-d把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出
-dd把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出
-ddd把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出
-e在每列倾倒资料上显示连接层级的文件头
-f用数字显示网际网络地址
-F<表达文件> 指定内含表达方式的文件
-i<网络接口> 使用指定的网络截面送出数据包
-l使用标准输出列的缓冲区
-n不把主机的网络地址转换成名字
-N不列出域名
-O不将数据包编码最佳化
-p不让网络界面进入混杂模式
-q快速输出,仅列出少数的传输协议信息
-r<数据包文件> 从指定的文件读取数据包数据
-s<数据包大小> 设置每个数据包的大小
-S用绝对而非相对数值列出TCP关联数
-t在每列倾倒资料上不显示时间戳记
-tt在每列倾倒资料上显示未经格式化的时间戳记
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型
-v详细显示指令执行过程
-vv更详细显示指令执行过程
-x用十六进制字码列出数据包资料
-w<数据包文件> 把数据包数据写入指定的文件

proto(协议)

1)tcp udp icmp

2)ip ipv6

3)arp

dir(数据的方向方向)

1)src

2)dst

3)src and dst

type(抓取的数据类型):

1)host:主机

2)net:网段

3)port:端口

4)port range:端口范围

示例

1)查看所有网卡:tcpdump -D

image.png

2)指定查看某网卡:tcpdump -i 网卡

image.png

3)监听某主机的通信包:tcpdump host ip地址 -i 网卡

image.png

四、永久修改网络相关配置

设置网络参数的方式

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

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

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

1. 静态NAT网络设置

网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33

image.png

image.png

2. 双网卡设置

步骤1:增加网络适配器。

image.png

image.png

步骤2:用ifconfig -a 命令显示所有网卡,查看第二块网卡名称。

image.png

步骤3:切换到配置文件所在目录,复制配置文件,并对第二块网卡进行编辑配置文件。

image.png

image.png

步骤4:重启网络服务,并查看第二块网卡。

image.png

五、多网卡绑定配置:bond

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

Bonding 聚合链路工作模式

  • mod=0 ,即:(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。负载均衡—所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。性能问题—一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。Bond0在大压力的网络传输下,性能增长的并不是很理想。需要交换机进行端口绑定。

  • mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。容错能力—只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。无负载均衡—此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

实验操作1

步骤1:增加网络适配器。

image.png

image.png

步骤2:用ifconfig -a 命令显示所有网卡,查看第二块网卡名称。

image.png

步骤3:切换到配置文件所在目录,复制配置文件,并对bond0进行编辑配置文件。

image.png

image.png

步骤4:对ens33进行编辑配置文件,复制配置文件,并对ens36进行编辑配置文件。

image.png

image.png

image.png

步骤5:重启网络服务,登录bond0网卡,查看登录情况。

image.png

image.png

image.png

实验操作2

步骤1:添加bonding接口

nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.1.50/24

image.png

步骤2:添加从属接口,网卡ens33,ens36

image.png

步骤3:先启动从属接口ens33

image.png

步骤4:再启动从属接口ens36

image.png

步骤5:最后启动绑定

image.png

步骤6:切换到配置文件所在目录,查看绑定情况

image.png

注意

在添加bonding接口之前,需增加网络适配器。