open*** ipsec做机房回来,适合功能上的的应用,如果是大数据传输,还是专线好

#环境搭建:

#[root@×××_S ~]# uname -a

#Linux ×××_S 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

#[root@×××_S ~]# cat /etc/redhat-release

CentOS release 6.5 (Final)

#open*** server

#eth0:10.0.0.3  外网(网关,DNS等和平时一样)

#eth1:172.16.1.2  内网 (网关,DNS,都不设置)

#linux open*** client

#eth0 :172.16.1.200

#客户端的网关可以配置为open***内网的172.16.1.2

#也可以安装平时的正常配置。但是如果按照平时正常配置的话,如果在open***不做NAT转换的情况下,需要写一条静态如有指向open***服务器

#############################################################################

#部署前准备

#配置***时间同步

/usr/sbin/ntpdate pool.ntp.org

echo '#time sync by lvnian at 2010-2-1'>>/var/spool/cron/root

echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root

crontab -l

#############################################################################

#安装lzo依赖包

#mkdir -p /home/lvnian/tools/

#cd /home/lvnian/tools/

[ ! -d /home/lvnian/tools/ ] && mkdir -p /home/lvnian/tools/ ; cd /home/lvnian/tools/

wget http:/down1.chinaunix.net/distfiles/lzo-2.06.tar.gz

tar zxf lzo-2.06.tar.gz

cd lzo-2.06

./configure

make && make install

#############################################################################

#安装openssl依赖包

yum install openssl* -y

rpm -qa openssl*

#############################################################################

#安装open***

mkdir -p /home/lvnian/tools/

cd /home/lvnian/tools/

wget http:/down1.chinaunix.net/distfiles/open***-2.0.6.tar.gz

tar xf open***-2.0.6.tar.gz

cd open***-2.0.6

./configure --with-lzo-headers=/usr/local/include --with-lzo-lib=/usr/local/lib

make

make install

#############################################################################

#配置open***证书

cd /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/

cp vars vars.bak

sed -i '51,55d' vars

=========================

#echo -e "export KEY_COUNTRY="CN"\nexport KEY_PROVINCE="BJ"\nexport KEY_CITY="BEIJING"\nexport KEY_ORG="lvnian"\nexport KEY_EMAIL="759685538@qq.com"\n">> vars

或者

sed -i '50aexport KEY_COUNTRY="CN"\nexport KEY_PROVINCE="BJ"\nexport KEY_CITY="BEIJING"\nexport KEY_ORG="lvnian"\nexport KEY_EMAIL="759685538@qq.com"\n' vars

也就是添加下面内容

export KEY_COUNTRY="CN"

export KEY_PROVINCE="BJ"

export KEY_CITY="BEIJING"

export KEY_ORG="lvnian"

export KEY_EMAIL="759685538@qq.com"

或者

=========================

sed -i "s/export KEY_COUNTRY="US"/export KEY_COUNTRY="CN"/g"  vars

sed -i "s/export KEY_PROVINCE="CA"/export KEY_PROVINCE="BJ"/g" vars

sed -i "s/export KEY_CITY="SanFrancisco"/export KEY_CITY="Beijing"/g" vars

sed -i "s/export KEY_ORG="Fort-Funston"/export KEY_ORG="lvnian"/g" vars

sed -i "s/export KEY_EMAIL="me@myhost.mydomain"/export KEY_EMAIL="574172278@qq.com"/g" vars

#############################################################################

###让刚才修改的配置文件生效

source vars

./clean-all

######=======================

#生成ca证书

./build-ca

ll keys/

#生成服务端key密钥和证书

##./build-key-server servername

./build-key-server server

ll keys/

#生成客户端key密钥和证书(不用输入密码直接登录)

./build-key lvnian

##工作中一般用员工的名称替代lvnian,这个是员工的密钥文件

ll keys/

#生成客户端key密钥和证书(需要输入密码登录)

./build-key-pass guo

#  密码是回车之后首先输入的:Enter PEM pass phrase:密码

#生成传输进行密钥交换是用到的交换密钥协议文件,生成dh1024.pem这个文件

./build-dh

ll keys/dh1024.pem

