文章目录
ping命令
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。flood泛宏,让网卡尽自己cpu的最大能力发icmp请求,而且不需要等待他回复
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
<p>-c 数目:在发送指定数目的包后停止。
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-I 网络界面:使用指定的网络界面送出数据包。
-l 前置载入:设置在送出要求信息之前,先行发出的数据包。
-p 范本样式:设置填满数据包的范本样式。
-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。65507包的最大值
-t 存活数值:设置存活数值TTL的大小。
常用操作
-b 相当于 发广播(主机为为0)
最大限度发包Ping -s 65507 ip地址 -f
(攻击)不等回复
1.ifconfig命令
依赖的包net-tools
最小化安装没这个命令
ifconfig -a 查看所有网卡(禁用的网卡也可以看到)
ifconfig IFACE [up|down] 禁用或启用网卡
ifconfig interface [aftype] options | address …
ifconfig IFACE IP/netmask 临时配置网络地址
ifconfig IFACE IP netmask NETMASK
1.禁用网卡 ifconfig 网卡名 down
-----网络层的down
开启网络ifconfig 网卡名 up
2.ifdown 网卡
-----数据链路层down
开启网络 ifup
重新启动网络服务service network restart
别名机制:临时地址
取消临时地址
永久生效写文件
在/etc/sysconfig/network-scripts/
如果在这个目录下没有这个网卡的配置可以手工写
DEVICE设备名
NAME在型界面下看到的名字
BOOTPROTO地址是手工配置none或者static,是dhcp自动获取(也就是IPADDR不会生效)
IPADDR:ip地址
PREFIX=24子网掩码 或者是 NETMASK=255.255.255.0
ONBOOT网卡是启用还是禁用
GATEWAY 网关
2.route命令
启用route服务
临时
/proc/sys/net/ipv4/ip_forward
改为1就启用
永久文件/etc/sysctl.conf中
2.1临时配置
路由管理命令
查看:route -n
添加:route add
删除:route del
Destination 目标
Gateway 网关:网络的关口
Genmask子网掩码
Iface接口:到达目标地址经过的网卡
网关:(下一跳next hop)需要和别的网络通信才需要配(同一网段不需要配置),也就是下一个路由器接口的ip地址(邻近的)
如果在一个网段的两个主机中间有一个路由器那么他们两个就ping不通 (路由器隔离了广播,收不到)
所以路由器隔开就可以配置为不同的网段,
添加网络地址
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默认路由,
未知网络(这两个网络处于网络的边缘)也就是有两个路由器可以,路由过多不可以,
中间路由不可加默认路由,只有边缘的才可以
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
仅主机路由:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
回环网卡:一般是255.0.0.0子网掩码,所以可以拼通好多127开头的网络,不需要加路由----不能和网络通信------自己连自己,配置路由eth为其下一跳(gateway)
2.2永久生效route路由
方法一:将路由扔到 /etc/rc.local文件
方法二:写配置文件/etc/sysconfig/network-scripts/route-IFACE
需service network restart生效
3.netstat命令
netstat通过遍历proc来获取socket信息
显示网络连接:
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID
-I(大i)监视网卡 与-i一样,只不过个性
-I=eth0 或者-Ieth0
ifconfig -s eth0
地址 一样
套接字有三种
Udp 的 ip+端口号 (有封装和解封装)
Tcp 的 ip+端口号
Unix域(domain) 以socket文件为主(方便)
常用组合:
-tan, -uan, -tnl, -unl
显示路由表:
-r: 显示内核路由表
-n: 数字格式
-i显示所有网络接口 Iface指定接口
显示接口统计数据:
netstat -i
后面的PX-ERR错误的 PX-DRP抛弃的 PX-OVR超过负载的
4.ip命令
配置Linux网络属性:ip 命令
Ip link
或者 ip l
查看链路层信息
Ip addr
或者ip a
查看可以看到数据链路层,网络层,地址等信息
可设置属性:
ifup/ifdown
激活或禁用指定接口
作用域
Global是内核级的:从任意接口进来,他的这个global都可以识别(全局可用)
Link是链路级的:从那个接口进来,只能被那个接口所识别(仅链接可用)
Host只能针对本机有效(本机可用)
ip addr add 172.16.100.100/16 dev eth0 label eth0:0添加别名
ip addr del 172.16.100.100/16 dev eth0 label eth0:0删除别名
ip addr flush dev eth0 label eth0:0
ip route - routing table management
查看路由ip route
添加路由:ip route add用ifconfig看不到
ip route add 192.168.0.0/24 via 172.16.0.1(这里的via表示网关)
添加默认路由( 10.0.0.1/8 改为default)
添加网关:ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
删除路由:ip route del TARGET
显示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
Metric路由费用,越小越优先
加路由metric
5.ss命令
**ss使用netlink与内核tcp_diag模块通信获取socket信息 **
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
TCP的常见状态:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport = 目标端口,协议
sport = 源端口,协议
示例:’( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
常见用法
ss -s列出当前socket详细信息
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established ‘( dport = :ssh or sport = :ssh )’ 显示所有已建立的ssh连接
ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立的HTTP连接
6.nmcli命令
地址配置工具:nmcli
Device主要是看数据链路层
Connection看网络层
修改IP地址等属性:
Con-name起名字
Ifname接口
Type 类型 以太网网卡等
Ipv4.method 设置地址方式
manual手工设置地址 auto是自动获取
Ipv4.Address 地址
ipv4.gateway
修改配置文件执行生效:systemctl restart network
nmcli con reload
nmcli命令生效:
nmcli con down eth0
nmcli con up eth0
nmcli配置网络
NeworkManager是管理和监控网络设置的守护进程
设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置,
但同时只有一个连接配置生效
显示所有包括不活动连接
nmcli con show
显示所有活动连接
nmcli con show --active
显示网络连接配置
nmcli con show "System eth0“
显示设备状态
nmcli dev status
显示网络接口属性
nmcli dev show eth0
创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
删除连接
nmcli con del default
创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type
Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
启用static连接配置
nmcli con up static
启用default连接配置
nmcli con up default
查看帮助
nmcli con add help
修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取 等价于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
nmcli con mod ifcfg-* 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses “192.168.2.1/24 192.168.2.254” IPADDR0=192.168.2.1PREFIX0=24GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . .
修改连接配置后,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活
图形工具
nm-connection-editor
字符工具
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
nmcli实现bonding
添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode
active-backup
添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
启动绑定
nmcli con up mybond0
7.tracerout命令
跟踪路由
用于探测目标是否可达—会跟踪数据到达马努表中经过的所有路由
-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。
8. tracepath命令
跟踪路由
相对于traceroute 多了一个(下一跳)
-n 不查看主机名字
-l 设置初始化的数据包长度,默认65535
9. mtr命令
mtr ip值
(在线跟踪的 q退出)
10.iptables命令
Ipdatables -A INPUT -s 192.168.245.129 -j DROP
拒接访问,drop直接丢弃
11.tcpdump
-c 指定抓包的数量
-i 就是指定网卡 如果不加-i 默认抓eth0
-w 抓到的包存到一个文件, 最后用 -r 读取文件
port(指定端口)
host 指定ip
tcpdump -nn tcp(协议类型) and(与) prot 22 //抓tcp协议和22端口 and就是增加
tcpdump -nn tcp and port 80 -i eth3 and host 192.168.0.105 -w 1.cap
只对名为hostname的主机的通信数据包
进行监视。
hostname,可以是任何主机
tcpdump -i eth0 src host hostname
监视所有送到
主机hostname的数据包:
tcpdump -i eth0 dst host hostname
tcpdump -i eth0 -nn prot 80
Prot 指定端口 80是http服务端口号
-nn以数字方式
tshark 抓包工具
yum install -y wireshark //下载
与tcpdump一样
-nn
-Y指定协议
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri" -i eth3
抓取80端口的http协议细节
tshark -s 1024 -i any -f 'tcp port 80' -V -Y 'http.request' -l
抓取mysql的
tshark -s 512 -i any -f 'tcp port 3306' -V -Y "mysql.query" -T fields -e mysql.query
centos下抓取http
tshark -s 10240 -i any -f 'tcp port 80' -V -R 'http.request' -l
ethtool
lsof查看当前谁在使用
getenforc 查看selinux状态
sestatus查看selinux状态