自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 python学习笔记:部署django代码到gunicorn【ubutnu18.04】(3)

前面两篇文档,我们介绍了,gunicorn直接启动django项目和带配置文件启动django项目两种方式。 但是呢,如果重启了系统,我不是得每次都得收到执行一次gunicorn命令,可不可以改成开机自动启动,把gunicorn当作想nginx一样的服务? 答案当然是可以的,不过这时候需要我们对linux的systemd这个东西有一定程度的认识。1 gunic...

2019-11-30 17:37:35 236

原创 python学习笔记:部署django代码到gunicorn【ubutnu18.04】(2)

前文中,我们只是简单地用gunicorn命令行来启动django代码。如果需要进行一些复杂的配置,给命令加参数,显然不是一个理想的方法,为此,我们可以把这些配置参数同一放到一个文件,然后gunicorn启动时,调用该配置文件即可。1. 直接运行启动django项目 切换到django项目根目录, 执行下列命令,启动django项目,gunicorn ...

2019-11-30 14:46:28 360

原创 python学习笔记:部署django代码到gunicorn【ubutnu18.04】(1)

1 开发者电脑【windows 10】1.1 执行下列命令,收集开发时安装的package到文件requirements.txtpip3 freeze > requirementx.txt1.2 项目结构如下2 生产环境【ubuntu 18.04】2.1 确认已经安装python3、pip3、gunicorn【sudo apt install gunic...

2019-11-29 16:53:31 244

原创 python学习笔记--开发与调试环境(4)在windows10上搭建django开发虚拟环境

1 下载并安装python3,在安装过程中勾选同时安装pip,紧接着pip安装virtualenv安装完以后,可以在DOS下敲入命令查看C:\Users\wenca\Desktop\Python>python -VPython 3.7.3C:\Users\wenca\Desktop\Python>pip -Vpip 19.0.3 from c:\program fil...

2019-08-12 21:23:39 294

原创 从编程角度看SSL协议(2)ssl库--SSLContext类

1 SSLContext类介绍 ssl库中除了提供SSLSocket类以外,还提供了SSLContext类。相比于SSLSocket类,SSLContext提供了丰富的属性,供我们修改和查看SSL握手时的参数。 我们可以通过以下命令来实例化SSLContext实例contextcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)...

2019-08-11 18:20:19 3091

原创 从编程角度看SSL协议(1)ssl库--SSLSocket类

1 创建ssl socket的方法:ssl.wrap_socket() 在python标准库中提供了ssl库,可以通过以下命令直接导入到代码。不过由于ssl是基于tcp的,通常我们也会导入socket库。import ssl, socket 跟tcp一样,如果我们需要通过ssl去收发数据,那么前提是创建一个ssl socket,我们可以以下方式,创建ssl socke...

2019-08-11 13:42:07 1772

原创 例说图解TCP/IP协议族--HTTP篇(-)搭建HTTP服务器Nginx【docker版】

本文所有的命令都是在宿主机上执行,不需要进入到容器,这也就是docker相对于虚机的优势之一。1docker环境准备 包括在宿主机上安装docker engine,配置让普通用户直接运行docker的命令,而不是以root身份运行,比如加sudo执行,这一步还是比较重要。2获取官方nginx镜像 执行命令,获取镜像wenca@wenca-n...

2019-08-08 10:04:52 192

原创 例说图解TCP/IP协议族--HTTP篇(-)搭建HTTP服务器Apache【docker版】

本文所有的命令都是在宿主机上执行,不需要进入到容器,这也就是docker相对于虚机的优势之一。1 在宿主机上安装docker engine 本文宿主机为ubuntu 18.04,直接执行命令wenca@wenca-node1:~$ sudo snap install dockerwenca@wenca-node1:~$ sudo snap connect doc...

2019-08-07 11:21:21 244

原创 从编程角度看TCP协议(4)python与tcp的三次握手

1 tcp的连接特性 对于tcp或者udp稍微了解一点的同学,肯定知道一句话,tcp是基于连接的,而udp是无连接的。怎么理解这句话呢? 无论tcp还是udp,都是用来传输数据的一种协议,都处于网络层之上的传输层。也都需要通信双方的重新向操作系统申请端口,这是通信的前提。 但不一样的是,udp发送方收到上层应用层程序(不一定非得是应用层协议,也可以自己写的网络程序)需...

2019-06-25 14:41:56 289