#生成防止恶意***文件,生成ta.key这个文件

open*** --genkey --secret keys/ta.key

ll keys/ta.key

#############################################################################

##生成才证书说明

##[root@×××_S 2.0]# ll keys/

##total 88

##-------- 01.pem

##-------- 02.pem

##-------- 03.pem

##-------- ca.crt 《==  服务端和所有客户端都需要,这是CA证书

##-------- ca.key 《== 只有服务需要的    CA的key

##-------- dh1024.pem 《==加密算法,只在服务端有

##-------- guo.crt 《==客户端证书,仅在客户端有

##-------- guo.csr

##-------- guo.key 《==客户端KEY,仅在客户端有

##-------- index.txt

##-------- index.txt.attr

##-------- index.txt.attr.old

##-------- index.txt.old

##-------- lvnian.crt 《==客户端KEY,仅在客户端有

##-------- lvnian.csr

##-------- lvnian.key 《==客户端KEY,仅在客户端有

##-------- serial

##-------- serial.old

##-------- server.crt 《== 这个是服务端证书,只在服务端有

##-------- server.csr

##-------- server.key 《== 这个是服务端key,只在服务端有

##-------- ta.key

#vars 脚本是用来穿件环境变量的,设置所需要的变量的脚本

#clean-all 脚本是创建生成ca证书及密钥文件所需要的文件和目录

#build-ca 脚本是生成ca证书的(交互)

#build-dh 脚本是生成Difie-Hellman文件的(交互)

#build-key-server 脚本是生成服务端密钥(交互)

#build-key 脚本是生成客户端密钥(交互)

#build-key-pass 脚本是生成额外还需要密码登录的客户端密钥文件(交互)

#pkitool 脚本直接使用vars的环境变量设置,直接生成证书,非交互式

################################################

#把证书,key,配置文件拷贝到/etc/open***/目录下

mkdir -p /etc/open***/

cd /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/

/bin/cp -ap keys /etc/open***/

cd /home/lvnian/tools/open***-2.0.6/sample-config-files/

/bin/cp server.conf  client.conf /etc/open***/

#############################################################################

cd /etc/open***/

cp server.conf server.conf.ori

cp client.conf client.conf.ori

#配置server.conf

cat >server.conf<<eof

local 10.0.0.3

port 52115

proto tcp

dev tun

ca /etc/open***/keys/ca.crt

cert /etc/open***/keys/server.crt

key /etc/open***/keys/server.key

dh /etc/open***/keys/dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 172.16.1.0 255.255.255.0"

client-to-client

keepalive 10 120

comp-lzo

persist-key

persist-tun

status /etc/open***/open***-status.log

verb 3

log /etc/open***/open***.log

eof

#############################################################################

#########配置文件说明

##local 10.0.0.3   #哪一个本地地址被你×××进行监听

##port 52115 #申明使用的端口,默认1194

##proto tcp #申明使用的协议,默认使用UDP,这里建议使用tcp

##dev tun #申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议。

##ca /etc/open***/keys/ca.crt #Open×××使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法

##cert /etc/open***/keys/server.crt

##key /etc/open***/keys/server.key

##dh /etc/open***/keys/dh1024.pem

##server 10.8.0.0 255.255.255.0   #这个是*** server动态分配给***client的地址,一般不需要更改,这个段不要和网络地址段冲突

##ifconfig-pool-persist ipp.txt

##push "route 172.16.1.0 255.255.255.0" #这个是*** server所在内网的网段,如果有多个内网网段,可以用多个push。此命令的作用是,在***客户端生成这样一台路由指向***服务器

##client-to-client  #运行拨号的多个*** 客户端客户端通信。可以ping客户端原理的ip地址

##duplicate-cn     允许多客户端使用一个账号连接,否则一个账号只允许一个客户端连接×××

##keepalive 10 120  #每隔10秒ping一次客户端,如果120秒内没收到客户端的回包,就任务客户端下线了

##comp-lzo          #开启压缩功能

##persist-key       #当***超时后,重新启动***后,保存上一次使用的私钥,而不重新读取私钥

##persist-tun       #通过keepalived检测***超时后,当重启***后,保存tun或者tap设备自带连接状态

