VMWare克隆CentOS 6系统导致无法启动网络解决记录

公司服务器上周挂了后,需要新的系统,于是用了之前服务器导出的CentOS6的镜像。 成功部署后,发现无法访问,控制台登陆后发现network.service没起来,于是重启network. [root@localhost]# service network restart Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth1: Error: No suitable device found: no device found for connection’System eth1′. … “VMWare克隆CentOS 6系统导致无法启动网络解决记录”

Read More

深入WebSocket协议

无论是 HTTP 还是 HTTPS协议,它们一出场就已经定死了只能是短连接,而诸如基于 Jquery 或 Ajax 靠定时器轮询的请求来实现长连接的方法却会加大服务端的资源消耗,只能是旁门左道。即便服务端有 HTTP Keepalive 这种连接复用,仍旧无法避免一段空闲时间后就断开连接的尴尬,尤其是中间还有不可预知的网关也可能会关闭这个连接,并且服务端一旦配置不当,TCP长连接在服务端未能及时释放造成资源消耗加剧,就会出现类似雪崩效应。 并且基于短连接,HTTP/HTTPS 协议就产生了一个巨大缺陷,即请回只能由客户端发起,服务端只能做回应,不能做主动推送,因为服务端不知道客户端何时会将连接关闭(TCP是双工的,而各个浏览器的实现也不一样)。 因此就急需一种能够让浏览器支持并兼任HTTP/HTTPS协议的TCP长连接。 时代造就英雄,这种环境下便有了WebSocket。 WebSocket 协议在2008年诞生,由谷歌提出(话说Ajax也是谷歌提出的),是 HTML5 种的一个协议规范,2011 年成为国际互联网标准规范 RFC 6455,跟随着 HTML5 的步伐一同面世,主流浏览器早已全部支持了。 WebSocket 的优点有: 底层基于 TCP 实现的长连接协议,双工的性质使得服务端能主动推送信息 同样可以使用 80 和 443 端口,协议转换通过 HTTP/HTTPS … “深入WebSocket协议”

Read More

Let’s Encrypt使用记录

万维网发展到现在已经有二十多年的时间了,而在我看来HTTPS将会是未来至少二十年内的主流协议,它已经开始飞快的替换掉HTTP这种不安全的协议,但只要HTTPS存在,那HTTP就是不会退出历史舞台的. 废话少说. Let’s Encrypt是去年十二月份开始公测的,可以免费申请SSL证书.其签发的证书已经获得了交叉信任,已经能被所有主流浏览器信任了.交叉签名来自 IdenTrust Root CA. 首先获取acme-tiny,然后建立私钥: #建立let’s encrypt 私钥 openssl genrsa 4096 > account.key #建立域名私钥 openssl genrsa 4096 > domain.key #生成域名请求证书 openssl req -new -sha256 -key domain.key -subj “/” -reqexts SAN -config <(cat … “Let’s Encrypt使用记录”

Read More

理解TCP的握手与挥手

握手 As we know, TCP 相比于 UDP 而言, TCP 提供可靠的连接服务,而它建立一个链接的时候,采用三次握手(three-way handshake),那什么是三次握手呢? For example: 1. 漆黑的夜里,你在路上散步发现对面有个熟人,你想去聊会天,于是你先向对方打了声招呼. 2. 对方听到了你的招呼声,于是也向你回了一声. 3. 你听到了对方的回应,于是向对方挥挥手致意. 第一次握手,你(client)想和对方(server)说话(connect),于是先和对方打了声招呼(syn=j). 第二次握手,对方听到了你的回应,于是并回了一声,表示自己听到了(ack=j+1, syn=k). 第三次握手,你也听到了对方的回应,知道对方已经认出你了,于是挥手表示自己也听到了.(ack=k+1) 很浅显得道理,但非常有效的连接方式.为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手. 挥手 要知道,一个socket连接是双工的,两端都可以同时收发,相当于一个连接中存在两条管道.因此TCP在关闭连接的时候,需要将两条管道都关闭. 而如何能确保两条管道都安全的关闭呢? For example: 1. A 和 B已经建立了连接,此时 A 决定要关闭连接了,于是 … “理解TCP的握手与挥手”

Read More

网络协议粗略复习记录

[TOC] 重新看了点《TCP/IP详解》,粗略的把知识归纳下. 关于分层 网络分层让我很糊涂,有四层协议,五层协议,还有七层协议的. 总所周知,网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。 TCP/IP通常被认为是一个四层协议系统,当然也有人将其分为五层协议的,貌似这么分好像也合理,因为物理设备也确实不能少,还有理论上的OSI七层模型: 越下面的层,越靠近硬件;越上面的层,越靠近用户. 至于每一层叫什么名字,其实并不重要,每一层都是为了完成一种功能. 为了实现这些功能,就需要大家都遵守共同的规则,而大家都遵守的规则,就叫做协议(protocol). 关于协议 网络的每一层,都定义了很多协议.而TCP/IP协议是一个统称,它是一个大家族,不仅仅只有TCP协议和IP协议,它还包括其它的协议,如: 物理层 常见介质有铜绞线、光缆、无线介质(电磁波、微波、红外线) 物理层主要负责基本的信息传输以及传输控制工作。 人们可以使用电线来进行传输,也可以使用光纤来进行传输,甚至可以是无线电磁波. 对于不同的介质,产生的信号也是不同的,物理层就是要规定介质和信号的规范. 常见接口规范: RS-232(串口)、FDDI、IEEE802.3z、IEEE802.3ae、IEEE802.11 链路层 使用物理连接后的设备,通过高低频的电子信号传输信息,然后接收端的设备通过特定的算法识别这些信号.早期的时候,每家公司都有自己的电信号分组方式,十分混乱,由此成立了 IEEE 802委员会 来制定数据由物理层到链路层相关的一系列标准.再之后,IEEE802系列标准中叫做 802.3 “以太网”(Ethernet)RFC 894的协议,逐渐地占据了主导地位. 以太网协议规定: 1. 一组电信号构成一个数据包,叫做”帧”(Frame).每一帧分成两个部分: 标头(Head),数据(Data),尾部校验(CRC). 2. “标头”包含数据包的一些说明项,包括目的地址(6字节),源地址(6字节),类型(2字节).其总长度固定为 14 字节,. 3. … “网络协议粗略复习记录”

Read More

了解DNS

DNS通讯协议 DNS服务通常使用53号端口,同时使用TCP协议和UDP协议. DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议. 什么叫区域传输? DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器. 在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息.当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息.这就叫做区域传输(Zone Transfer). 为什么既使用TCP又使用UDP? 这里就要先了解一下TCP与UDP的一个差异: UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节.当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送. 区域传送时使用TCP,主要有一下两点考虑: 1. 辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多。 2. TCP是一种可靠的连接,保证了数据的准确性。 域名解析时使用UDP协议: 1. 客户端向DNS服务器查询域名,一般返回的内容都不超过512字节。 2. 不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。 虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。 DN解析记录 A记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录 CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名 MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录 NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录 TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录 AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录 SRV记录: … “了解DNS”

Read More