原创 从编程角度看TCP协议(3)python操作tcp收发数据

前文中,我们说到python提供了一大堆方法,来操作tcp。本文先讲最重要的,python是如何控制tcp去收发数据的。在这之前,我们先得创建一个tcp socket,因为无论是客户端,还是服务器都需要发送和接收数据。因此本文中提到的一些实例方法,都适用于客户端和服务器。 执行一下命令,创建tcp socket:import sockettcp_sk = socket....

2019-06-21 18:17:31 404

原创 从编程角度看TCP协议(2)python如何操作tcp

1. socket【套接字】 大家都知道,任何一门语言要读写文件,都会调用操作系统提供的文件API,比如open、read、write、close等等。那如果要通过网卡去收发数据呢?这时候就需要操作系统提供的socket了。 python可以通过在文件头部执行以下语句,调用操作系统提供的socket API(python标准socket库)。import socket...

2019-06-21 17:17:42 299

原创 从编程角度看TCP协议(1)初识TCP协议

相信大多数同学面试的时候,都会被问道是否熟悉TCP协议,无论你是网络工程师、运维工程时,或者测试工程师,甚至开发。TCP协议,个人认为是TCP/IP协议族里面最复杂的一个协议,都听过TCP,但每个人对TCP的认知却是大不相同。这也是,面试被经常问到的原因之一吧。 本系列,试图从编程的角度去分析和讲解TCP协议,而不是拿着【TCP/IP协议族权威指南】这部经典丛书照本宣科,那样你会...

2019-06-13 15:25:43 364

原创 写给非网工的CCNA教程(8)跨LAN的通信

前文中,我们提到的通信都是两台设备在同一个网段的情况。只要两台设备连接在一个LAN,即同一个二层交换机或者同一组级联的二层交换机上。那这些不同LAN之间的设备要怎么通信呢?1LAN与网段之间的关系 网段是针对IP地址而言,属于OSI七层模型中的第三层,而LAN位于OSI模型中的第二层。他们的关系是一一对应的,怎么理解呢? 如果两台设备连接的LAN不一样,往往...

2019-06-02 11:08:33 568

原创 写给非网工的CCNA教程(7)通过VLAN连接实现同网段通信

上文中,我们详细介绍了在LAN上启用VLAN后,LAN内部交换机的处理机制有何不同,本文就以一个例子来详细分析下。 如上图所示,我们分析下PC-A通过SW-A、SW-B和SW-C发数据到PC-F,中间各台交换机是如何处理数据的。1 PC-A ---> SW-A PC-A准备发送数据给PC-F,根据PC-F的目的IP地址查找路由表,发现Gateway为On-...

2019-05-29 10:17:17 334

原创 写给非网工的CCNA教程(6)VLAN和802.1q协议

1 VLAN的引入 上文中,我们说到通过LAN的方式实现同网段通信,在级联的交换机数量和终端设备数量很大时,会导致广播域的扩大,浪费交换机的带宽,也白白消耗非目标设备的性能。 因此我们 引入了VLAN机制:我们可以在这些级联的交换机上启用VLAN,然后把需放在同一个广播域的端口配置成相同的VLAN ID。这样的话,广播就只会在具有相同的VLAN ID的端口上转发。如下图所示:...

2019-05-28 15:36:47 927

原创 写给非网工的CCNA教程(5)应用最为广泛的网络--局域网LAN

本系列的文章主要是讲解网络基础,CCNA嘛。在这之前,我们讨论了IP地址、MAC地址,也简单介绍了IP协议、ARP协议、ICMP协议,并且通过ping命令后面的技术原理,提到的了路由表、ARP表。 但是我们都只是讨论了两台主机通过网线直连的方式,现实中可是通过网络来连接通信的主机。这网络是个抽象的概念,对应的物理设备可是多种多样,比如交换机、路由器、防火墙、负载均衡器。而网络类型也...

2019-05-28 11:11:45 402

原创 写给非网工的CCNA教程(4)聊聊ping命令后的原理(续)

前文我们讲解了ARP协议、IP协议、ICMP协议,有了这些基础,咱们再来讲解ping命令后面的原理,就简单多了。我们以一个例子来讲解,如下图所示,PC-A【10.74.97.116 /28】要去ping PC-B【10.74.97.125 /28】,看是否能ping通。A与B之间是通过网线直连,这也是把问题简单话,现实中直连的场景还是毕竟少,不过本文是讲解ping的原理,所以其他的简化,突...

