视频地址:
1.网络基础
1.1 ISO/OSI
1.1.1 基本概念
ISO:国际标准组织
OSI:开房系统互联模型
IOS:苹果操作系统;思科交换机系统
note
1.上三层给用户提供服务;下四层进行实际的传输
2.window计算机看实际的ip地址
(1)
ipconfig
(2)
ipconfig /all
在这里面有物理地址,物理地址实际上就是MAC地址
3.MAC地址负责内网通信;ip地址负责外网通信
1.1.2 每一层的作用
层 | 作用 |
---|---|
应用层 | 用户接口 |
表示层 | 数据的表现形式;特定功能的实现如加密 |
会话层 | 对应用会话的管理和同步 |
传输层 | 可靠与不可靠的传输;传输前的错误检测 ;流控 |
网络层 | 提供ip地址(源地址和目的地址);选择通路 |
数据链路层 | 成帧;用MAC地址访问媒介;错误检测与修正 |
物理层 | 比特流传输;物理接口;电气特性 |
表示层:
(1)翻译:将图像,语音等翻译为0101..;将010101..翻译为图片,语音,文字等形式
(2)实现加密等功能
举例:发送邮件
层 | 作用 |
---|---|
应用层 | 用文件编辑软件书写邮件,保存 |
表示层 | 将文字翻译ASCII码,中文翻译为GB2312;图片翻译为jpg等格式,最终都翻译为01串;同时可以实现文件加密和压缩 |
会话层 | 判断上面文件是否需要发送:如果文件为幻灯片,则直接保存;若文件为邮件,则传输给传输层进行下一步发送 |
传输层 | 写入邮件端口号(发送端口和接受端口);确定使用的协议(TCP/IP或者UDP) |
网络层 | 写入自己的ip地址和收件人的ip地址 |
数据链路层 | 负责在局域网中传送数据 |
物理层 | 利用网线和网卡传送数据信号 |
1.2 TCP/IP四层模型
层 | 与七层模型的对应关系 |
---|---|
应用层 | 应用层;表示层;会话层 |
传输层 | 传输层 |
网络互联层 | 网络层 |
网络接口层 | 数据链路层;物理层 |
对应关系
1.2.1 网络接口层
网络接口层负责监视数据在主机和网络之间的交换。事实上TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入册进行连接。
地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。
arp协议
1)作用
将ip地址翻译为MAC地址
2)原因
在不同局域网,传递信息靠ip识别;
在同一局域网内部,传递信息靠MAC地址识别—-当两台主机处于同一局域网时,信号靠交换机进行传递,但是交换机只能根据MAC地址进行传递。
3)步骤
交换机会记录接在交换机的每个端口的网卡的物理地址
在同一局域网上发送数据,点击发送,数据就会被发送到网线上,网线将数据发送到交换机上,交换机直接通过端口号进行发送数据
1.2.2 国际互联层
国际互联层对应于OSI模型中的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络中的逻辑传输。
该层主要有三个主要协议 :
网际协议(IP)
互联网组管理协议(IGMP)
互联网控制报文协议(ICMP)
1.2.3 传输层
为应用层实体提供端到端的通信功能,保证了数据包的顺序传送以及数据的完成性。
该协议层定义了两个主要的传输协议:
传输控制协议(TCP)
用户数据报协议(UDP)
1.TCP
TCP是面向连接的可靠协议
(1)面向连接- - -三次握手
为什么进行三次握手协议?
两军问题
(2)可靠
在三次握手过程中,会有信号的错误检查;
如果信号出现错误,那么主机A会重新发送一份信息。
2.UDP
优势:更加迅速
缺点:信息容易丢失
1.2.4 应用层
应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务
如:FTP,Telnet,DNS,SMTP
数据封装
TCP/IP模型与OSI模型的对比
共同点
(1) OSI参考模型和TCP/IP模型都采用了层次结构的概念
(2) 都能够提供面向连接和无连接两种通信服务机制
不同点:
(1)前者是四层结构,后者是七层结构
(2)对可靠性要求不同
(3)OSI模型是在协议开发之前设计的,具有通用性;TCP/IP先有协议集,然后建立模型,不适用于非TCP/IP网络
(4)实际应用情况不同
1.3 IP地址
1. IP包头
2. IP地址
(1)IP地址的范围
00000000.00000000.00000000.00000000
11111111.11111111.11111111.11111111
即 0.0.0.0~255.255.255.255
并不是所有的ip地址都是可用的
(2)IP地址分类
类网络 | 属于同一网络 | 不同主机 | 特殊说明 |
---|---|---|---|
A | 第一位相同 | 第二位,第三位,第四位 | 1.0.0.0代表网络本身,不能分配 ; 1.255.255.255代表当前网络的广播地址,不能分配 |
B | 第一位,第二位 相同 | 第三位,第四位 | - |
C | 第一位,第二位,第三位 相同 | 第四位 |
私有ip地址:用于内网ip,不需要花钱购买
3. 子网掩码
子网掩码决定了A,B,C类网络有不同的网关和主机个数。
ip地址必须跟子网掩码一起看,子网掩码的字段数,与ip的网络地址是对应的。
1)固定子网掩码
A类:
B类:
C类:
2)变长子网掩码
IP地址为B类地址;子网掩码为C类的子网掩码
1.4 端口作用
1)传输层完成的事情
确定采用的协议
确定端口号(发送端端口号和接受端端口号)
2)端口号是什么?
端口号类似于收件人;ip地址类似于门牌号。
通过对方的ip可以确定对方的服务器位置,但是服务器可能开启了很多服务。通过端口号来确定访问哪个服务
3)协议包头
TCP协议包头
UDP协议包头
TCP协议包头比UDP协议复杂,但是二者的端口号位数都相同。
4)常见端口号
FTP(文件传输协议) :20,21
SSH(安全shell协议):22
telnet(远程登录协议):23
DNS(域名系统):53
http(超文本传输协议):80
SMTP(简单邮件传输协议):25
POP3(邮局协议3代):110
5)查看本机启用的端口
netstat -an
LISTENING:开启了本机服务,即开启了端口
ESTABLISHED:已经存在连接
UDP没有LISTENING:UDP没有三次握手协议,是不可靠的协议
1.5 DNS作用
- DNS(名称解析协议)
- 在互联网中,通过IP进行通信
- IP通过数字计算,记忆起来太困难
- 人对域名更加敏感
1)hosts文件
作用
- 用于保存IP地址及对应的域名
- 优先于DNS服务器
缺点
- 名称解析效能下降
- 主机维护困难
2)DNS
优点
- 层次性
- 分布式
作用
域名空间结构
DNS查询过程
查询分类:
1.查询方式
递归查询
要么查询成功响应,要么做出查询失败的响应。一般客户机与本地域名服务器之间属于递归查询。迭代查询
服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射冠雄,也可以是其它DNS服务器的地址
2.查询内容
- 正向查询:由域名查找IP地址
- 反向查询:由IP地址查找域名
1.6 网关
定义
- 网间连接器、协议转换器
- 在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连
- 既可以用于广域网互连,也可以用于局域网互连
- 是一种充当转换重任的服务器或者路由器
解释
1)交换信息的工具
- 在局域网内传递信息
通过交换机(数据链路层)根据MAC地址进行交换 - 不在局域网传递信息时
通过网关传递信息
2)具有路由功能的设备
网关是硬件设备,一般情况下是路由器,但是也可以为搭建路由功能的服务器
3)
不同网络的内网ip可能相同,这时,不能直接访问公网,需要网关转换
网关的两个作用
- 网关在所有内网计算机访问的不是本网段的数据报时使用
- 网关负责将内网IP转换为公网IP,公网IP转为内网ip
2 网络配置
2.1 Linux配置IP地址
DHCP
DHCP(Dynamic Host Configuration Protocol)动态主机设置协议,是一个局域网的网络协议,主要有两个用途:
- 给内部网络或网络服务器供应商自动分配IP地址
- 给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
一般来说在工作中,都不会给你开启DCHP服务的,而是给你一个指定的IP。自动获取IP的命令是:
dhclient
工作环境中并不是很常用。
2.1.1 ifconfig命令临时配置IP地址
1.ifconfig运行结果
[centosvm@localhost ~]$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.199.232 netmask 255.255.255.0 broadcast 192.168.199.255
ether c4:34:6b:67:eb:ae txqueuelen 1000 (Ethernet)
RX packets 74297 bytes 65401915 (62.3 MiB)
RX errors 2 dropped 0 overruns 0 frame 1
TX packets 48479 bytes 6011523 (5.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf7c00000-f7c20000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 4 bytes 200 (200.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 200 (200.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:11:59:d9 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0-nic: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 52:54:00:11:59:d9 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2 . ifconfig运行结果解释
1.一共有四块网卡:eno1,lo,virbr0,virbr0-nic
2.
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.199.232 netmask 255.255.255.0 broadcast 192.168.199.255
ether c4:34:6b:67:eb:ae txqueuelen 1000 (Ethernet)
RX packets 74297 bytes 65401915 (62.3 MiB)
RX errors 2 dropped 0 overruns 0 frame 1
TX packets 48479 bytes 6011523 (5.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf7c00000-f7c20000
UP,BROADCAST,RUNNING,MULTICAST
第一行:
网卡状态 | 网卡的网线连接状态 | 是否支持广播 | 是否支持组播 | MTU(最大传输速率) |
---|---|---|---|---|
UP(开启) | RUNNING(连接) | BROADCAST(支持) | MULTICAST(支持) | 1500 |
第二行:网卡的IP地址、子网、掩码
IP地址 | 子网掩码 | 广播地址 |
---|---|---|
192.168.199.232 | 255.255.255.0 | 192.168.199.255 |
第三行:
连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
连接类型 | 硬件mac地址 |
---|---|
Ethernet | c4:34:6b:67:eb:ae |
第四、五行、六、七:接收、发送数据包情况统计
第八行:网卡的硬件地址 0xf7c00000-f7c20000
3.一般而言,只需要ip地址和子网掩码即可
3.ifconfig配置
ifconfig eno1 192.168.254.200 mask 255.255.255.0
2.1.2 setup工具永久配置IP地址
1.redhat
1)
setup
进入网络管理界面,配置IP地址和子网掩码
2)
重启网络管理器
service network restart
2. centos7
centos7已经不再使用setup工具来修改网络配置,而是使用nmtui
yum install NetworkManager-tui
NetworkManager restart
nmtui
2.1.3 修改网络配置文件
三个最重要的文件:
vi /etc/sysconfig/network-scripts/ifcfg-eno1
vi /etc/sysconfig/network
vi /etc/resolv.conf
1.网卡信息文件
1) 打开文件
vi /etc/sysconfig/network-scripts/ifcfg-eno1
运行结果
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno1
UUID=bfa67671-b23d-4f70-ba45-2e3d04362619
DEVICE=eno1
ONBOOT=yes
DNS1=192.168.241.1
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
左边 | 值 | 含义 |
---|---|---|
TYPE | Ethernet | 类型为以太网 |
BOOTPROTO | dhcp | 是否自动获取IP(none,static- -静态获取,dhcp- -自动获取) |
ONBOOT | yes | 随着当前网络服务启动,eno1会生效 |
UUID | bfa67671-b23d-4f70-ba45-2e3d04362619 | 唯一标识码 |
DNS1 | 192.168.241.1 | DNS服务器地址 |
IPV6INIT | yes | IPV6启动 |
2)
CentOS7用Vim
把/etc/sysconfig/network-scripts/ifcfg-enoxxxx中的内容改为
TYPE=Ethernet
BOOTPROTO=static
NAME= 网卡设备名
ONBOOT=yes
IPADDR= IP
NETMASK= 子网掩码
GATEWAY= 网关
DNS1= DNS
2 . 主机名文件
1)打开
vi /etc/sysconfig/network
默认为:
NETWORKING=yes
HOSTNAME=localhost.localdomain
或者空文件
2)修改主机名
1>永久修改,但是需要重启系统后才能生效
NETWORKING=yes
HOSTNAME=imooc
2>临时修改
hostname imooc
3)查询主机名
hostname
3. DNS配置文件
1)打开文件
vi /etc/resolv.conf
结果
generated by /usr/sbin/dhclient-script
search lan
nameserver 192.168.199.1
输入 :quit<Enter> 退出 Vim 1,1 全部
2)解释
左边 | 值 | 注释 |
---|---|---|
nameserver(即DNS) | 192.168.199.1 | DNS为192.168.199.1 |
serch | lan | 若没有写全域名,lan就是默认的域名 |
2.2 虚拟机网络参数配置
1)
setup
配置ip地址
2)启动网卡
vi /etc/sysconfig/network-scripts/ifcfg-eno1
中设置
ONBOOT=yes
3)重启网络服务
service network restart
4)修改UUID
1>
vi /etc/sysconfig/network-scripts/ifcfg-eno1
删除MAC地址行
2>
rm -rf /etc/udev/rules/d/70-persostent-net.rules
删除网卡和MAC地址绑定文件
3>
shutdown -r
重启系统
3. Linux 网络命令
3.1 网络环境查看命令
1.
ifconfig
- 作用: 查看与配置网络状态命令
- 在Linux下需要配置IP,子网掩码,网关和DNS才能连接网络
但是该命令只能看见IP和子网掩码
2.
ifdown 网卡设备名
- 作用:禁用该网卡设备
ifup 网卡设备名
- 作用:启用该设备网卡
3.
netstat 选项
选项:
-t:列出TCP协议端口
-u:列出UDP协议端口
-n:不使用域名和服务器,而使用IP地址和端口号
-l:仅列出在监听状态网络服务
-a:列出所有的网络连接
常用的选项:
1)
netstat -tuln
2)
netstat -an
3)
netstat -an|grep ESTABLISHED
4)
查看现在共有多少条连接
netstat -an|grep ESTABLISHED|wc -l
5)显示路由列表
netstat -rn
4.route命令
1)
用于查看路由列表
route -n
2)
route add default gw 192.168.199.2
用于设置默认网关
步骤:
1>
route -n
得到如下结果
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.199.1 0.0.0.0 UG 100 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.199.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
有第一行看出,默认网关为192.168.199.1,即自己的子网属于192.168.199.0网络,要重新设置网关,只需要设置子网为192.168.199.X
2>
route add default gw 192.168.199.2
3>
[root@localhost centosvm]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.199.2 0.0.0.0 UG 0 0 0 eno1
0.0.0.0 192.168.199.1 0.0.0.0 UG 100 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.199.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
可以看出,网关此时为两个 192.168.199.2和 192.168.199.1
3.2 网络测试命令
3.2.1 ping
ping [选项] ip或域名 c 次数
用于判断本机和对方是否可以连通
3.2.2 Telnet
telnet [域名或IP] [端口]
可以用于端口探测
3.2.3 traceroute
traceroute 域名或IP
3.2.4 wget命令
wget 网址
下载软件包
3.2.5 tcpdump命令
tcpdump -i eno1 -nnX port 21
意思是监听eno1网卡,IP和端口,21端口号
选项:
-i 指定网卡接口
-nn 将数据包的域名与服务转为IP和端口
-X 以16进制
port 监听指定的端口
用于抓包
4 远程登陆工具
4.1 SSH协议原理
4.1.1 加密算法
对称加密
加密和解密都采用同样的密码或者密钥。
非对称加密
公钥和私钥
4.1.2 SSH安全外壳协议
4.1.3 SSH命令
1 SSH命令
ssh 用户名@ip
远程管理指定Linux服务器
1.若Linux远程连接另外一台Linux系统
1)
ssh root@192.168.0.253
尝试连接,若成功
2)
下载公钥 yes
输入对方密码:**
登陆对方计算机成功
3)
exit
退回到本机
2.
若连接远程服务器成功
1>
pwd
显示内容
/home/centosvm
2>
[root@localhost centosvm]# ls -a
. Linux网络管理(1).md
.. Linux网络管理.md
.adobe lnmp1.1-full.tar.gz
Anaconda3-4.4.0-Linux-ppc64le.sh.part .local
.bash_history .macromedia
.bash_logout .mozilla
.bash_profile .mplayer
.bashrc .oracle_jre_usage
.bashrc.swp .pki
.cache Python-3.5.1
Coding pythonCode
.config sign32.dot
curl-7.54.0 .ssh
download test
eos_platform_7.5_install.log .viminfo
.esd_auth .wine
GCC 公共
git-2.13.0 模板
git-2.3.0 视频
.gnupg 图片
.ICEauthority 文档
.java 音乐
lantern-installer-64-bit.deb 桌面
里面有一个文件.ssh
3>打开ssh
cd .ssh/
显示
known_hosts
4>在文件中有一个
IP地址以及对应的密钥
若系统被重装或者IP地址发生改变,则该段命令无效,重新连接系统,会重新下载密钥
2 SCP命令
下载文件
scp [-r] 用户名@ip:文件路径 本地路径
上传文件
scp [-r] 本地文件 用户名@ip:上传路径
4.2 Linux远程登陆工具 SecureCRT- - -windows远程连接Linux系统
windows本身不支持SSH,但是有众多的第三方软件。
SecureCRT是最常用的一个软件。
Linux需要做的事情
首先查看ssh服务是否已经启动
netstat -antulp | grep ssh
如果有sshd此选项,只需开启防火墙即可。
若没有sshd选项:
1)安装SSH
yum install openssh-server
2)
确认SSH是否安装
chkconfig --list sshd
3)修改配置文件
vi /etc/ssh/sshd_config
将文件中的
#port 22
的’#’号去掉
保存退出
4)重启SSH
systemctl start sshd
或者
/etc/init.d/sshd restart
5)设置sshd开机自启动
chkconfig --add sshd
6)关闭防火墙
iptables -F
windows需要的事情
1)下载SecureCRT破解版,并安装破解
2)点击快速连接,输入IP地址,端口,进行connect
输入用户名和密码,进行登入
3)修改SecureCRT的默认配置
- Options->Sessions Options->Emulation->Terminal:Linux
- Options->Sessions Options->Appearance->Font
Font中设置中文字体为GB2312 - Options->Sessions Options->Appearance->Character encoding
UTF-8
4.3 XShell和WinSCP工具
XShell:用于远程管理工具,类似于SecureCRT
WinSCP:Linux和windows之间传递文件数据。将数据直接拖拽即