一、IP
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给用户上网使用的网际协议(英语:Internet Protocol, IP)的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类。
IP地址一般分类:
二、子网掩码
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
利用子网掩码可以把大的网络划分成子网,即VLSM(可变长子网掩码),也可以把小的网络归并成大的网络即超网。
三、端口
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。
查看本机启用端口:
netstat -an
-a:查看所有连接和监听端口
-n:显示IP地址和端口号,而不显示域名和服务名
四、DNS
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53[1]。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
五、网关
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层--应用层。
说明:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!
六、Linux配置IP
1、ifconfig命令临时配置IP地址
ifconfig:查看与配置网络状态
ifconfig eth0 192.168.0.200 netmask 255.255.255.0:临时设置eth0网卡的IP地址和子网掩码
2、setup工具永久配置IP地址
通过setup命令打开一个图形化界面,不同版本的系统命令可能不同。
3、修改网络配置文件
网卡信息文件:
主机名文件:hostname [主机名] 查看与临时设置主机名命令
DNS配置文件:
七、Linux网络环境查看命令
ifconfig:查看与配置网络状态
ifdown 网卡设备名:禁用该网卡设备
ifup 网卡设备名:启用该网卡设备
netstat 选项:查询网络状态
-t 列出TCP协议端口
-u 列出UDP协议端口
-n 不使用域名与服务名,而使用IP地址和端口号
-l 仅列出在监听状态网络服务
-a 列出所有的网络连接
route -n:查看路由列表(可以看到网关)
route add default gw IP 临时设定网关
nslookup [主机名或IP]:进行域名与IP地址解析
八、Linux网络测试命令
ping [选项] IP或域名:探测指定IP或域名的网络状况
-c:次数,指定ping包的次数
telnet [域名或IP] [端口]:远程管理与端口探测
traceroute [选项] IP或域名:路由跟踪命令
-n:使用IP,不使用域名,速度更快
wget 下载地址:下载
tcpdump -i eth0 -nnX port 21:
-i:指定网卡接口
-nn:将数据包中的域名与服务转为IP和端口
-X:以十六进制和ASCII码显示数据包内容
port:指定监听端口
九、SSH协议原理
SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。
SSH和telnet、ftp等协议主要的区别在于安全性。
加密的方式主要有两种:
1、对称加密(也称为秘钥加密)
2、非对称加密(也称公钥加密)
SSH协议是基于非对称加密方法的,服务器和客户端都会生成自己的公钥和私钥。
1、服务器建立公钥。若远程服务器是新系统,会在/etc/ssh目录下生成一个名为ssh_host_ecdsa_key.pub的公钥,同时生成一个名为ssh_host_ecdsa_key的私钥,这一对就是远程服务器的公钥与私钥。之后每回启动sshd服务的时候,系统会自动在此路径下查找公钥。
2、客户端请求连接。linux或者mac系统可以直接通过自带的shell连接,指令为ssh user@host,如果客户端和服务器是相同的用户,则可以省去user,直接使用ssh host。
3、服务器发送公钥给客户端。服务器接到请求后,把公钥传给客户端使用。
4、客户端记录服务器公钥并计算自己的公私钥。客户端将服务器传来的公钥记录在~/.ssh/known_hosts中,若是已经记录有该服务器公钥,则比对是否一致,一致后就计算客户端自己的公私钥。
5、客户端发送自己的公钥给服务器。客户端将自己的公钥发送给服务器,这样服务器端就有客户端公钥+服务器自己私钥,客户端就有服务器公钥+客户端自己私钥,组成了非对称加密系统。
6、开始双向加解密。服务器发送数据:用客户端公钥加密,客户端收到数据后用自己私钥解密。客户端发送数据:用服务器公钥加密,服务器收到数据后用自己私钥解密。
ssh 用户名@ip:远程管理指定Linux服务器
scp [-r] 用户名@ip:文件路径 本地路径:下载文件
scp [-r] 本地文件 用户名@ip:上传路径:上传文件
十、TCP/UDP协议
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接;
2、TCP传输可靠,保证数据完整性;UDP传输不可靠,可能会丢包;
3、TCP传输速度慢;UDP传输快;
4、TCP适合传输大量数据场景;UDP适合传输少量数据场景。