2019-05-25 17:59:54 260

原创 写给非网工的CCNA教程(3)聊聊ping命令后的原理

在我们工作中,相信大家都有接触并使用过ping命令,无论你是开发、测试、运维、网络、安全哪个职位。 当你想要知道从本地到目标设备/系统网络是否通畅时,这时候ping命令就派上用场了。而且ping命令除了windows系统、linux系统外,其他的网络设备,比如交换机、路由器、防火墙、负载均衡等等都支持。1 ping命令调用ICMP协议 那ping命令后面的原理...

2019-05-25 17:29:13 300

原创 写给非网工的CCNA教程(2)第一个协议--ARP协议

在上文中,我们提到了IP地址和MAC地址都是用来唯一标识网络中的设备的。在以太网中,通信的每台设备都得有一个IP地址和一个MAC地址。IP地址属于OSI七层模型中的第3层网络层的概念,MAC地址则是第2层数据链路层的概念。 MAC地址是设备出厂时候就自带,而IP地址是需要我们手动去配置的。当然也可以是从服务器动态获取,这涉及到DHCP的知识,本系列中所有的IP地址都是手动配置的。...

2019-05-24 15:12:29 470

原创 写给非网工的CCNA教程(1)IP地址和MAC地址

网络,我们每天都在接触,每天都在通过网络获取我们想要的信息。再进一步讲,我们利用我们的手机或者电脑,通过有线网或者Wi-Fi或者3G/4G网,连接到电信、联通、移动等运营商的网络,最终连到各大公司的网站服务器,获取我们想要的信息。 可见在网络中,涉及到的公司或企业之多,而每家公司或企业的设备类型之多、设备数量之多。为了唯一标识这些设备,我们引入了IP地址;为了解决这些设备的通信问...

2019-05-24 12:06:27 748

原创 例说图解TCP/IP协议族--TLS篇(3)SSL/TLS数据传输的安全保障

在网络中传输数据时,为了防止数据被人窃听,会对数据进行加密;为了防止数据被篡改,会对数据做完整性保证。而对数据的加密,我们又会涉及到对称加密和非对称加密。另外还有很重要的的一点就是,如何确认通信双方的身份是可信任的。下面我们分开讨论。1. SSL/TLS如何保证双方的身份是可信任的1.1 单证 SSL/TLS客户端为了保证与自己通信的服务器是真实的,而不是中间人冒充...

2019-05-23 21:31:35 1215

原创 例说图解TCP/IP协议族--TLS篇(2)对称加密密钥的形成

我们知道,要加密数据,有对称加密算法和非对称加密算法。而非对称加密算法,由于对设备性能要求高,一般用来加密少量的数据。而在网络中我们传输的数据可是很大的,因此用对称加密算法来加密。不过对称加密算法的安全性,完全取决于对称加密密钥【后面简称密钥】。对密钥我们需要保证几点: (1)通讯双方的密钥得一致,因为加解密都是用同一个密钥; (2)不能被外界所知,也就是防止被窃取;...

2019-05-23 21:31:28 1126

原创 例说图解TCP/IP协议族--TLS篇(1)抓包分析SSL/TLS握手

SSL是Secure Sockets Layer (安全套接层)的简写,SSL协议是为网络通信提供安全的一种安全协议,继任者为TLS,即 Transport Layer Security传输层安全。1. 初识SSL/TLS1.1. SSL/TLS协议版本 SSL的版本如下图所示, 可以看到从SSLv3.1以后,名称都改为TLS。SSL版本 SSLv2 SS...

2019-05-23 21:31:21 2800

原创 例说图解TCP/IP协议族--DNS篇(3)搭建DNS服务器【Ubuntu 18.04版】

DNS服务器可以是专业的硬件设备,也可以允许在操作系统上的一个服务。本文的DNS服务器就直接采用Ubuntu 18.04上的BIND9来完成。关于BIND9需要注意下,该软件的进程名、服务名、侦听端口、配置文件目录如下表所示(方便自动化测试脚本去控制)。进程名 服务名 侦听端口 配置文件目录 named bind9 53/udp,5...

2019-05-23 16:46:59 943 12

原创 例说图解TCP/IP协议族--DNS篇(2)搭建DNS服务器【Windows Server 2008R2版】