##status open***-status.log    #open***的日志状态信息

##verb 3          ##指定日志文件的冗余

##log /etc/open***/open***.log   #日志文件

##############################################################

##如果有防火墙,那就需要让本机接受外网对open***的端口范围

-A INPUT -p tcp --dport 52115 -j ACCEPT

#############################################################################

重点:开启转发功能

#打开内核转发

echo 1 >/proc/sys/net/ipv4/ip_forward

或者

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf

sysctl -p

#############################################################################

#启动***

/usr/local/sbin/open*** --config /etc/open***/server.conf &

#############################################################################

##检测open***启动是否成功

lsof -i :52115

netstat -lntup

#############################################################################

#设置开机自启动

echo "#startup open*** service by gao " >>/etc/rc.local

echo "/usr/local/sbin/open*** --config /etc/open***/server.conf & " >>/etc/rc.local

#############################################################################

修改为常用启动方式:

cp /home/lvnian/tools/open***-2.0.6/sample-scripts/open***.init /etc/init.d/open***d

chmod 700 /etc/init.d/open***d

pkill open***

修改/etc/init.d/open***d  148行。改为下面内容

for c in `/bin/ls server.conf 2>/dev/null`; do

#############################################################################

设置常规开机自启动

chkconfig --add open***d

chkconfig --list open***d

chkconfig  open***d on

chkconfig --list open***d

======================

[root@×××_S open***]# chkconfig --add open***d

[root@×××_S open***]# chkconfig --list open***d

open***d        0:off   1:off   2:off   3:on    4:on    5:on    6:off

[root@×××_S open***]# chkconfig  open***d on

[root@×××_S open***]# chkconfig --list open***d

open***d        0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@×××_S open***]#

#############################################################################

##***正常启动会出现下面一个虚拟网卡

[root@×××_S open***]# ifconfig tun0

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@×××_S open***]#

########################服务端安装成功#####################################################################

#让客户端可以和***内部的服务器相连

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j SNAT --to-source=172.16.1.100

##################################################################

##################################################################

##################################################################

##################################################################

##################################################################

##################################################################

open***日常应用

1、为客户创建证书

方法1

重新进入/home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/目录

运行 . ./vars 导出build-key 运行所需要的环境:

操作如下:

[root@×××_S ~]# cd /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/

[root@×××_S 2.0]#

[root@×××_S 2.0]#source  ./vars

NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/keys

注意。这个时候一定不能运行clean-all

[root@×××_S 2.0]# ./build-key CLIENTNAME ( 或者 ./build-key-pass CLIENTNAME)

之后输入相应的信息后,便在key目录下生产了性的客户证书文件了。

注意,生成证书之后也不需要执行./build-dh 等操作了

生成的证书文件 目录:

/home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/keys

下载现有ca.crt 用户名.* 已经配置好client.o***文件发送给用户即可。

方法2、

在服务端的server.conf配置文件中添加下面配置

duplicate-cn

这个配置可以让多个客户端通过一个证书连接*** server。

之后你就把之前的证书,发给他即可

#############################################################################

2、open*** server 如何验证客户端是否登录。

如下:

[root@×××_S open***]# cat open***-status.log

Open××× CLIENT LIST

Updated,Fri Oct 30 13:11:36 2015

Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since

lvnian,10.0.0.1:52400,11665,7503,Fri Oct 30 13:05:23 2015

ROUTING TABLE

Virtual Address,Common Name,Real Address,Last Ref

10.8.0.6,lvnian,10.0.0.1:52400,Fri Oct 30 13:05:24 2015

GLOBAL STATS

Max bcast/mcast queue length,0

END

[root@×××_S open***]#

下面就可以用处用户lvnian已经登录上open***了

#############################################################################

3、open***客户端单个及多个证书撤销

如果某同事离职,那么需要取消其×××的拨入权限,可以通过在服务器端吊销该客户端的证书来实现,官方给出3个吊销证书的可能情况

a、证书丢失,或者无法使用

b、忘记密码l

c、不让其访问

#####################

撤销单个证书的方法:

1.初始化配置文件,修改openssl配置文件

