目录
ss (socket statistics)查看网络连接情况
查看网络配置
ifconfig 查看网络接口信息
单独执行 ifconfig 命令,将会显示所有活动的网络接口信息;加上网络接口,则指定查看该网络接口信息。
其中,“ens33”中的“en”是“EtherNet”的缩写,表示网卡 以太网(局域网中的一种) 互联网
类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号。
ifconfig 常用格式
ifconfig 具体网卡名称 #只显示具体网卡的详细信息(无论该网卡是否使用)
ifconfig -a #表示显示所有网卡包括没有启动的网卡
ifconfig -s #显示网络通讯情况
ifconfig 网卡名称 [up|down] #表示开启或关闭网卡
ifconfig 网络接口 ip地址 [netmask 子网掩码] #临时设置IP地址
ifconfig ens33:0 地址 #设置临时虚拟网卡
Linux默认网卡文件位置与相关配置
/etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet #接口类型
BOOTPROTO=static #地址获取方式 手动配置 dhcp 动态获取NAME=ens35 #网卡名称
DEVICE=ens35 #网卡
ONBOOT=yes #开机是否自启 开启
IPADDR=172.16.26.45 #地址
NETMASK=255.255.0.0 #子网掩码
GATEWAY=17216.26.2 #网关
DNS1=8.8.8.8 #将ip地址转换成 域名
IP (link 或 a)也可以查看网络接口信息
ethtool 查看网卡信息
ethtool -i ens33
ethtool -p ens33 使ens33 网卡快速闪烁。
修改网卡名称
临时修改
- 先将网卡 down掉 IP link set ens35 down
- 改名 IP link set ens35 name eth1
- 启动 IP link set eth1 up
永久修改
方法一:
方法二:
hostname 查看,修改主机名
临时修改
hostname 名字 hostname zyl
永久修改
方法一:通过修改/etc/hostname文件来修改主机名 方法二:通过hostnamectl来修改主机名
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地址
netstat 查看网络连接情况
当服务不能用 ,ftp httpd网页无法访问时
- 一般先ping 看能不能通,如果网络不通则网络调通看防火墙是否关闭 抓包查看。
- 看看你的服务是否开启 syetemctl status 服务名。
- ss netstat 看看你的服务端口是否被占用 。
- 最后看你 服务的配置文件是否正确。
netstat 选项:
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n:以数字的形式显示相关的主机地址、端口等信息
-r:显示路由表信息
-l:显示处于监听(Listening)状态的网络连接及端口信息
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限
[root@localhost ~]#systemctl start httpd
[root@localhost ~]#netstat -ntap |grep 80
tcp6 0 0 :::80 :::* LISTEN 10379/httpd
[root@localhost ~]#netstat -ntap |grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1057/sshd
tcp 0 0 192.168.91.100:22 192.168.91.1:50728 ESTABLISHED 1707/sshd: root@pts
tcp 0 52 192.168.91.100:22 192.168.91.1:60503 ESTABLISHED 10224/sshd: root@pt
tcp 0 0 192.168.91.100:22 192.168.91.1:60708 ESTABLISHED 9609
ss (socket statistics)查看网络连接情况
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软件包的一部分,默认已经安装。
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 显示主机中所有活动的网络连接信息
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。
ping icmp 协议
详见 https://blog.csdn.net/luhuiling852/article/details/133855641?spm=1001.2014.3001.5502
traceroute 路由追踪
格式:traceroute IP地址
nslookup 域名解析
格式:nslookup 域名
dig 可以更详细显示信息
永久修改网络相关配置文件
网络配置文件:vim /etc/sysconfig/network-scripts
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 #网卡名称
UUID=45978760-8495-499f-b1eb-b3e880565ca8
DEVICE=ens33 #网卡获取地址模式 none dhcp
ONBOOT=yes #开机是否自启动
IPADDR=172.16.26.30 #配置IP地址子网网关还有dns服务器
NETMASK=255.255.255.0
GATEWAY=172.16.26.2
DNS1=8.8.8.8
DNS2=114.114.114.114
#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:
tcpdump 抓包工具
proto(协议) | dir(数据的方向) | type(抓取数据类型) |
tcp udp icmp | src | host 主机 |
ip ipv6 | dst | net 网段 |
arp | src and dst | port 端口 |
—— | —— | port range 端口范围 |
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:-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<数据包文件> 把数据包数据写入指定的文件。
tcpdump可以直接使用也可以加 -i 指定网卡
输出格式讲解:
第一列:时分毫秒 18:54:50.212572
第二例:网络协议ip
第三列:发送方IP地址+端口号 ip地址:172.16.26.1 端口号:58402 >表示数据流向
第四列:主机名协议 主机名:localhost.localdomain 协议:ssh
第五列: seq号 ack号 win窗口长度 tcp的标志位
过滤规则
基于IP地址/网段过滤
host选项:
主机2 ping 主机1
dst 选项 目的地址![](https://i-blog.csdnimg.cn/blog_migrate/6780dc15ce61c6c9f2fe83540bb1fe1e.png)
src 选项 源地址
net 选项
控制方向
基于端口过滤
port 端口号
tcpdump port 80
[root@localhost ~]#tcpdump -i ens33 port 80
[root@localhost ~]#tcpdump -i ens33 src port 80 or port 22
[root@localhost ~]#tcpdump -i ens33 dst port 80 or port 22
范围的端口
[root@localhost ~]#tcpdump -i ens33 portrange 80-8080 #80 和 22 端口
[root@localhost ~]#tcpdump -i ens33 src portrange 80-8080
[root@localhost ~]#tcpdump -i ens33 dst portrange 80-8080
基于协议
应用层协议不可以直接抓取
[root@localhost ~]#ping www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp
多网卡绑定
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。
/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
/etc/sysconfig/network-scripts/ifcfg-ens33
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-ens35
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
————————————————————————————
vim ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.91.22
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim ifcfg-ens35
NAME=ens35
DEVICE=bond0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
PNBOOT=yes
[root@localhost network-scripts]#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:fe:e5:bf
Slave queue ID: 0
查看bond0状态:
/proc/net/bonding/bond0
删除bond0:
ifconfig bond0 down
rmmod bonding