DNS服务器可以是专业的硬件设备,也可以允许在操作系统上的一个服务。本文的DNS服务器就直接采用Windows Server 200R2上的软件来完成。1 在Win-2008R2上安装DNS角色 这部分比较简单,只需要按照提示完成即可,跟在Windows桌面版安装软件差不多,只是我们只是Windows的服务器版。此处省略N个字。2 新建forward zone...

2019-05-23 16:46:28 434

原创 例说图解TCP/IP协议族--DNS篇(1)DNS协议基础

如下图,是windows下网卡的配置界面,相信大家都有见过,除了基本的IP地址、子网掩码、网关以外,还有主DNS服务器、备DNS服务器需要配置。 如果我们不涉及到域名相关的请求,通常是不需要配置DNS服务器的。有时候我们上网很慢,可能改下DNS服务器到另外一台就解决问题。而这些都涉及到互联网中很基础的一个协议,DNS协议。1 初识DNS协议(1)DNS协议是用来...

2019-05-23 16:41:20 890

原创 例说图解TCP/IP协议族--DHCP篇(5)搭建DHCP服务器【Ubuntu 18.04版】

DHCP服务器可以是专业的硬件设备,也可以允许在操作系统上的一个服务。本文的DHCP服务器就直接采用Ubuntu 18.04上的ISC-DHCP-Server来完成。 关于ISC-DHCP-Server需要注意下,该软件的进程名、服务名、侦听端口、配置文件如下表所示(方便自动化测试脚本去控制)。DHCP版本 进程名 服务名 侦听端口 配置文件 DH...

2019-05-23 10:40:46 657

原创 例说图解TCP/IP协议族--DHCP篇(4)搭建DHCP服务器【Windows Server 2008R2版】

DHCP服务器可以是专业的硬件设备,也可以允许在操作系统上的一个服务。本文的DHCP服务器就直接采用Windows Server 200R2上的软件来完成。1 在Win-2008R2上安装DHCP角色 这部分比较简单,只需要按照提示完成即可,跟在Windows桌面版安装软件差不多,只是我们只是Windows的服务器版。此处省略N个字。2 DHCPv4配置2...

2019-05-21 20:49:15 1079 1

原创 例说图解TCP/IP协议族--DHCP篇(3)DHCPv6协议

1. DHCPv6 vs DHCPv4 与DHCPv4协议一样,DHCPv6协议也是用来给设备分配地址的,只不过通过DHCPv6分配的是IPv6地址,而不是IPv4地址。(1)DHCPv6报文的地址和端口 跟DHCPv4协议一样,DHCPv6也是位于UDP协议上的应用层协议。不过它采用的端口是,客户端为547,服务器是546。 在DHCPv4协议中客户端因...

2019-05-21 13:05:19 2927

原创 例说图解TCP/IP协议族--DHCP篇(2)DHCPv4协议进阶

1 DHCPv4 Option的分类 前文只是简单介绍了,DHCP的报文在不同场景中的交互过程。但DHCP报文的精髓还在于DHCPOption,我们知道DHCP报文主要作用是,服务器给客户端分配IP。 但如果只是简简单单的分配IP,这也大材小用了。服务器给客户端分配的信息可以有很多很多,比如服务器通过DHCP报文告诉客户端网关是谁、子网掩码是多少、DNS服务器是谁、NTP服务...

2019-05-17 19:16:09 1502

原创 例说图解TCP/IP协议族--DHCP篇(1)DHCPv4协议基础

1. 初识DHCP1.1 DHCP的作用 在网络通信中,每一个设备需要与另外一方通信的前提是,它得有个IP地址,无论这个设备是PC、服务器还是路由器、交换机、防火墙。 正常来讲,我们可以给这些设备每个都手动配置一个IP地址,也就是我们所说的静态IP,所有的这些设备都支持静态IP。但需要一个一个得给这么多设备配置IP,那岂不是很麻烦,而且还容易出错。 这时候就该谈...

2019-05-17 19:12:09 1187

原创 例说图解TCP/IP协议族--PKI与证书(7)之给思科路由器制作证书

1. 思科路由器的证书介绍 众所周知,证书一般用于设备向外部证明自己的身份,而路由器主要是用于数据包的路由转发,怎么会需要证书呢? 其实这取决于路由器上的一些feature,例如路由器可以作为SSL VPN GATEWAY、 IPSEC VPN GATEWAY、WEB SERVER(用于外部管理),还有就是路由器的语音模块中的Secure SRST。 思科路由器证书的...