root@×××_S /]# cd /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/

[root@×××_S 2.0]# source ./vars

NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/keys

[root@×××_S 2.0]#

备用建议,在回收授权注释openssl的结尾7行(centos6.X open***-2.2.2不做下面操作也可,不同版本有差别 )

#[pkcsll_section]

#engine_id = pkcsll

#dynamic_path = /usr/lib/engines/engine_pkccsll.so

#MODULE_PATH = $ENV::PKCS11_MOUDLE_PATH

#PIN = $ENV::PKCS11_PID

#init = 0

一般情况下不用上面操作。在撤销不成功的情况下,再考虑这个问题。

#############################################################################

用下面命令撤销用户

命令: ./revoke-full lvnian01

/home/lvnian/tools/open***-2.0.6/easy-rsa/2.0

[root@×××_S 2.0]#

[root@×××_S 2.0]# ./revoke-full lvnian01

Using configuration from /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/openssl.cnf

Revoking Certificate 04.

Data Base Updated

Using configuration from /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/openssl.cnf

lvnian01.crt: C = CN, ST = BJ, L = BEIJING, O = lvnian, OU = lvnian, CN = lvnian01, emailAddress = 759685538@qq.com

error 23 at 0 depth lookup:certificate revoked

[root@×××_S 2.0]#

===========================

吊销完之后,会在keys中生成一个crl.pem文件,这个文件里面有证书的内容

[root@×××_S 2.0]# cat keys/crl.pem

-----BEGIN X509 CRL-----

MIIBXzCByTANBgkqhkiG9w0BAQQFADCBgzELMAkGA1UEBhMCQ04xCzAJBgNVBAgT

AkJKMRAwDgYDVQQHEwdCRUlKSU5HMQ8wDQYDVQQKEwZsdm5pYW4xDzANBgNVBAsT

Bmx2bmlhbjESMBAGA1UEAxMJbHZuaWFuIENBMR8wHQYJKoZIhvcNAQkBFhA3NTk2

ODU1MzhAcXEuY29tFw0xNTEwMzAwNTQ1NDdaFw0xNTExMjkwNTQ1NDdaMBQwEgIB

BBcNMTUxMDMwMDU0NTQ3WjANBgkqhkiG9w0BAQQFAAOBgQAEskt57RD5iDl4B3U5

l64niPgHpikeFcKQL5+jUaiCH01LVnrAuBeuKcbaORa/dR4yc/okhFbXk95/9FLv

wJTLdaAGznFpHs+oy1pgqgPt2x60/kkaCoqNNMcjtsW0k69iiWN3hPISF9LP0XHq

FzyeE5+ZuWMihsQaVKFWiVUYtQ==

-----END X509 CRL-----

[root@×××_S 2.0]#

===========================

同时在index.txt中有的用户信息中被吊销用户首信息会显示为R

[root@×××_S 2.0]# cat keys/index.txt

V       251026022728Z           01      unknown /C=CN/ST=BJ/L=BEIJING/O=lvnian/OU=lvnian/CN=server/emailAddress=759685538@qq.com

V       251026022751Z           02      unknown /C=CN/ST=BJ/L=BEIJING/O=lvnian/CN=lvnian/emailAddress=759685538@qq.com

V       251026022826Z           03      unknown /C=CN/ST=BJ/L=BEIJING/O=lvnian/CN=guo/emailAddress=759685538@qq.com

R       251027050244Z   151030054547Z   04      unknown /C=CN/ST=BJ/L=BEIJING/O=lvnian/OU=lvnian/CN=lvnian01/emailAddress=759685538@qq.com

[root@×××_S 2.0]#

===========================

把吊销的crl.pem 文件复制到/etc/open***/keys目录下。

在到open***的配置文件中加载下面一行内容才算吊销成功

crl-verify /etc/open***/keys/crl.pem

命令操作如下:

cp /home/lvnian/tools/open***-2.0.6/easy-rsa/2.0/keys/crl.pem  /etc/open***/keys/

sed -i '$acrl-verify /etc/open***/keys/crl.pem ' /etc/open***/server.conf

之后重启open***。之后这个账号就无法再登录了

