Linux网络设置
一.查看网络配置
二.测试网络链接
三.使用网络配置命令
四.修改网络
一.查看网络配置
1.1查看网络接口信息ifconfig
查看所有活动的网络接口信息
执行ifconfig
1.2查看指定网络接口信息
ifconfig网络接口
Mtu 最大传输率
RX 数据包的接收个数
TX 数据包的发送个数
Uname -a 查看当前内核版本
Uname -r 简版当前内核版本
Cat /etc/redhat-release cat /etc/*release 查看当前系统版本信息
查看主机名称hostname
hostname命令
查看或设置当前主机名
hostname [主机名]
修改主机名 hostname kgc
永久修改
hostnamectl set- hostname kgc
改完需bash启用新的she1会话或者重新打开终端
主机名称配置文件/etc/ hostname
通过修改/etc/ hostname来更改的主机名,如果要让其生效,需重启linux系统。
查看主机名:hostname
查看本主机ip:[root@centos7 ~) # hostname -i
fe80::20:29ff:fe4f:e948ens33192.168245.151192.168122.1
查看网络链接情况netstat
netstat命令
-n:以数字的形式显示相关的主机地址.端口等信息
-r:显示路由表信息
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l:显示处于监听( Listening)状态的网络连接及端口信息。
-t:查看TCP( Transmission Control Protocol,传输控制协议)相关的信息。
-u:显示UDP( User Datagram Protocol,用户数据报协议)协议相关的信息。
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限
Proto显示连接使用的协议,
Refcnt表示连接到本套接口上的进程数量,
Types显示套接口的类型,
state显示套接口当前的状态,
Path表示连接到套接口的其它进程使用的路径名
用法:①通常使用-anpt"组合选项,以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息
②配合管道符grep过滤出特定的记录
[ rootelocalhost -]# netstat -anpt I grep sshd
获取socket统计信息 ss
ss命令:也可以查看网络连接情況,主要用于获取 socket统计信息,它可以显示和 netstat命令类似的输出内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比 netstat更快速更高效。要想使用ss命令是 Linux
centos7中 iproute软件包的一部分,默认已经安装,如果没安装,可以通过yum安装
常用命令:
-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解释为域名,把端口号解释为协议名称。
注:当服务器的socket.连接数量变得非常大时,无论是使用netstat命令还是直接cat /proe/net/tcp,执行速度都会很慢。ss快的秘诀在于,它利用到了TCP协议栈中tcp_ diag。 tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。
time命令:测量命令的执行时间或者系统资源的使用情况
看到没有,执行时间一下子就统计出来了。但输出内容中有三个统计时间,real、user和
sys,它们都代表什么含义呢?哪个才是1s命令的执行时间呢?下面我们就一起来看看这三个计时间。
(1)real:从进程1s开始执行到完成所耗费的CPU总时间。该时间包括1s进程执行时实际使用的CPU时间,1s进程耗费在阻塞上的时间(如等待完成I/o操作)和其他进程所耗费的时间(Linux是多进程系统,1s在执行过程中,可能会有别的进程抢占CPU)。
(2)user:进程1s执行用户态代码所耗费的CPU时间。该时间仅指1s进程执行时实际使用的CPU时间,而不包括其他进程所使用的时间和本进程阻塞的时间。
(3) sys:进程1s在内核态运行所耗费的CPU时间,即执行内核系统调用所耗费的CPU时间。
现在,我们应该对这三个时间非常清楚了吧。1s命令的真正执行时间是多少?答案就是user+sys的时间,但一般情况下,real=user+sys,因而我们就使用real的时间作为1s的执行时间了
具体详情:http://c.biancheng.net/linux/time.html
ss -o state established (dport=: smtp or sport= : smtp)显示所有已建立的SMTP连接
[root@localhost ~]# time ss
[root@localhost ~]# time netstat -an
査看并发连接数ss和 netstat对比
[root@localhost ~]# time netstat -ant I grep EST I wc -l
[root@localhost ~]# time ss -o state established I wc -l
为什么ss比 netstat快:
netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
[rootecentos7~] ss -tn I grep -w 22 -w用于字符串精确匹配
[root@localhost~]# ss -o state established| grep ssh
-0选项可用于显示计时器信息。该信息向我们展示了诸如重新传输计时器值、已经发生的重新传输的数量以及已发送的keepalive探测的数量
ss命令的输出结果,可以提供TCP和UDP的 socket信息,以及各种服务建立的持久连结,熟悉这个命令有助于更好的发现与解决系统性能问题。例如,执行以下操作可以显示TCP协议下已经建立的连接, Local Address:Port"表示本地监听的IP和端口, Peer Address:Port"表示远端连接的IP和端口
[root@localhost~)# ss -t state established #established,syn-sent,syn-recv,fin-wait-1, fin-wait-2,time-wait,closed,closed-wait,last-ack监听和关闭等状态
[root@shengjie ~) ss -tnl sport le 500 显示500以内的端口编号 le 小于 以内
[root@shengjie ~) ss -tnl sport ge 500 显示50 以外的端口编号 ge 大于 以外
二.测试网络链接ping
1.测试网络连通性:ping
使用ping命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按ctrl+c组合键后中止测试,并显示最终统计结果
[roote localhost~] ping192.168.245.201最常用是后面跟ip地址
[root@localhost~] ping www.baidu.com后面还可跟域名
[roote ocalhost~]ping -c 5 192.168.245.201 -c表示指定ping的次数
[roote ocalhost~]ping -c 5 -i 0.5 www.baidu.com
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
[roote ocalhost~]ping -w 5 www.baidu.com 表示ping的超时时间为5秒,5秒后结束
注:若看到“Destination Host Unreachable”的反馈信息,则表示目的主机不可达,可能目标地址不存在或者主机已经关闭;
若看到“Netwoek is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法达到目标主机所在的网络。
当目标主机有严格的防火墙限制时,或者当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)时,可能收到 “Request timeout”的反馈结果
2.跟踪数据包的路由途径: traceroute
若服务器上没有 traceroute命,可通过yum方式安装 traceroute软件包traceroute命令可以用于测试从当前主机到目的主机之间经过了哪些网络结点,并显示各中间结点的连接状态(响应时间)。对于无法响应的结点,连接状态将显示为“*”
[root@localhost ~]#traceroute www.baidu.com
可以看到这台主机和这台机器中间没有经过路由,是直连或连着交换机的状态traceroute命令能够比ping命令更加准确地定位网络连接的故障点(中断点),因此执行速度会比ping命令稍慢。在网络测试与排错过程中,通常会先使用ping命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用 traceroute命令跟踪查看是在哪个中间结点存在故
域名解析nslookup
三.设置网络参数的方式
1.临时配置---使用命令调整网络参数
简单.快速,可直接修改运行中的网络参数
一般只适合在调试网络的过程中使用
系统重启以后,所做的修改将会失效
2.固定设置---通过配置文件修改网络参数
修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
需要重载网络服务或者重启以后才会生效
查看路由表条目 route
windows机器上查看路由表 route print
路由表: Linux操作系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。直接执行“route”命令可以查看当前主机中的路由表信息 centos6.0原来是*号 bash
[root@localhost ~] route
当目标网段为“default”时,表示此行是默认网关记录;
当下一跳为“gateway”时,表示目标网段是与本机直接相连的。
但是,直接执行 “route”命令无法直接看出默认网关地址
在Centos7操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效,可以重新启动network服务或者重启主机
systemctl restart network
建议关闭 Networkmanagerl服务,否则有时启动network会报错
systemctl stop Networkmanager
systemctl disable Networkmanager
route -n
查看路由,使用-n可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情況下能够加快执行速度
[root@localhost~]#route -n
ip route show= ip route查看路由信息
route-n
方法一:
route add -net192.168.20.0/24 gw 192.168.10.1[ dev ens33]添加静态路由
-net:指定目标段的地址
gw:指定下一跳路由器的IP地址
dev:为路由指定的输出接口
方法二:
ip route add 192.168.15.0/24 via192.168.80.2 [dev ens33]
route del -net 192.168.20.0/24 删除路由
route add -net default gw 192.168.10.1默认路由
route del default 删除默认
四.修改网络配置文件
网络接口的配置文件默认位于/etc/sysconfig/network-scripts/ifcfg-ens33
文件名格式为 ifcfg-XXX",其中XXX"是网络接口的名称。
例如,网卡ens33的配置文件是ifcfg-ens33",回环接口10的配置文件是”ifcfg-1o"。
TYPE= Ethernet 设置网卡类型," Ethernet"表示以太网。
BOOTPROTO= static 设置网络接口的配置方式,值为 static时表示使用静态指定的IP地址,为"dhcp"时表示通过DHCP的方式动态获取地址。
DEVICE=ens33 设置网络接口的名称
NAME=ens33 设置网络接口的名称
UUID=01f717ed-f7ac-4ac0-a209-c7c5889e3635 设备ID
ONBOOT-YES 设置网络接口是否在 Linux操作系统启动时激活。
IPADDR=192.168.4.11 设置网络接口的IP地址
NETMASK=255.255.255.0 设置网络接口的默认子网掩码。
GATEWAY=192.168.4.1 设置网络接口的默认网关地址
DNS1=8.8.8,8 设置域名解析服务器
DNS2=114.114.114.114
域名解析配置文件
vi /etc/resolv. conf
search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1
resolv.onf文件中的 “search localdomain”行用来设置默认的搜索域(域名扩展名)。
例如,当访问主机“localhost”时,就相当于访问localhost.localdomain
一行一个DNS,最多配置三个DNS
/etc/ resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux操作系统中最多可以指定3个(第3个以后的将被忽略)不同的DNS服务器地址,优先使用第一个DNS服务器。例如,执行以下操作可以指定默认使用的两个DNS服务器地址分别位于202.106.0.20和202.106.148.1。
启用、禁用网络接口配置
重启network网络服务
Systemctl restart neteork
如果只是禁用、启用某一个网络接口(而不是所有接口),可分别使用两个接口控制脚本 ifdown、ifup.ifconfig ens33 down l up 或者 ifup/ifdown ens33
本地主机映射文件
/etc/ hosts文件中记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询。
若在/ete/ hosts文件中添加119.75.218.70 www. baidu.com"的映射记录,则当访问网站ww. baidu.com时,将会直接间IP地址119.75.218.70发送web请求,省略了向DNS
Hosts文件和DNS服务器的比较
默认情况下,系统首先从hosts文件查找解析记录
Hosts文件只对当前的主机有效
Hosts文件可减少DNS查询过程,从而加快访问速度。
五.总结
1.查看网络配置的命令有:ifconfig hostname route netstat ss
2.测试网络链接的命令:ping traceroute nslookup dig
3.设置网络地址参数:临时配置 永久配置
4.网络配置的三种方式:
①:vim /etc/hosts
②:vim /etc/sysconfig/network-scripts/ifcfg-ens33
③:vim /etc/resolv.conf
依次生效顺序①hosts文件,②网卡配置文件,③/etc/resolv.conf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了