linux网络基础

1、硬件知识

1.1 网卡
 【作用】
通过网卡调制或接收不同的信号,在单位时间内调制解调出相应数量信号的个数
 【类型】
10M、100M、1000M
100Mbps等于每秒可以传输100M个bit
1.2 网线
 网线至少需要4根铜线,其中第1、2脚起着接收信号的作用,3、6起着发信号的作用
 【制作】
568A:俗称交叉线 绿橙蓝棕 46交换
568B:俗称直通线 橙绿蓝棕 46交换
 【注意】
直通线是用来连接地位不平等的设备的,像交换机连接电脑
交叉线是用来连接地位平等的设备的,像电脑与电脑
只要1236四根线是通的,其他的通不通都无所谓
1.3 HUB
 【功能】
多端口的转发器
 【特点】
多端口的信号放大设备,共享介质的局域网
 【缺点】
同一时刻只能一个方向传输数据
网络规模在10台一下
不能隔离冲突域和广播域
1.4 交换机
 【定义】
实现多台设备间相互通信的设备
 【特点】
工作在OSI的二层(数据链路层)
依据链路层的MAC地址,将以太网数据帧在端口之间进行转发
提供更多的接口,隔离冲突域
自行学习和维护MAC地址
 【缺点】
不能隔离广播域
1.5 路由器
 【功能】
实现不同网段之间的通信
 【特点】
隔离广播
提供丰富的接口类型
支持丰富的链路层协议

2、网络基础原理

2.1 OSI七层模型及TCP/IP四层模型的简单总结
linux网络基础
2.2 linux常用端口及对照的服务

端口号 服务名 作用
20 ftp 用于ftp的数据传输
21 ftp 用于控制文件传输信息的
22 ssh 用于远程加密连接
23 telnet 用于telnet远程连接 不加密
25 smtp 简单的邮件传输协议
53 DNS 域名解析服务
69 tftp 文件传输协议
80 h ttp 超文本传输协议
109 POP2 邮局协议2 用于接收邮件
110 POP3 邮局协议3 用于接收邮件
115 sftp 安全文件传输协议
123 ntp 网络时间同步协议
143 IMAP 用于接收邮件的
161 snmp 简单的网络管理协议
443 https 安全的超文本传输协议
873 rsync rsync文件传输服务
2049 nfs 网络文件系统
3306 mysql mysql数据服务

2.3 数据包的封装与解封装的过程图解
2.3.1 封装过程
linux网络基础
2.3.2 解封装过程
linux网络基础
2.4 TCP/UDP的总结
2.4.1 TCP
linux网络基础
 源端口:本地发起连接的端口(是随机分配的一般是大于1023的)
 目的端口:即要访问服务的端口(例如22/23等)
 序列号:因为在传输层会对上层的数据进行分段,因此需要对分段的数据进行编号,便于对数据的重组
 校验和:用于对数据进行验证
2.4.2 UDP
linux网络基础
 源端口与目的端口同上
2.4.3 TCP与UDP的对比

传输控制协议TCP 用户数据报协议UDP
面向连接 无连接
可靠传输 不可靠传输
传输大量数据 传输少量数据
传输数据速度慢 传输数据速度快

2.5 TCP的三次握手与四次断开详解
2.5.1 TCP的三次握手
linux网络基础
 【文字描述】
1.在最开始,客户端和服务器都处于CLOSE状态
2.在打开服务器时,服务器会创建scoket[源端口、目的端口、源IP、目的IP、TCP/UDP的标识符]开始监听,此时服务器处于LISTEN状态
3.客户端像服务器发送SYN、seq,请求建立连接,此时的状态处于SYN_SENT
4.服务器收到客户端的SYN,回复ack和syn报文,此时处于SYN_RECV或SYN_RCVD
5.客户端在收到服务端的SYN和ack后,马上恢复ack报文,此时处于ESTAB_LISHED
6.服务器收到客户端的ack后,会直接进入ESTAB_LISHED
 【抓包的详细过程】
linux网络基础
第一次握手:
客户端IP:192.168.124.1 服务器IP:192.168.124.129 Flags [s] seq 2957146164
第二次握手:
服务器IP:192. 168.124.129 客户端IP:192.168.124.1 Flags [s.] seq 46316550 ack 2957146165
第三次握手
客户端IP:192.168.124.1 服务器IP:192.168.124.129 Flags [.] ack 46316551
 【注意】
