查看网络接口信息ifconfig
[root@192 ~]# ifconfig
[root@192 ~]# ifconfig ens33
[root@localhost ~]#ifconfig
ens33: flags=4163<UP, BROADCAST,RUNNING,MULTICAST> mtu 1500
该口 已启用, 支持广播、 正在运行 支持组播 最大传输单元1500
inet 192.168.233.21 netmask 255.255.255.0 broadcast 192.168.91.255
inet6 fe80::fe7:ca03:81f:2887 prefixlen 64 scopeid 0x20
IPV6地址 子网长度 作用域 link表示仅该接口有效
ether 00:0c:29:fe:e5:bf txqueuelen 1000 (Ethernet)
mac地址 传输队列长度(传输缓存大小) 接口类型
RX packets 2211 bytes 182146 (177.8 KiB)
接收 报文个数 总和字节数
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
错误 丢失 溢出 载荷数 冲突数
ifconfig 具体网卡名称 #只显示具体网卡的详细信息(无论该网卡是否使用)
ifconfig -a #表示显示所有网卡包括没有启动的网卡
ifconfig 网卡名称 [up|down] #表示开启或关闭网卡
ifconfig 网络接口 ip地址 [netmask 子网掩码]
ifconfig 网络接口 ip地址 [/子网掩码长度]
ifconfig ens33:0 地址 #表示虚拟网卡
关闭虚拟网卡使用
ifconfig ens33:0 down
开启
ifconfig ens33:0 up
[root@localhost ~]#ifconfig -s #网络通讯情况
WINDOWS查看MTU: netsh interface ipv4 show subinterfaces
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.233.21
NETMASK=255.255.255.0
GATEWAY=192.168.233.2
DNS1=192.168.233.2
MTU=“9000” #加上这一段
mtu是最大传输单元
不恰当的本地MTU值
当本地MTU值 > 网络MTU值时,需要拆包,会导致效率下降
当本地MTU值 < 网络MTU值时,未发挥最大传输能力
理想的本地MTU值
本地MTU值 = 网络MTU值
而一般以太网MTU都为1500, 所以在以太网中, 往往TCP MSS为1460。
启用、禁用网络接口配置
(一)、重启、禁用网卡
systemctl restart network #重启所有的网卡
ifdown ens33 ; ifup ens33
ifdown ens33 #关闭某个网卡
ifup ens33 #启动某个网卡
ifconfig ens33 down #临时禁用某个网卡
ifconfig ens33 up #重新激活某个网卡(不会更新IP地址)
查看主机名称 hostname
(一)、hostname命令
1、查看或临时设置当前主机名
hostname [主机名]
2、永久设置主机名
hostnamectl set-hostname [主机名]
vim /etc/hostname #只有第一行有效
#设置完后需重启系统才生效
查看路由表条目 route
route命令
1、查看或设置主机中路由表信息
route -n
查看网络连接情况netstat(即端口扫描)
netstat
netstat命令常用选项:
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n:以数字的形式显示相关的主机地址、端口等信息
-r:显示路由表信息
-l:显示处于监听(Listening)状态的网络连接及端口信息
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
netstat -antp | grep 端口号
4、获取 socket 统计信息------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软件包的一部分,默认已经安装。
ss [选项]
常用选项 作用
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。
ss -nltp | grep 22 查看tcp的所有包含22的端口
tcp和tcp6d都是tcp协议:tcp是ipv4,tcp6是ipv6
“LISTEN” 是指在网络通信中等待连接的 TCP 端口的状态之一。
当一个主机上的应用程序在指定的端口上开始监听连接请求时,它进入 “LISTEN” 状态,表示正在等待其他主机建立连接。
“ESTABLISHED” 是指在网络通信中建立的 TCP 连接的状态之一。它表示当前的 TCP 连接已成功建立并且正在进行数据传输。
#可以使用time命令来比较
[root@kgc ~]# time netstat -atn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 192.168.91.101:43374 192.168.91.100:514 ESTABLISHED
tcp 0 52 192.168.91.101:22 192.168.91.1:53036 ESTABLISHED
tcp6 0 0 :::111 ::😗 LISTEN
tcp6 0 0 :::22 ::😗 LISTEN
tcp6 0 0 ::1:631 ::😗 LISTEN
tcp6 0 0 ::1:25 ::😗 LISTEN
tcp6 0 0 ::1:6010 ::😗 LISTEN
real 0m0.007s
user 0m0.003s
sys 0m0.004s
[root@kgc ~]# time ss -atn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :111 :
LISTEN 0 5 192.168.122.1:53 :
LISTEN 0 128 :22 :
LISTEN 0 128 127.0.0.1:631 :
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 128 127.0.0.1:6010 :
ESTAB 0 0 192.168.91.101:43374 192.168.91.100:514
ESTAB 0 0 192.168.91.101:22 192.168.91.1:53036
LISTEN 0 128 :::111 :::
LISTEN 0 128 :::22 :::
LISTEN 0 128 ::1:631 ::😗
LISTEN 0 100 ::1:25 ::😗
LISTEN 0 128 ::1:6010 ::😗
real 0m0.017s
user 0m0.000s
sys 0m0.004s
lsof(List Open Files)是一个用于列出系统中打开文件的命令行工具。
它可以显示当前系统中打开的文件、目录、套接字、管道等资源,以及与它们相关联的进程信息。
常用的 lsof 命令选项和用法包括:
列出所有打开的文件和网络连接:lsof
列出指定进程ID(PID)打开的文件和网络连接:lsof -p
列出指定用户打开的文件和网络连接:lsof -u root
列出指定端口被哪些进程占用:lsof -i :22
以监听模式查看网络连接:lsof -i -sTCP:LISTEN
列出指定命令打开的文件:lsof -c ssh
lsof -i -a -p
在命令中,-i 参数表示只显示网络连接信息,-a 参数表示进行与查询条件的逻辑与操作,-p 参数表示指定要查询的进程ID。
输出结果简要说明:
COMMAND:进程名
PID:进程ID
TID:线程ID
USER:所属用户
FD:文件描述符。可能的值为“cwd 当前工作目录”,“rtd root目录”,“txt txt文件”,
“mem 内存映射文件”,“err 文件描述符信息错误”,“jld jail 目录(FreeBSD)”,
“Lnn 库文件相关(AIX)”,“Mxx 十六进制内存映射类型值”,“m86 DOS合并映射文件”,
“mmap 内存映射设备”,“pd 父目录”,“v86 vp/ix 映射文件”,“- 未知的或者被锁定的符号”,
“tr 内核跟踪文件(OpenBSD)”
TYPE:与文件关联的node类型。可能的值为“DIR 目录”,“REG 普通文件”,“CHR 字符”,“FIFO 管道通讯特殊文件”,“LINK 符号链接文件”,“unix UNIX域socket文件”,“inet 互利联网域套接字文件”,“IPv4 IPv4套接字文件”,“IPv6 IPv6套接字文件”,“DEL 被删除的文件的linux映射文件”,“DOOR VDOOR文件”,“KQUEUE BSD类型内核事件队列文件”等等。
DEVICE:设备编号,用逗号分割,用于特殊字符、特殊块、常规文件、目录和NFS文件
SIZE/OFF:文件大小以及文件偏移量
NODE:本地文件node编号
NAME:文件系统挂载点名称
[root@test1 opt]# lsof -i -P -a -p 1026
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1026 root 3u IPv4 22913 0t0 TCP *:22 (LISTEN)
sshd 1026 root 4u IPv6 22915 0t0 TCP *:22 (LISTEN)
-i 参数表示只显示网络连接信息,
-P 强制显示端口号
-a 参数表示进行与查询条件的逻辑与操作,
-p 参数表示指定要查询的进程ID
测试网络连接
测试网络连通性------ping
ping -c 5 www.baiducom ping5次百度自动退出,c次数,最常用的方式
-c:发送包的个数
-i:发送包的间隔时间
-W:超时时间
-w:多少秒后停止 ping 命令操作
跟踪数据包的路由途径------traceroute
测试从当前主机到目的主机之间经过的网络节点
raceroute 目标主机地址
测试DNS域名解析------nslookup
nslookup 目标主机地址 [DNS服务器地址]
[root@192 ~]# nslookup www.baidu.com
Server: 192.168.233.2 —服务器的dns地址
Address: 192.168.233.2#53 —53端口号
Non-authoritative answer: -----------dns的解析结果
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 180.101.49.11
Name: www.a.shifen.com
Address: 180.101.49.12
dig 可以显示出更多详细信息
[root@kgc ~]#dig www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40371
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 390 IN CNAME www.a.shifen.com.
www.a.shifen.com. 30 IN A 14.215.177.39
www.a.shifen.com. 30 IN A 14.215.177.38
;; Query time: 77 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 9月 23 22:02:04 CST 2021
;; MSG SIZE rcvd: 101
设置网络参数的方式
(一)、临时配置---------使用命令调整网络参数
1、简单、快速, 可直接修改运行中的网络参数
2、一般只适合在调试网络的过程中使用
3、系统重启以后,所做的修改将会失效
(二)、固定设置---------通过配置文件修改网络参数
1、修改各项网络参数的配置文件
2、适合对服务器设置固定参数时使用
3、需要重载网络服务或者重启以后才会生效
设置路由记录 route
(一)、添加到指定网段的路由记录
route add -net 网段地址 gw IP地址 dev ens33
route add -net 192.168.14.0/24 gw 192.168.233.21 dev ens33
#添加一个静态路由,将目标网络地址192.168.14.0/24通过网关192.168.233.21发送到网卡ens33。
这个命令会告诉操作系统在发送到目标网络192.168.14.0/24的数据包时,
应该通过指定的网关192.168.233.21进行中转,并通过网卡ens33进行发送。
(二)、删除到指定网段的路由记录
route del -net 网段地址
route del -net 192.168.14.0/24
(三)、向路由表中添加默认网关记录
route add default gw IP地址
(四)、删除路由表中默认的网关记录
route del default gw IP地址
(五)、永久添加路由(重启network服务生效)
vim /etc/sysconfig/static-routes
any net any gw 192.168.233.21: 将所有网络流量都路由到192.168.233.21网关
any net 192.168.3.0/24 gw 192.168.233.21: 将目的网络为192.168.3.0/24的所有流量路由到192.168.233.21网关
any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.233.21: 将目的网络为10.0.0.0的所有流量,使用掩码255.0.0.0,路由到192.168.233.21网关
any host 192.168.100.100 gw 192.168.233.21: 将目的IP为192.168.100.100的所有流量路由到192.168.233.21网关。
systemctl restart network
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码,可以设定 netmask 决定网域的大小
Flags 标记。一些可能的标记如下:
U — 路由是活动的,可以使用
H — 目标是一个主机,H 该路由是到一个主机,也就是说,
目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,
而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 转发的网络设备即虚拟网卡名称
网络接口配置文件
(一)、配置文件存在位置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #设置网卡类型,“Ethernet”表示以太网
DEVICE=ens33 #设置网卡的名称
ONBOOT=yes #设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static #设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址
IPADDR=192.168.80.3 #设置网卡的 IP 地址
NETMASK=255.255.255.0 #设置网卡的子网掩码
GATEWAY=192.168.80.2 #设置网卡的默认网关地址
DNS1=192.168.80.2 #设置DNS服务器的 IP 地
配置DNS域名解析服务器
修改DNS域名解析配置文件:vim /etc/resolv.conf
配置文件解析:
nameserver 192.168.233.21
#nameserver表示DNS服务器名称 8.8.8.8表示DNS解析服务器地址
修改完成后需要重启网卡服务:systemctl restart network
域名解析配置文件**
本地主机映射文件
/etc/resolv.conf
保存的是你DNS服务器的地址
/etc/hosts 文件
保存主机名与IP地址的映射记录
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.
192.168.91.100 www.yun.com
[root@kgc ~]#ping www.yun.com
PING www.yun.com (192.168.91.100) 56(84) bytes of data.
64 bytes from www.yun.com (192.168.91.100): icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=4 ttl=64 time=0.062 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=5 ttl=64 time=0.071 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=6 ttl=64 time=0.130
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.233.22
NETMASK=255.255.255.0
GATEWAY=192.168.233.2
DNS1=192.168.233.2
#TYPE:接口类型;常见有的Ethernet, Bridge
#PROXY_METHOD:此配置文件应用到的设备
#BROWSER_ONLY:
#BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
#DEFROUTE:
#IPV4_FAILURE_FATAL:
#IPV6INIT:
#IPV6_AUTOCONF:
#IPV6_DEFROUTE:
#IPV6_FAILURE_FATAL:
#IPV6_ADDR_GEN_MODE:
#NAME:此配置文件应用到的设备
#UUID:设备的惟一标识
#DEVICE:设备名
#ONBOOT:在系统引导时是否激活此设备
#IPADDR::
#NETMASK:
#GATEWAY:
#DNS1: