Linux网络设置
文章目录
引言:Linux系统的网络配置是怎样的,生产过程中如何测试网络连接的连通性,网络网卡的配置,修改网络配置文件的方法
一、查看网络接口信息
1.查看所有活动的网络接口信息
执行ifconfig命令
ifconfig ens33 查看
ifconfig 单独查看网络的一种方式
ens33第一块以太网卡的配置,ens第一块网卡的名称,;33表示插槽的编号也就是网卡的编号
在这里插入图片描述
查看指定网络接口信息
ifconfig 网络接口
主机的网络接口(网卡)通常称为网络接口,在Linux操作系统中,适用ifconfig命令可以查看网络接口 的地址配置信息
ens33:第一块以太网卡的名称,“ens33”中的“en”是“Ethernet"的缩写,表示网卡类型为以太网,"s"表示热插拔插槽上的设备,数字"33"表示插槽编号
lo:"回环"网络接口,“lo"是loopback的缩写,不代表真正的网络接口,而是一个虚拟的网络接口,其IP地址默认是"127.0.0.1”,回环地址通常仅用于对本机的网络测试
ifconfig 显示已启用的网络接口,不包括禁用的设备
!若采用mini版CentOS 7 安装的系统,默认是没有ifconfig命令的,需要先通过yum方式安装net-tools软件包才有ifconfig命令
例:ifconfig 显示已启用的网络接口,不包括禁用的设备
第一行:以太网卡的名字不是常见的eth0,变成了ens33
UP:代表此网络接口为启用状态(down为关闭状态);RUNNING:代表网卡设备已连接;MULTICAST:表示支持组播;MTU:为数据包最大传输单元
第二行:网卡的IP地址、子网掩码、广播地址
第三行:IPV6地址
第四行:Ethernet(以太网)表示连接类型;ether:表示为网卡的MAC地址
第五行:接收数据包个数、大小统计信息
第六行:异常接受包个数、如丢包量、错误等
第七行:发送数据包个数、大小统计信息
第八行:发送包的个数,如丢包量、错误等
ifconfig -a 显示所有活动及非活动的连接
注:IO是表示主机的回环地址,IP地址固定为127.0.0.1,子网掩码为8位,表示本机
一般测试一个网络程序,但不想让局域网或外网的其他用户看到,只能在此台主机上运行和查看所用的网络接口,比如把HTTPD服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架构的WEB网站了,但只有你自己可以看到
virbr0是一个虚拟网络连接口,默认为0号虚拟网络连接端口,一般在通过虚拟机进行移植操作系统时,默认会以nat的网络地址转移,但是可以选择桥接或是无网络连接(因为本人用的时centos镜像的虚拟机,所以会有这行的出现)
ifconfig -a 显示所有活动及非活动的连接
2.添加虚拟网络接口地址
ifconfig ens33:1 192.168.206.110
3、修改网络配置文件
网络接口的配置文件默认位于/etc/sysconfig/network-script/ifcfg-ens33
文件名格式为“ifcfg-XXXX”(XXXX为网络接口的名称)
例如:网卡ens33的配置文件时"ifcg-ens33",回环接口lo的配置文件是"ifcfg-lo"
vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入设置
TYPE=“Ethernet” 设置网卡类型,"Ethernet"表示以太网
BOOTPROTO=“static” 设置网络接口的配置方式,值为’static’时表示使用静态指定的IP地址,为’dhcp’时表示通过DHCP的方式动态获取地址
NAME=“ens33” 设置网络接口的名称
UUID=“41e5167c-feab-485d-af82-17a166809582” 设备ID
DEVICE=“ens33” 设置网络接口的名称
ONBOOT=“yes” 设置网络接口是否在Linux操作系统启动时激活
IPADDR=“192.168.206.190” 设置网络接口的IP地址
NETMASK=255.255.255.0 设置网络接口的子网掩码
GATEWAY=“192.168.206.2” 设置网络接口的默认网关地址
DNS1=“8.8.8.8”(或DNS=114.114.114.114) 设置域名解析服务器
注:在CentOS 7 操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效,可以重新启动network服务或重启主机 systemctl restart network(重启网卡)
!!!生产环境中,全部用的都是静态路由,
二.设置网络接口参数
ifconfig 命令不仅可以用于查看网卡配置,还可以修改网卡的IP地址、子网掩码,也可以绑定虚拟网络接口、激活或禁用网络接口
ifconfig ens37 192.168.206.188/24
启用、禁用网络接口配置d
如果只是禁用、启用某一个网络接口(而不是所有接口),可以分别使用两个接口控制脚本ifdown、ifup
ifconfig ens37 down(或ifdown) 关闭
ifconfig ens37 up(或ifup) 开启
为网卡绑定虚拟接口:在对服务器网络进行调试的过程中,有时需要临时在同一个网卡上使用一个新的IP地址,但是又不能覆盖原有IP地址而导致服务程序不可用,可以给网卡绑定一个虚拟的网络接口,然后为虚拟接口设置新的IP地址(相当于一块网卡配多个IP地址)
1.临时修改网卡IP
2.临时关闭指定网卡
3开启指定网卡
禁用某个网卡(状态为开启,但是没有IP地址)
三、查看主机名称hostname
1.hostname 命令查看或设置当前主机名
2.临时修改主机名:
hostname+临时修改的主机名
bash
(有时候设置后不会成功,不推荐使用)
3.永久修改主机名:
hostnamectl set-hostname 新的主机名称
或vim /etc/hostname(也可以达到永久修改主机名的效果)
主机名在Linux操作系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出故障。
四、查看路由表条目 route
1.route命令:查看或设置主机中路由表信息
路由表:Linux操作系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息
直接执行’route’命令可以查看当前主机中的路由表信息
当目标网段为’default’时,表示此行是默认网关记录,当下一跳"gateway"时,表示目标网段是与本机直接相连的,这时直接执行“route”命令无法直接看出默认网关地址
使用“route -n” 查看路由,使用-n参数可以将路由记录中的地址显示为数字形式,可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度
Destination 这一列对应目标网段的地址
Gateway 这列对应下一跳路由器的地址
Iface 这列对应发送数据的网络接口
ip route show=ip route 查看路由配置
2.添加、删除静态路由记录
route命令不仅可以用于查看路由表信息,还可用来添加、删除静态的路由表条目,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)
route add -net 192.168.200.0/24 gw 192.168.206.1 表示可以通过192.168.200到192.168.206.
route del -net 192.168.200.0/24 删除
添加、删除默认网关记录,在同一主机的路由表中只应有一条默认网关记录,若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障,添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类型类似,但指定目标网段时只需简单地使用“default”表示
route add default gw 网关
route del delfault gw 网关ip/route del default
2.1临时添加静态路由信息
网卡重启后,临时设置的静态路由失效
2.2永久添加路由
ip route add 192.168.200.0/24 via 192.168.206.1
永久添加路由
2.3删除静态路由条目
2.4默认路由设置
五、查看网络连接情况 netstat
netstat 命令:
查看当前操作系统的网络练级状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具
netstat [选项]
常用选项:
-n :以数字的形式显示相关的主机地址、端口信息
-r :显示路由表信息
-a :显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l :显示处于监听状态的网络连接及端口信息
-t :查看TCP协议相关信息
-u :显示UDP协议相关信息
-p :显示与网络连接相关联的进程号,进程名称信息(该选项需要root权限)
Proto显示连接使用的协议
RefCnt表示连接到本套接口上的进程数量,
Types显示套接口的类型,
State显示套接口当前的状态,
Path表示连接到套接口的其它进程使用的路径名
用法:通常使用“-anpt"组合选项,以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息;配合管道符grep过滤出特定的记录
例:
六、获取socket统计信息 ss
ss命令:查看系统的网络连接情况,获取socket统计信息,它可以显示和netstat命令类似的输出内容,但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速高效,ss命令利用了TCP协议中tcp_diag,tcp_diag是一个用于分析统计的模块,可以获得Linux内核第一手的信息,这就确保了ss的快速高效
ss [选项] :查看系统的网络连接情况,获取socket统计信息
常用选项:
-h :–help通过该选项获取更多的使用帮助
-v :–version显示软件的协议号
-t :–tcp显示TCP协议的sockets
-u :–udp显示UDP协议的sockets
-n :–numeric不解析服务的名称,如”22“端口不会显示成”ssh“
-l :–listening值显示处于监听状态的端口
-p :–processes显示监听端口的进程
-a :–all对TCP协议来说,既包含监听的端口,也包含建立的连接
-r :–resolve把IP解释为域名,把端口号解释为协议名称
-o :选项可用于显示计时器信息,该信息向我们展示了诸如重新传输计时器值,已经发生的重新传输的数量以及已发送的keepalive探测的数量
-w :用于字符串精确匹配
七、time命令:测试命令的执行时间和系统资源的使用情况
- real:从进程1s开始执行到完成所耗费的CPU总时间,该事件包括1s进程执行时实际使用CPU事件,1s进程耗费在阻塞上的事件(如等待完成I/O操作)和其他进程所耗费的时间(Linux是多进程系统,1s在执行过程中,可能有其他程序在抢占CPU)
- user:进程1s执行用户态代码所耗费的CPU时间,该时间仅指1s进程执行时实际使用的CPU时间,而不包括其他进程所使用的时间和本进程阻塞的时间
- sys:进程1s在内核态运行所耗费的CPU时间,也就是执行内核系统调用所耗费的CPU时间
1s命令的执行时间就是user+sys的时间,real=user+sys。
八、测试网络连通性 ping
使用ping命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按Ctrl+c组合键后中止测试,并显示最终统计结果
ping [选项] 目标主机
例:
ping -c 表示指定ping的次数
ping 后面也可跟域名
ping -i 秒数:设定间隔几秒送一个网络封包给一台机器,默认值是1秒
ping -w :表示ping多久,超过这个时间就结束;
若看到”Destination Host Unreachable"的反馈信息,则表示目的主机不可达,可能目标地址不存在或者主机已经关闭。若看到“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关)无法到达目标主机所在的网络,当目标主机有严格的防火墙限制时,或者当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)时,可能收到Request timeout的反馈结果
九、跟踪数据包 traceroute
traceroute命令:跟踪数据包的路由途径,可以用于测试从当前主机到目的主机之间经过了哪些网络节点,并显示各中间节点的连接状态(响应时间),对于无法响应的节点,连接状态显示为“*“
traceroute比ping命令更加准确的定位网络连接的故障点(中断点),因此执行速度比ping命令慢点,在网络测试与排错过程中,通常会先使用ping命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用traceroute命令跟踪查看是哪个中间节点存在故障
traceroute 目标主机地址
十、域名解析nslookup
nslookup命令:测试DNS域名解析
nslookup 目标主机地址 [DNS服务器地址]
例:
十一、域名解析配置文件查看与修改 resolv.conf
resolv.conf文件中的“”search localdomain"行用来设置默认的搜索与(域名扩展名),例如,当访问主机“localhost"时,就相当于访问”localhost.localdomain‘
/etc/resolv.conf 文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所作的修改将会立刻生效,Linux操作系统中一行一个DNS,最多可以指定3个(第3个以后的将会被忽略)不同的DNS服务器地址,优先使用第一个DNS服务器,
十二、本地主机映射文件
/etc/hosts文件记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息,当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询,
若在/etc/hosts文件中添加“192.168.206.190 www.baidu.com"的映射记录,则当访问网站www.百度.com 时,将会直接向IP地址 192.168.206.190 发送Web请求,
十三、设置网络参数的方式
1.临时配置-使用命令调整参数
简单快速,可直接修改运行中的网络参数
一般只适合在调试网络的过程中使用
系统重启后,所走的修改将会失效
2.固定设置-通过配置文件修改网络参数
修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
需要重载网络服务或重启以后才会生效
实验:ss命令和netstat命令的区别
netstat把state放在最后一列,ss放在第一列
ss能够显示更多更详细的有关TCP和连接状态的信息
ss增加了Port(端口类型)
ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容,但ss能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
ss与netstat速度对比
ss比netstat更快速高效,尤其是当服务器的socket连接数量非常大时,ss利用了TCP协议中tcp_diag,tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效
总结
根据上述内容,对于网络配置,可以了解到用ifconfig查看我们具体的配置,怎么修改主机名,静态路由的条目的增删,域名解析的方法;设置网络地址参数。测试网络连接ping的一些参数,追踪数据包,方便排错故障;