在三次握手的过程中可能会出现SYN泛洪的问题,产生的原因是在一端回应后,另一端不在进行回应,导致目标长期等待至超时,占用大量的目标资源,从而导致出现SYN泛洪问题
2.5.2 TCP连接的四次断开
linux网络基础
2.5.3 TCP的包头及常用字段的解释
linux网络基础
 ACK:表示验证字段
 SYN:位数置1,表示建立TCP连接
 FIN:位数置1,表示断开TCP连接
2.5.4 TCP11种状态转移总结
linux网络基础
2.6 访问网站的基本流程

2.6.1 图解
linux网络基础
2.6.2 文字的基本描述
 客户端在浏览器中输入www.baidu.com网站网址按回车后,系统会首先查询本地hosts文件和DNS缓存记录,若有IP地址解析记录,则直接返回IP然后访问网站。
 如果本地hosts文件和DNS缓存记录没有对应的IP地址解析记录,系统会把请求交给LDNS(即本地设置的DNS 像8.8.8.8等)进行解析,若LDNS中有相应的解析记录,则返回IP,如果没有,LDNS会请求其他的DNS服务器。
 LDNS经过一系列的请求,会找到网站的授权服务器,然后会把网站对应的IP返回给LDNS,并把域名对应的IP发送给客户端浏览器,并且LDNS会把域名对应的IP缓存起来,以便下次更快的返回相同的解析。
 客户端在接收到网站对应的IP后,会请求IP地址对应的Web服务器,并将网站对应的IP在本地进行DNS缓存,Web服务器接收到请求并响应处理,并将客户端请求的内容返回给客户端浏览器
2.2.7 DNS解析原理
linux网络基础

3、相关命令总结

3.1 windows相关的命令
C:\Users\Administrator>ipconfig /all 查看ip
Windows IP 配置
主机名 . . . . . . . . . . . . . : MS-20171106GPCB
主 DNS 后缀 . . . . . . . . . . . :

默认网关. . . . . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 486559830
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-21-92-06-7E-54-EE-75-6E-04-5
C:\Users\Administrator>ipconfig /displaydns 查看dns缓存
Windows IP 配置
get.sogou.com

记录名称. . . . . . . : get.sogou.com
记录类型. . . . . . . : 1
生存时间. . . . . . . : 137
数据长度. . . . . . . : 4
部分. . . . . . . . . : 答案

A (主机)记录 . . . . : 123.125.125.86
C:\Users\Administrator>ipconfig /flushdns 清空dns缓存
Windows IP 配置
已成功刷新 DNS 解析缓存。
3.2 linux相关的命令
 【查看地址解析】
================================ping==================================
[root@oldboy ~]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125: icmp_seq=1 ttl=128 time=19.0 ms
===================================dig================================
[root@oldboy ~]# dig @8.8.8.8 www.baidu.com +trace
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> @8.8.8.8 www.baidu.com +trace
; (1 server found)
;; global options: +cmd
. 17717 IN NS a.root-servers.net.

. 17717 IN NS l.root-servers.net.
. 17717 IN NS m.root-servers.net.