2019-05-17 19:10:37 2327 1

原创 例说图解TCP/IP协议族--PKI与证书(6)利用openssl作CA来颁发证书

1. 制作前搞清楚一些概念(1)何为CA服务器 CA服务器,一般也叫作证书服务器,Linux和Windows上都有相应的证书服务器软件,Cisco iOS也可以用作CA。证书的申请可以离线申请,也可以在线申请。 离线申请就是申请者提交CSR文件给CA时,走带外,例如复制粘贴。在线申请则是申请者通过SCEP协议带内发送CSR文件给CA。 openssl不支持在线申请...

2019-05-07 15:53:29 757

原创 例说图解TCP/IP协议族--PKI与证书(5)利用openssl制作自签发证书

1 制作前搞清楚一些概念(1)何为自签发证书自签发证书,顾名思义就是证书的拥有者和颁发者(CA)都是自己。自签发证书的好处是,随时随地可以签发。 不好之处是,但当用户访问自签发证书的设备时,会不信任该证,需要用户干预是否信任本证书。当然用户可以提前把设备的证书存放下来,放在自己的证书信任列表(CTL)里面。 这样虽然不会每次弹出是否信任证书的窗口,但是每当用户访...

2019-05-04 15:17:17 1467

原创 例说图解TCP/IP协议族--PKI与证书(4)深入理解证书以及证书的作用

1证书里面剩余两个字段介绍 在上一篇文档中, 我们剩下Extensions, Certificate Signature Algorithm & Cetificate Signature Value等字段没有具体介绍.本文续上. 1.1extensions字段 该字段为x509证书的扩展字段, v3之前的版本没有的. x509的证书扩展作用有...

2019-04-11 16:24:46 1237

原创 例说图解TCP/IP协议族--PKI与证书(3)初识证书

1. 初识证书 在现实生活中,我们经常使用到身份证用来向别人证明我们自己的身份.而在网络世界中,我们也需要用到一个东西去证明通信双方的身份,而不是假冒的.实现的方法有很多种,而证书就是其中一种,个人认为也是最好的一种方式,相比其他方式,比如身份标识符,PSK,公私钥等等. 目前广泛使用的证书大部分都是X509证书,版本为v3.下面以一张真实的证书为例,说明证书里面内容有哪些....

2019-04-11 16:21:11 683

原创 例说图解TCP/IP协议族--PKI与证书(2)之身份认证

在任何网络通讯中,我们最先考虑的应该是,与你通讯的对端,的的确确是真正的对端,而不是中间人。这也就是我们所说的AAA中的第一个A:认证。1. 认证方式选择 说到认证,我们一般都会想到常用的认证方式,各自都有自己的使用场景,对比如下认证方式 应用场景 Identifier+PSK IKEv1,IKEv2 publice key / private ke...

2019-04-08 15:28:50 1242

原创 例说图解TCP/IP协议族--PKI与证书(1)密码学基础

1. 安全的四大要素 讲安全,一般都会提及到安全的四大要素: 机密性,发送方利用秘钥对数据进行加密,然后在网络中传输的数据由明文变成密文,接受方利用秘钥解密数据. 完整性,虽然网络中传输的数据是密文,但如果密文被第三方修改,那么数据也就失去了意义,所以发送方用完整性算法来对数据做摘要,然后把摘要跟随密文一起发给接收方,接受方对收到的密文做摘要,与发送方发来的摘要比对,...

2019-04-07 12:31:21 728

原创 python学习笔记--开发与调试环境(3)pycharm远程调试linux内部程序

1. 个人开发环境如下:(1)pycharm专业版(2018.1.2)位于windows10上(2)linux发行版为centos72. 对远端linux系统的要求如下:(1)远端linux的ip地址(2)需要装有ssh-server,提供ssh-server的账号和密码3. 远程调试原理: 在win10上安装pycharm(无需安装python解释器),在lin...

2018-08-28 17:58:56 640

原创 python学习笔记--开发与调试环境(2)搭建flask代码运行的docker环境

1 根据官网centos7的docker image生成uwsgi image(1)在docker-host上建立,一个目录uwsig,进入目录新建一个dockerfile,内容如下###该dockerfile文件,是基于官方的centos7的image,生成uwsgi的imageFROM docker.io/centos:7RUN ["/bin/bash", "-c", " \...

2018-08-27 18:05:42 1547

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除