客户端登录的时候,会出现下面问题:

Fri Oct 30 13:59:57 2015 Re-using SSL/TLS context

Fri Oct 30 13:59:57 2015 LZO compression initialized

Fri Oct 30 13:59:57 2015 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]

Fri Oct 30 13:59:57 2015 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]

Fri Oct 30 13:59:57 2015 Local Options hash (VER=V4): '69109d17'

Fri Oct 30 13:59:57 2015 Expected Remote Options hash (VER=V4): 'c0103fa8'

Fri Oct 30 13:59:57 2015 Attempting to establish TCP connection with 10.0.0.3:52115

Fri Oct 30 13:59:57 2015 TCP connection established with 10.0.0.3:52115

Fri Oct 30 13:59:57 2015 TCPv4_CLIENT link local: [undef]

Fri Oct 30 13:59:57 2015 TCPv4_CLIENT link remote: 10.0.0.3:52115

Fri Oct 30 13:59:57 2015 TLS: Initial packet from 10.0.0.3:52115, sid=7bf18f19 5a70c3c0

Fri Oct 30 13:59:57 2015 VERIFY OK: depth=1, /C=CN/ST=BJ/L=BEIJING/O=lvnian/OU=lvnian/CN=lvnian_CA/emailAddress=759685538@qq.com

Fri Oct 30 13:59:57 2015 VERIFY OK: depth=0, /C=CN/ST=BJ/L=BEIJING/O=lvnian/OU=lvnian/CN=server/emailAddress=759685538@qq.com

Fri Oct 30 13:59:57 2015 Connection reset, restarting [0]

Fri Oct 30 13:59:57 2015 TCP/UDP: Closing socket

Fri Oct 30 13:59:57 2015 SIGUSR1[soft,connection-reset] received, process restarting

Fri Oct 30 13:59:57 2015 Restart pause, 5 second(s)

小结:将生产的crl.pem吊销文件复制到/etc/open***/keys/.并在server.conf中添加如下一行内容,重启×××服务,当用户拨入时,Open***就会读取吊销列表中的客户端。

并禁止其拨入。当被撤销的客户端尝试新的连接的时候,***服务会检查加载crl.prm文件,匹配时,阻止连接。当再次revoke其他证书时,这个crl.pem这个文件会被修改。

这个时候可以把/etc/open***/keys/crl.pem 文件改为前缀为用户名。再到server.conf中把配置文件中的注销名称修改为修改后的文件名称即可。

如上面的lvnian01用户,我可以这样修改

mv /etc/open***/keys/crl.pem /etc/open***/keys/lvnian01.pem

sed -i 's#crl-verify /etc/open***/keys/crl.pem #crl-verify /etc/open***/keys/lvnian01.pem #g' /etc/open***/server.conf

如果要吊销多个用户,可以通过上面修改前缀的方式,来吊销多个用户的。

######################################################################

######################################################################

######################################################################

如果不小心吊销错用户了,如何修改回来。

直接把server.conf里面的下面内容注销就可以了

crl-verify /etc/open***/keys/crl.pem

之后重启即可

小结:

open***一般用于功能性的使用,如果是大数据的传输,还是用光纤或者专线比较好。

open***用于读写分离的数据库中,一般用open***远程写,写完之后,远程数据同步到本地,读本地,一般不会读远程

转载于:https://blog.51cto.com/lvnian/1708764

