网络基础与进阶(二)
2024-09-18 22:48:50 5 举报
AI智能生成
"网络基础与进阶(二)" 是一门关于计算机网络原理和实践的高级课程,旨在帮助学生深入理解网络拓扑、网络协议、网络安全等方面的知识。课程涵盖了诸如TCP/IP协议、交换机与路由器、VPN技术等核心内容,并引入了实际的网络设备进行操作实践。通过本课程的学习,学生将能够设计和优化网络架构,解决实际网络问题,为将来的职业生涯打下坚实的基础。
作者其他创作
大纲/内容
11 TCP 11种状态
三次握手的状态
https://www.processon.com/view/link/6245136a5653bb072bce3259
四次挥手状态
第十一种状态
核心必会: CLOSED,ESTABLISHED,LISTEN监听,TIME_WAIT,CLOSE_WAIT
逐渐掌握: FIN_WAIT1,FIN_WAIT2,CLOSING,SYN_SENT,LAST_ACK
逐渐掌握: FIN_WAIT1,FIN_WAIT2,CLOSING,SYN_SENT,LAST_ACK
抓包
数据传输背后发生了什么.
运维必会技能
运维必会技能
抓包工具
wireshark过滤器规则(七层)
协议
icmp (ping 数据包) tcp udp http arp https (过滤https数据包:tls)
端口
tcp.port == 80
udp.port == 53
#src source 源
tcp.srcport == 80 #过滤出源端口80
tcp.dstport == 80 #过滤目标端口80
#src source 源
udp.srcport == 53
udp.dstport == 53
udp.port == 53
#src source 源
tcp.srcport == 80 #过滤出源端口80
tcp.dstport == 80 #过滤目标端口80
#src source 源
udp.srcport == 53
udp.dstport == 53
ip
ip.addr == 39.156.66.10 #过滤出源ip或目标ip是 10.0.0.200 数据包
#ip.src表示源ip
ip.src == 10.0.0.200 #过滤出源ip10.0.0.200 数据包
#ip.dst表示目标ip
ip.dst == 10.0.0.200 #过滤出目标ip10.0.0.200 数据包
#ip.src表示源ip
ip.src == 10.0.0.200 #过滤出源ip10.0.0.200 数据包
#ip.dst表示目标ip
ip.dst == 10.0.0.200 #过滤出目标ip10.0.0.200 数据包
比较大小
== <= < >= > !=
与或非
and or && || !#取反
案例
#过滤源IP是虚拟机(10.0.0.200) 并且目标端口是80的数据包
测试语句:curl www.baidu.com
ip.addr == 10.0.0.200 && tcp.dstport == 80
测试语句:curl www.baidu.com
ip.addr == 10.0.0.200 && tcp.dstport == 80
tcpdump 过滤(四层)
tcpdump -i ens33 #指定网卡 如果有多块网卡的时候需要指定。
tcpdump icmp #过滤协议
tcpdump -vvv -nnn icmp #IP 地址和端口号都以数字形式显示,没有进行任何解析。而-vvv参数使得输出更加详细
tcpdump -nnn port 80 # #过滤指定端口号 80端口
tcpdump -nnn src port 80 # 源
tcpdump -nnn dst port 80 # 目
tcpdump -nnn host 10.0.0.200 #抓住指定主机
tcpdump -nnn src host 10.0.0.200 and port 80 #抓取指定ip和端口的数据包
tcpdump -nnn dst host 10.0.0.200 and port 80
#组合 过滤出 端口是80 并且 ip地址是10.0.0.200
and #并且
or #或者
! #取反
tcpdump icmp #过滤协议
tcpdump -vvv -nnn icmp #IP 地址和端口号都以数字形式显示,没有进行任何解析。而-vvv参数使得输出更加详细
tcpdump -nnn port 80 # #过滤指定端口号 80端口
tcpdump -nnn src port 80 # 源
tcpdump -nnn dst port 80 # 目
tcpdump -nnn host 10.0.0.200 #抓住指定主机
tcpdump -nnn src host 10.0.0.200 and port 80 #抓取指定ip和端口的数据包
tcpdump -nnn dst host 10.0.0.200 and port 80
#组合 过滤出 端口是80 并且 ip地址是10.0.0.200
and #并且
or #或者
! #取反
⚠ ❌ tcpdump无法过滤出7层的数据包 http 需要指定端口号过滤并保存,然
后通过wireshark查看.
后通过wireshark查看.
对比
分析与定位网络问题
客户机 服务器
小鲨鱼(抓包) tcpdump(抓包)
#开启禁ping
防火墙 (安全组) 测试: echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
#恢复禁ping
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
小鲨鱼(抓包) tcpdump(抓包)
#开启禁ping
防火墙 (安全组) 测试: echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
#恢复禁ping
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
tcpdump + wireshark抓包流程
tcpdump -vvv -nn -i eth0 port 80 or port 53 -w test.txt
sz test.txt
远程连接失败与抓包分析
小结
网卡配置(ip,dns)
网卡命名
结论: 工作有需求的时候再去修改. 做好记录,后面使用的时候参考即可
方法01:安装完成系统
麒麟
sed -ri.bak '/\t+linux/s#$# net.ifnames=0 biosdevname=0#g'
/boot/grub2/grub.cfg
/boot/grub2/grub.cfg
#修改网卡配置文件
NAME=eth0
DEVICE=eth0
#改文件名
mv
# 重启
NAME=eth0
DEVICE=eth0
#改文件名
mv
# 重启
Ubuntu
sed -i '/linux.*vmlinuz/s#$# biosdevname=0
net.ifnames=0#g'
net.ifnames=0#g'
#2.修改网卡配置文件内容
sed -i 's#ens33#eth0#g' /etc/netplan/00-installerconfig.yaml
#3.重启系统
sed -i 's#ens33#eth0#g' /etc/netplan/00-installerconfig.yaml
#3.重启系统
安装系统的时候修改
安装系统的时候选择第1个然后按tab键. 在最后写入 net.ifnames=0
biosdevname=0
biosdevname=0
网卡配置文件
红帽类系统
/etc/sysconfig/network-scripts/ifcfg-eth0 或 ifcfgens33
TYPE=Ethernet # 网络类型,就是一个Ethernet 以太网
PROXY_METHOD=none #none/static
BROWSER_ONLY=no
BOOTPROTO=none # 手动、固定ip #dhcp 自动获取
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=eth0 #网卡名字
DEVICE=eth0 #设备名字
UUID=c21147b3-6922-4a3a-b7c6-09f6de870496 #每个设备1个唯一的id号,全球唯一
ONBOOT=yes #网卡是否开机是否自启动,网卡重启后是否自启动 #reboot #systemctl restart network
IPADDR=10.0.0.200 #ip地址
PREFIX=24 #PREFIX或NETMASK子网掩码:控制局域网中最多有多少台机器
GATEWAY=10.0.0.2 #网关
DNS1=223.5.5.5 # DNS1
DNS2=223.6.6.6 # DNS2
IPV6_PRIVACY=no # ipv6
PROXY_METHOD=none #none/static
BROWSER_ONLY=no
BOOTPROTO=none # 手动、固定ip #dhcp 自动获取
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=eth0 #网卡名字
DEVICE=eth0 #设备名字
UUID=c21147b3-6922-4a3a-b7c6-09f6de870496 #每个设备1个唯一的id号,全球唯一
ONBOOT=yes #网卡是否开机是否自启动,网卡重启后是否自启动 #reboot #systemctl restart network
IPADDR=10.0.0.200 #ip地址
PREFIX=24 #PREFIX或NETMASK子网掩码:控制局域网中最多有多少台机器
GATEWAY=10.0.0.2 #网关
DNS1=223.5.5.5 # DNS1
DNS2=223.6.6.6 # DNS2
IPV6_PRIVACY=no # ipv6
DNS配置文件
网卡配置文件DNS1 DNS2 优先.重启网卡后会覆盖/etc/resolv.conf文件
/etc/resolv.conf 实时生效
/etc/resolv.conf 实时生效
#生效
systemctl restart network #centos
ifdown ens33 && ifup ens33 #kylin
systemctl restart network #centos
ifdown ens33 && ifup ens33 #kylin
debian/ubt
/etc/netplan/00-installer-config.yaml(注意缩进)
network:
ethernets:
eth0: #网卡名字
addresses:
- 10.0.0.202/24 #ip/子网掩码 10.0.0.202/24
nameservers:
addresses:
- 223.5.5.5 #dns1
- 223.6.6.6 #dns2
search: []
routes:
- to: default
via: 10.0.0.2 #默认网关
version: 2
ethernets:
eth0: #网卡名字
addresses:
- 10.0.0.202/24 #ip/子网掩码 10.0.0.202/24
nameservers:
addresses:
- 223.5.5.5 #dns1
- 223.6.6.6 #dns2
search: []
routes:
- to: default
via: 10.0.0.2 #默认网关
version: 2
#生效
netplay apply
netplay apply
hosts文件
经常用于搭建网站,配置临时域名解析(主要用于测试)
linux
/etc/hosts
windows
c:\windows\system32\drivers\etc\hosts
window键+r输入drivers 然后找etc hosts
网络管理命令
检查端口
(本机)
方法01 推荐
ss -lntup |grep 22
ss -lntu # -p表示显示端口对应的进程的信息。
方法02
netstat -lntup |grep -w 22 # grep -w 精确过滤. grep -w oldboy #oldboya oldboy aceoldboy 被排除
方法03
lsof -i :22
lsof -ni :22 # -n 不要把ip反向解析为主机名、域名。
lsof -nPi :22 # -P 不要把端口解析为对应的服务。
方法01 推荐
ss -lntup |grep 22
ss -lntu # -p表示显示端口对应的进程的信息。
方法02
netstat -lntup |grep -w 22 # grep -w 精确过滤. grep -w oldboy #oldboya oldboy aceoldboy 被排除
方法03
lsof -i :22
lsof -ni :22 # -n 不要把ip反向解析为主机名、域名。
lsof -nPi :22 # -P 不要把端口解析为对应的服务。
(远程)
#方法01
telnet 10.0.0.200 22 #命令行中推荐使用,检查是否有connected 标记。
#方法02 #nmap 网络扫描工具。 #nmap进阶使用
nmap -p22 10.0.0.200 nmap -p1-1024 10.0.0.200
nmap -p80,443,22 baidu.com jd.com 10.0.0.204 nmap -p22 10.0.0.0/24 jd.com taobao.com
PORT STATE SERVICE
22/tcp open ssh #nmap结果中只要有 端口 open就是开启 。
#方法03 nc netcat ncat
nc -v 10.0.0.200 22 #这个一般用于shell脚本中检查端口是否开启。
#方法01
telnet 10.0.0.200 22 #命令行中推荐使用,检查是否有connected 标记。
#方法02 #nmap 网络扫描工具。 #nmap进阶使用
nmap -p22 10.0.0.200 nmap -p1-1024 10.0.0.200
nmap -p80,443,22 baidu.com jd.com 10.0.0.204 nmap -p22 10.0.0.0/24 jd.com taobao.com
PORT STATE SERVICE
22/tcp open ssh #nmap结果中只要有 端口 open就是开启 。
#方法03 nc netcat ncat
nc -v 10.0.0.200 22 #这个一般用于shell脚本中检查端口是否开启。
检查tcp连接状态
ss -ant
netstat -ant
netstat -ant
企业案例: 每种状态的次数. sort+uniq
网络速度
总体速度
top/htop
iotop
iftop 2s 10s 40s数据传输平均速度
iftop -n #ip反向解析为域名/主机名
iftop -i 指定网卡. 默认eth0 第1个网卡.
iftop -P 显示端口
iftop -N 不要把端口解析为服务名字
最终使用.
iftop -nNBP -i eth0 #显示端口号,不要把ip解析为域名,不要把端口解析为服务, 监视指定网卡eth0
iftop -nNBP -i eth0 -t -s 1 # iftop非交互模式 方便进行过滤与处理. # -B以字节为单位进行显示,默认是位
iotop
iftop 2s 10s 40s数据传输平均速度
iftop -n #ip反向解析为域名/主机名
iftop -i 指定网卡. 默认eth0 第1个网卡.
iftop -P 显示端口
iftop -N 不要把端口解析为服务名字
最终使用.
iftop -nNBP -i eth0 #显示端口号,不要把ip解析为域名,不要把端口解析为服务, 监视指定网卡eth0
iftop -nNBP -i eth0 -t -s 1 # iftop非交互模式 方便进行过滤与处理. # -B以字节为单位进行显示,默认是位
进程流量
方法01: iftop,ss,ps 一起使用
iftop找出端口.
ss找出端口对应的进程号(pid)
ps根据pid过滤进程名字.
方法02: nethogs
nethogs
方法03:ntop 可以用docker部署或二进制
https://www.ntop.org/get-started/download/
iftop找出端口.
ss找出端口对应的进程号(pid)
ps根据pid过滤进程名字.
方法02: nethogs
nethogs
方法03:ntop 可以用docker部署或二进制
https://www.ntop.org/get-started/download/
DNS解析
dig www.baidu.com
host www.baidu.com
nslookup www.baidu.com
host www.baidu.com
nslookup www.baidu.com
追踪命令
#01 两点之间.
ping baidu.com
#02
#tracert(windows) traceroute (linux yum install -y traceroute)
traceroute -nI www.baidu.com #默认使用udp协议,-I使用icmp协议icmp表示使用ping.
[c:\~]$ tracert -d www.baidu.com
#03 fping批量检查ip或域名
fping 10.0.0.2 baidu.com jd.com taobao.com 12306.cn
fping -f url.txtc
ping baidu.com
#02
#tracert(windows) traceroute (linux yum install -y traceroute)
traceroute -nI www.baidu.com #默认使用udp协议,-I使用icmp协议icmp表示使用ping.
[c:\~]$ tracert -d www.baidu.com
#03 fping批量检查ip或域名
fping 10.0.0.2 baidu.com jd.com taobao.com 12306.cn
fping -f url.txtc
命令小结
查看路由
route -n
ip r
ip r
IP-了解
https://www.sojson.com/convert/subnetmask.html
https://www.36130.com/subnetmask/
https://www.36130.com/subnetmask/
0 条评论
下一页