a.shifen.com. 1200 IN NS ns2.a.shifen.com.
;; Received 228 bytes from 61.135.165.235#53(61.135.165.235) in 54 ms
注意:用dig的时候也可以什么也不加,直接 dig 域名
=================================host==================================
[root@oldboy ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 61.135.169.125
www.a.shifen.com has address 61.135.169.121
===============================nslookup================================
[root@oldboy ~]# nslookup

baidu.com
Server: 192.168.124.2
Address: 192.168.124.2#53

Non-authoritative answer:
Name: baidu.com
Address: 111.13.101.208
Name: baidu.com
Address: 123.125.114.144
Name: baidu.com
Address: 220.181.57.217
【查看路由】
[root@oldboy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.124.2 0.0.0.0 UG 0 0 0 eth0
[root@oldboy ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.124.2 0.0.0.0 UG 0 0 0 eth0
[root@oldboy ~]# ip route show
192.168.124.0/24 dev eth0 proto kernel scope link src 192.168.124.129
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.124.2 dev eth0
[root@oldboy ~]# ip r s
192.168.124.0/24 dev eth0 proto kernel scope link src 192.168.124.129
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.124.2 dev eth0
【增加删除网关】 临时修改
[root@oldboy ~]# route del default gw 192.168.124.2
[root@oldboy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
[root@oldboy ~]# route add default gw 192.168.124.2
[root@oldboy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.124.2 0.0.0.0 UG 0 0 0 eth0
【增加删除路由】 临时修改
================================添加路由===============================
[root@oldboy ~]# route add -net 10.0.0.0/16 gw 192.168.124.2
[root@oldboy ~]# route add -host 10.0.0.1 dev eth0
================================删除路由===============================
[root@oldboy ~]# route del -net 10.0.0.0/16
[root@oldboy ~]# route del 10.0.0.1
============================增加默认路由===============================
[root@oldboy ~]# route del default gw 192.168.124.2
3.3 配置和查看网络相关的信息
 【ifconfig】
ifconfig [设备名] 查看网刊信息
ifconfig eth0: x ip/mask up 配置别名ip并启用
ifconfig eth0:x ip netmask 掩码 up 配置别名ip并启用
ifconfig eth0:x down 停用
配置别名永久生效的方法:编辑/etc/sysconfig/network-scripts/ifcfg-eth1:x
 【ip】
ip addr 查看网络网卡信息
ip addr add ip/mask dev eth0:x 一个网卡配置多个ip的方法
3.4 tcpdump
 【功能】一款强大的抓包工具
 【常用参数】

选项 参数说明
-i 是interface的含义,是指我们有义务告诉tcpdump希望去监听哪一个网卡。这在一台服务器有多块网卡时很有必要
-nn 意思是说当tcpdump遇到协议号或端口号时,不要将这些号码转换成对应的协议名称或端口名称。比如,众所周知21端口是FTP端口,我们希望显示21,而非tcpdump自作聪明的将它显示成FTP。
-X 告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。如果不进行原本的显示输出,当将收到的信息放入到其它专业分析包软件中分析时会有问题
-c 是Count的含义,这设置了我们希望tcpdump帮我们抓几个包。设置的是1,所以tcpdump不会帮我再多抓哪怕一个包回来
-w 将流量保存到文件中,tcpdump的-w方式是把raw packets(原始网络包)直接存储到文件中了,也就是存储的都是结构体形式,而非是分析之后的文本格式的信息,因此是无法直接通过less命令查看的。
-r 读取raw packets文件
-n 指明协议

 【应用实例】

[root@oldboy ~]# tcpdump tcp port 22 -c4 -i eth0 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:23:31.592883 IP 192.168.124.129.22 > 192.168.124.1.58274: Flags [P.], seq 3537615929:3537616125, ack 3597215233, win 304, length 196
18:23:31.593276 IP 192.168.124.1.58274 > 192.168.124.129.22: Flags [.], ack 196, win 256, length 0
18:23:31.595035 IP 192.168.124.129.22 > 192.168.124.1.58274: Flags [P.], seq 196:472, ack 1, win 304, length 276
18:23:31.597068 IP 192.168.124.129.22 > 192.168.124.1.58274: Flags [P.], seq 472:636, ack 1, win 304, length 164
4 packets captured
4 packets received by filter
0 packets dropped by kernel

[root@oldboy ~]# tcpdump tcp port 22 and host 192.168.124.129 -c2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:24:49.155438 IP 192.168.124.129.ssh > 192.168.124.1.58274: Flags [P.], seq 3537619685:3537619881, ack 3597218077, win 304, length 196
18:24:49.155970 IP 192.168.124.1.58274 > 192.168.124.129.ssh: Flags [.], ack 196, win 253, length 0
2 packets captured
2 packets received by filter
0 packets dropped by kerne

 

3.5 开启路由转发功能
[root@oldboy ~]# vim /etc/sysctl.conf 修改配置文件
# Controls IP packet forwarding

net.ipv4.ip_forward = 0  此项参默认是0  将其改为1即可
[root@oldboy ~]# sysctl -p  进行查看
赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