open*** 部署 以及基础应用相关推荐

  1. 公开课视频-《第03章 部署-IT基础架构》-大企业云桌面部署实战-在线培训-视频(奉献)...

    本系列课件用于企业内训.线下培训.公开课.书.项目(本企业下在使用云桌面).  ********************************** 在线-培训班-视频:(已完结) ********* ...

  2. Ansible自动部署(基础篇)

    Ansible自动部署(基础篇) 一.ansible简介 1.ansible介 Ansible这个名字来源于科幻小说,是一种超光速通讯设备.在Linux中,ansible是新出现的自动化运维工具,基于 ...

  3. 新一代微服务全家桶AlibabaCloud+Docker+JDK11阿里云容器部署零基础到项目实战

    新一代微服务全家桶AlibabaCloud+Docker+JDK11阿里云容器部署零基础到项目实战 近年来,微服务架构已经成为企业标配,它以更加灵活的部署方式和高度解耦的架构设计,为企业带来了极大的业 ...

  4. CTF中智能合约部署交互基础

    0x01 前言 Solidity在以太坊中是编写智能合约最受欢迎的语言,一般的CTF竞赛中的智能合约方向的题目都是以solidity语言编写的智能合约. 为什么写这一篇文章,主要是因为在接触智能合约类 ...

  5. 自动化运维之ansible-安装部署与基础命令篇

    一.Ansible简介 Ansible基于Python语言开发,集合了众多优秀运维工具的优点,实现了批量运行命令.部署程序.配置系统等功能. 二.安装部署Ansible服务 Ansible自动化运维环 ...

  6. Docker部署及基础用法

    Docker基础用法 Docker介绍 什么是Docker OCI&OCF Docker镜像与镜像仓库的关系 Docker对象 Docker工作原理 Docker部署 Docker 事件状态 ...

  7. 服务器部署虚拟机基础架构,VMware vSphere 和虚拟化基础架构

    VMware vSphere构建了整个虚拟基础架构,将数据中心转化为可扩展的聚合计算机基础架构.虚拟基础架构还可以充当云计算的基础.完美的VMware vSphere架构是由软件和硬件两方面组成的. ...

  8. Cloudify — 安装部署与基础使用

    目录 文章目录 目录 环境信息 Cloudify 的核心术语 Docker 快捷安装 部署 Helloworld 示例应用 Troubleshooting 环境信息 官方文档:https://docs ...

  9. 持续集成与自动化部署 - jenkins sonar代码质量管理平台 部署和基础使用(五)...

    1 jenkins 安装参考链接 1.1 安装jenkins [root@test-node3 ~]# yum install -y java-1.8.0 [root@test-node3 ~]# c ...

  10. CAS项目部署和基础操作

    文章目录 一.部署cas 1. 复制cas.war到webapps 2. 登录页面 二.CAS服务端配置 2.1. 添加用户 2.2. 端口修改 2.3. 去除https认证 一.部署cas 1. 复 ...

最新文章

  1. Tesseract 3.02 OCR文字识别调查记录
  2. 2020年计算机视觉综述论文汇总!涵盖14个方向:目标检测/图像分割/医学影像/人脸识别等方向
  3. '800a0005' 图片上传出现写入文件失败的错误 -- 修改pload_5xsoft.inc
  4. LetCode-MSSQL销售分析-I
  5. 动态获取某个元素的高度_codeforces 1443D,解法简单,思维缜密的动态规划问题...
  6. pop python3_python3 -- 堆(heapq)
  7. html页面选择附件实现,实现单文件上传,页面局部刷新_html/css_WEB-ITnose
  8. SOA相关资料整理分享
  9. 怒拒Facebook:语音识别大神、Kaldi之父将加盟小米
  10. 将一个字符串进行反转。将字符串中指定部分进行反转
  11. case when 效率_采用机械涡轮复合增压系统优化7.8 L柴油机的 稳态效率和排放性能...
  12. python实现微信自动发信息软件_Python实现给微信好友自动发送消息的示例
  13. java调用有道翻译接口
  14. hyper-V管理器构建win7虚拟机
  15. https 抓包解密
  16. 《黑客之道》- 全网最详细的kali系统安装教程
  17. #define 和typedef的区别
  18. 无法接收到github邮箱验证码的解决方法
  19. maya扇子动画_MAYA制作动画的十大原理!
  20. 学习新体验-itron

热门文章

  1. 电路元件的相量形式及运算
  2. 【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...
  3. 关于研究生发论文的一些事
  4. 【C++】C++STL标准模板库
  5. 操作系统课程设计X2(双倍的”快乐“)
  6. Android进阶——安卓调用ESC/POS打印机打印
  7. axure实现复选框全选_Axure RP实例教程:全选与取消全选效果
  8. PV操作 阅览室登记问题
  9. 华为云IoT智慧物流案例11 | 华为云FOTA升级广和通L610模组
  10. WEB display -复习用 如侵则删