文章目录
1、网络通信
-
计算机通信是面向计算机和数据终端之间的一种通信方式,可以实现计算机与计算机之间、人与计算机之间的数据生成、存储、处理和传递,要求处于不同地理位置的计算机能够知道对方的存在,才能互相传递消息、共享资源
-
网络协议是计算机网络之间进行数据交互而建立的一种规则
2、OSI七层模型(开放系统互联参考模型)
网络层次的划分是为了让不同的计算机厂家,生产出的计算机都能够互相通信,也能够在大范围之间进行计算机网络交互
OSI模型 | 层概念 | 层功能 | 协议 |
应用层 | 最接近用户的应用层 | 提供文件传输,邮件服务、文件共享、数据加密等 | http、ftp、stmp、dns、nfs等 |
表示层 | |||
会话层 | |||
传输层 | 传输 | 提供端对端的接口 ip port | TCP、UDP |
网络层 | 网络 | 为数据包选择路由 | IP、ICMP、BGP协议等 |
数据链路层 | 物理链路层 | 以二进制的数据形式在物理媒介上进行数据传输 | ISO@2100 |
物理层 |
-
应用层
-
主要是通过进程间的数据交互来完成特定的网络应用
-
对于不同的网络应用需要用不同的网络协议,如域名解析协议(DNS),邮件传输协议(SMTP)
-
域名解析协议(DNS domain name system),是互联的一个分布式数据库,主要存储ip和域名的对应关系,能够让普通用户更放便的使用、访问互联网
-
Http超文本传输协议,初衷是为了方便发布和接收html文件的目的
-
-
传输层
-
向两台主机之间的进程提供数据传输
-
常用协议
-
TCP(传输控制协议):提供面向连接的,可靠的数据传输服务
-
UDP(用户数据协议):提供面向无连接的,不保证数据安全性
-
-
3、ifconfig(只能用root用户操作)
用于配置网卡ip地址信息等网络参数或者查看显示网络接口信息,还能够临时性的配置ip地址、子网掩码、广播地址、网关信息等
-
使用
man ifconfig或ifconfig -h
查看ifconfig用法 -
查看网络地址信息(docker0是一个网卡)
-
ifconfig
查看所有网络接口信息 -
ifconfig docker0
查看指定的网卡信息
-
-
开启或关闭网卡,谨慎使用
-
ifconfig docker0 down
-
ifconfig docker0 up
-
-
设置ip地址
-
ifconfig docker0:0 192.168.81.151 netmask 255.255.255.0 up
:添加一个新的ip地址 -
ifconfig docker0:1 192.168.81.161/24 up
:第二种方式
-
-
修改机器的mac地址信息
ifconfig docker0 hw ether 00:0a:cc:21:43:dd
-
永久修改网络设备信息,需要修改配置文件
/etc/sysconfig/network-scripts/ifcfg-设备名
4、route路由
计算机之间的数据传输必须经过网络,网络可以直接连接主机也可以通过一个一个的结点去连接,路由可以理解为互联网的中转站,网络中的数据包就是通过一个一个的路由器转发到目的地的
-
分类
-
静态路由,由运维人员通过route命令管理
-
动态路由,无需人为干预由路由器交换机自动分配
-
-
# 查看路由表信息,不进行dns解析 > route -n/netstat -rn Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 3003 0 0 wlan0 # Destination:表示网络号,network的意思 # Gateway:网关地址,网络是通过该ip出口,若显示的是0.0.0.0的ip表示该路由信息是从本机转发出去的 # Genmask:子网掩码 ,ip地址配合子网掩码才是一个完整的网络信息 # Flags:标记当前的网络状态 # U表示up运行状态 # G表示是一个网关路由器 # H表示此网关是一个主机 # !表示当前这个路由已经禁止
-
添加删除网关信息
-
网卡就是数据包不经过任何的设定由路由表最后经过的地址关口
-
删除默认路由表
route del dafault
-
添加一个网关地址
route add default gw 192.168.1.1
-
5、IP命令
> ip -h
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { address | addrlabel | amt | fou | help | ila | ioam | l2tp |
link | macsec | maddress | monitor | mptcp | mroute | mrule |
neighbor | neighbour | netconf | netns | nexthop | ntable |
ntbl | route | rule | sr | tap | tcpmetrics |
token | tunnel | tuntap | vrf | xfrm }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec | -j[son] | -p[retty] |
-f[amily] { inet | inet6 | mpls | bridge | link } |
-4 | -6 | -M | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
-c[olor]}
# OBJECT对象
# link网络设备
# address定义ipv4、ipv6的地址
# neighbour:查看ARP缓存地址(ARP用于解析mac地址)
# route路由表对象
# maddress:多播地址
# tunelIP上的通道
-
查看显示网络设备信息
-
ip addr show
-
ip a
-
-
制定网络设备显示信息
-
ip link show dev docker0
-
ip link show dev docker0
显示详细信息
-
-
关闭激活网络设备
ip link set docker0 down/up
-
修改mac地址
ip link set docker0 address 00:0a:cc:21:43:dd
-
添加ip地址信息
-
ip address add 192.168.81.101/24 dev docker0
-
ip address del 192.168.81.101/24 dev docker0
-
-
给网卡添加别名
ip address add 192.168.81.201/24 dev docker0 label docker0:1
-
检查路由信息
ip route
-
检查ARP缓存
ip neighbour
6、netstat/ss
显示网络连接情况,路由表信息,端口状态等
-
查看所有的网络连接情况
-
netstat -an
:-a代表所有的socket信息,-n显示数字地址信息而非主机名 -
> netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State # Proto socket使用的协议 # Recv-Q 连接这个socket的用户还未拷贝的字节数 # Send-Q 远程主机还未确认的字节数 # Local Address socket本地的地址和端口号 # Forign Address socket的远程主机地址和端口号 # State socker的运行情况 # ESTABLISHED socket有一个有效连接 # SYN_SENT socket尝试建立一个连接 # SYN_RECV 从网络上收到一个连接请求 # FIN_WAIT1 连接已关闭,连接正在断开 # FIN_WAIT2 连接已关闭,socket正在等待远程方终止 # TIME_WAIT 在关闭之后,socket等待处理仍在网络中的分组 # CLOSED socket未使用 # CLOSE_WAIT 远程方已关闭,等待socket关闭 # LAST_ACK 远程方中止,socket已关闭,等待确认 # LISTEN socket监听进来的连接 # CLOSING socket都已关闭,而还未将所有数据发出 # UNKNOWN socket状态未知
-
-
查看机器上正在运行的所有的端口及进程情况
-
netstat -tunlp
-
-t显示tcp的连接情况
-
-u显示udp的连接情况
-
-n不进行dns解析
-
-l只显示正在监听中的socket情况
-
-p显示出socket所属的进程和进程名情况
-
-
-
检查是否运行某个端口
netstat -tunlp | grep 3306
-
显示网络的接口情况
-
netstat -i
-
Iface 网络设备的名字
-
MTU 最大传输单元,单位是字节
-
RX-OK/TX-OK 正确接收/发送了多少数据包
-
RX-ERR/TX-ERR接收/发送数据包的时候丢弃了多少数据包,值最好是0,否则表示网络不健康有丢包的现象
-
RX-OVR/TX-OVR由于错误遗失了多少数据包
-
FLG标记
-
L回环地址
-
R此网络接口正在运行中
-
U接口正在处于活动的状态
-
B设置了广播地址
-
M接收所有的数据包
-
O在该接口上禁止arp
-
P端对端连接
-
-
-
7、telnet
检查远程主机端口是否打开了
-
检测远程主机是否打开了22端口
telnet 192.168.81.1 22
8、ssh安全的远程连接命令
# ssh连接的是服务器上运行的sshd这个应用程序,且后台监听的是22端口
# 语法
ssh 用户名@ip地址
# -p port指定端口
8、wget
用于下载指定的url资源文件,非常稳定,无论网速好坏,还支持断点续传
-
支持断点续传
-
支持ftp及http协议下载
-
支持代理
-
下载文件
-
wget https://xxx.xx.xx/xx/xx.jpg
-
指定保存文件的名字
wget -O /tmp/a.jpg https://xxx.xx.xx/xx/xx.jpg
-
限制下载速度
wget --limit-rate=1k https://xxx.xx.xx/xx/xx.jpg
-
支持断点续传的格式
wget -c https://xxx.xx.xx/xx/xx.jpg
-
后台下载,日志默认输出到wget-log中
wget -b https://xxx.xx.xx/xx/xx.jpg
-
设置客户端身份
wget --user-agent=xxx https://xxx.xx.xx/xx/xx.jpg
-
检测网站是否存活
wget -q -T 2 -t 1 https://xxx.xx.xx/xx/xx.jpg
-
-q安静输出
-
-T访问超时时间
-
-t重试次数
-
输入echo $?,结果为零表示网站存活,非零表示网站挂掉
-
-