一、概念
1.计算机网络的概念
通信:
计算机通信是面向计算机和数据终端之间的一种通信方式,可以实现任何计算机之间的数据生成、存储、数据处理、数据传递在不同的机器之间。
要求处于不同地理位置的计算机,能够互相知道对方的存在,才能互相传递消息,共享资源。
计算机网络:
网络协议,是计算机网络的核心概念
网络协议是计算机网络中
网络协议是计算机网络中进行数据交互而建立的一种规则,也可以说是一套约定、标准的集合
TCP/IP网络协议标准,已经是Internet网络中的标准语言
2. 网络层次划分
为了让不同的计算机厂家,生产出来的计算机相互都能够通信,也能够在大范围之间进行计算机网络交互,(ISO国际标准化组织)“开放系统互联参考模型”(OSI七层模型)
二、相关命令
1. ifconfig命令
作用
用于配置网卡ip地址信息,等网络参数信息
查看显示网络接口信息
还能够临时性的配置ip地址、子网掩码、广播地址、网关信息等
注意:ifconfig命令只能用root去操作,且可能要单独安装这个命令
安装网络工具包:
yum install net-tools
案例:
1、查看网络地址信息
ifconfig
查看所有网络接口信息-
查看指定网卡
ifconfig ens33
- ipv4是inet
- 广播地址是 broadcast
- 子网掩码 netmask
- RX / TX packages 代表网卡收发的流量数据包大小
ls /etc/sysconfig/network-scripts/
查看网络设备文件
2、指定开启、或者关闭网卡关闭网卡,注意不得在服务器上或者云服务器上执行!!!!!
- 关闭网卡:
ifconfig ens33 down
- 开启网卡:
ifconfig ens33 up
3、修改、设置ip地址
-
添加一个新ip地址
ifconfig ens33:0 192.168.178.100 netmask 255.255.255.0 up
-
第二种添加方式
ifconfig ens33:1 192.168.178.120/24 up
4、修改机器的MAC地址
ifconfig ens33 hw ether 00:oc:29:13:10:CF
查看MAC地址
ifconfig |grep ether
5、永久修改网络设备信息,ifconfig命令只是临时修改网络配置,要永久修改还得写入到配置文件中/etc/sysconfig/network-scripts/ifcfg-ens33
2. route命令
什么是route路由?
- 计算机之间的数据传输必须经过网络,网络可以直接连接两台计算机,也可以通过一个一个的节点去连接路由可以理解为互联网的中转站,网络中的数据包就是通过一个一个的路由器转发到目的地
路由分类:
静态路由:Linux机器上配置的都是静态路由,由运维人员通过route命令去管理
动态路由:无需人为干预,由路由器、交换机自动分配规则而来
命令使用案例:
1、查看路由表信息
- 不进行dns解析的路由表查看
route -n
- 内容解析:
-
Destination
: 表示网络号,network的意思 -
Gateway
: 表示网关地址,网络是通过该IP出口,如果显示0.0.0.0的ip,表示该路由信息,是从本机转发出去的 -
Genmask
:子网掩码地址的标识,IP地址配合子网掩码,才是一个完整的网络信息 -
Flags
:路由标记,标记当前的网络状态-
U
: Up运行的状态 -
G
: 表示这是一个网关路由器 -
H
: 表示这个网关是一个主机 -
!
: 表示当前这个路由已经禁止
-
2、添加、删除网关信息
网关,网络的关口,就好比家里的门一样,数据只能通过这个网关地址出外网
删除default默认路由表
route del default
添加一个网关地址
route add default gw 192.168.178.2
3. ip命令
作用:
- ip命令是iproute软件包中强大的网络管理工具
- 包括ifconfig和route命令的作用,查看系统路由、网络设备,设置策略等功能
ip命令可以操作的对象
- OBJECT 对象
- link 网络设备
- address 定义ipv4 ipv6的地址
- neighbour 查看ARP缓存地址(ARP用于解析MAC地址)
- route 路由表对象
- maddress 多播地址
- tunel IP上的通道
案例
1、查看网络设备信息
ip addr show
- 指定网络设备显式信息:
ip link show dev ens33
- 详细数据包收发情况:
ip -s link show dev ens33
2、关闭、激活网络设备,服务器上不要用!!!
- 关闭网卡:
ip link set ens33 down
- 开启网卡:
ip link set ens33 up
3、修改网卡MAC地址信息,专业工作人员操作!
ip link set ens33 address 0:0c:29:13:10:11
4、显示网卡信息
ip addr show
- 简写:
ip a
5、ip
命令添加,删除ip
信息
ip address add 192.168.178.150/24 dev ens33
ip address add 192.168.178.160/24 dev ens33
- 删除:
ip address del 192.168.178.160/24 dev ens33
6、ip
命令给网卡添加别名
ip address add 192.168.178.188/24 dev ens33 label ens33:1
7、通过ip
命令检查路由信息
ip route
8、ip
检查arp
缓存(显示网络令居的信息),检查MAC地址信息
ip neighbour
- 等于
arp -n
4. netstat命令
作用:
- 显示网络连接情况,路由表信息,端口状态,网络连接情况等等信息
- 一个进程服务,运行之后,会暴露一个端口号,以及产生响应的进程信息
案例:
1、查看所有的网络连接情况
netstat -an
-a
: 显示all所有的套接字(socket)信息-n
: 显示数字地址信息而非主机名
常见字段解释:
-
proto
套接字使用的协议是什么 -
Recv-Q
连接这个套接字的用户,还未拷贝的字节数 -
Send-Q
远程主机还未确认的字节数 -
Local address
套接字(一个连接情况)本地的地址和端口号 -
Forign Address
套接字的远程主机地址和端口号 -
State
套接字的运行情况,Listen 监听中
-
127.0.0.1
# 本地回环地址,用于机器内部应用通信,外人无法访问此地址, - 每一个机器都有自己的
127.0.0.1
-
0.0.0.0
# 绑定机器所有的网卡地址
netstat使用实际案例
-
netstat -tunlp
# 查看机器上正在运行的所有端口情况以及进程情况 - 参数解释如下:
-
-t
显示出tcp
的连接情况 -
-u
显示出udp
的连接情况 -
-n
不进行dns
解析 -
-l
只显示正在监听中的套接字情况 -
-p
显示出套接字所属的进程和进程名情况
-
2、检查服务器是否运行了3306端口(间接查看了是否运行了mysql
数据库)
netstat -tunlp | grep 3306
3、显示系统的路由表情况
-
netstat -rn
等同于route -n
4、显示网络的接口情况
netstat -i
-i
显示出所有的网络接口的情况字段解释:
Iface
: 网络设备名称MTU
:最大的传输单元,单位是字节RX-OK/TX-OK
:正确接受了多少数据包/发送了多少数据包RX-ERR/TX-ERR
:接收、发送数据包的时候,丢弃了多少数据包RX-OVR/TX-OVR
:由于错误遗失了多少数据包-
Flg
:- L:是回环地址的含义
- R: 这个网络接口正在运行中
- U:接口正在处于活动的状态
- B:设置了广播的地址
- M:接收所有的数据包
- O:表示在该接口上禁止qrp
- P: 端对端的连接
5、查看服务器监听
-
netstat -tunlp | grep 3306
# 监听数据库是否运行 -
netstat -tunlp | grep 80
# 监听web
服务是否运行 -
netstat -tunlp | grep 443
# 监听https
服务是否运行
5. ping命令
功能:
测试当前主机到目标机器的网络连通性
可以对域名进行ping,查看是否能够通信,也可以用这个命令当做检测本机是否能够dns解析的命令
ping ip地址,省去了dns解析的过程
用法
- ping命令跟着域名或是ip地址,它会一直刷新命令的结果
- ping命令发送给了远程主机多少字节的数据
- 从目标主机收到了多少字节的数据,
-
icmp_seq
表示收到的字节数据序列号 -
ttl
是数据包的存活时间,秒为单位 -
time
是两台机器收发数据的延迟时间
-
ping命令用于检测主机网络状态
1、检测本机是否能够进行dns解析
ping pythonav.cn
当出现
ping: pythonav.cn: 未知的名称或服务
可能是机器无法上网了,也可能是无法进行dns域名解析了-
验证步骤:
1、检查linux的dns客户端配置文件/etc/resolv.conf
确保文件中,有dns服务器的地址
nameserver 114.114.114.114 nameserver 223.5.5.5
2、此时再次验证能否进行域名解析,能否发送ping命令
当ping远程主机的时候,出现如下报错,就是自己机器,无法上外网了
Destination Host Unreachable
报错说明网络配置有问题了,得正确配置ip信息,以及路由网关地址
6. telnet命令
作用:
- telnet命令在以前是用于登录远程主机的命令,以及检测远程主机的端口是否打开了
- 但是telnet命令采用的是明文传输,安全性太低,在远程登录的时候,容易丢失或者被黑客截取服务器的密码
- 后来被弃用,采用了更安全的ssh远程登录命令
用法:
1、用于检测远程主机是否打开了某端口
这个telnet命令得安装后才能使用
yum install telnet -y
2、检测远程机器的22端口是否打开
telnet 123.206.16.61 22
3、检测远程服务器是否开放了数据库的3306端口
telnet 123.206.16.61 3306
7. ssh命令
说明:
- ssh是安全的远程连接命令
- ssh命令是openssh软件包中的一个套件命令,使用ssh加密的协议进行远程登录,并且实现对服务器的远程管理
- linux系统可以直接在命令行终端,输入ssh指令即可
- ssh连接的是服务器上运行的sshd这个应用程序,且后台监听的是22端口
语法:
ssh 用户名@ip地址
参数:
-p port # 假如默认ssh端口22改成了24444
ssh kkite@123.206.16.16 24444 # 指定端口默认连接
远程执行服务器的命令
ssh root@123.206.16.16 "free -m" # 查看服务器内存使用情况
8. wget命令
作用:
- 用于下载指定的url资源文件,比如一个图片的url地址
- wget非常稳定,可以在网速很差的情况下,以及网速很快的情况下都能够很强的适应网络环境
- wget还支持断点续传
- 支持ftp以及http协议下载
- wget
安装:
yum install wget -y
案例:
1、下载一张kkite的照片
wget https://upload.jianshu.io/users/upload_avatars/16997172/0b60b00d-651a-41af-98ff-63c90da03fe3.png?imageMogr2/auto-orient/strip|imageView2/1/w/96/h/96/format/webp
2、下载文件,且指定保存文件的名字,通过wget的功能参数 -O即可,下载url资源后,指定linux目录保存,且修改文件名
wget -O /tmp/kkite.png https://upload-images.jianshu.io/upload_images/16997172-4f21d2fd1656f4a3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp
3、限制wget的下载速度,通过--limit-rate参数,限制下载速度
wget --limit-rate=1k https://upload-images.jianshu.io/upload_images/16997172-4f21d2fd1656f4a3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp
4、断点续传 -c
wget -c --limit-rate=2k https://upload-images.jianshu.io/upload_images/16997172-4f21d2fd1656f4a3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp
5、后台下载,-b
# 日志默认输出到wget-log中
wget -b --limit-rate=2k https://upload-images.jianshu.io/upload_images/16997172-4f21d2fd1656f4a3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp