2014年7月9日星期三

【玩物的化学实验室】乙醚的制备

乙醚这东西,怎么说呢,对于好多基(hen)友(tai)来说那就是一种迷の液体啊。大量吸入必有神奇的功效!
其实乙醚的制备原理很简单,就是在浓硫酸条件下乙醇的分子间脱水。反应需要的温度是140℃,而乙醇的沸点很低(78℃),乙醚更低(34.6℃)。所以要先将催化剂加热到反应温度,再把乙醇直接加进去。而低沸点的乙醚一生成就能被蒸出来。
主反应如下:

副反应很多:

最容易发生的就是170℃会生成乙烯的反应。不过控制好温度就能比较避免。
乙醚是极其易燃、易挥发的,而且还有一定的麻醉作用,所以禁止明火,需要戴上口罩,并且在操作过程中尽量远离热源。
本次会用到三口烧瓶,圆底烧瓶,分液漏斗以及一些蒸馏必须的仪器。
实验药品简单粗暴,过量的浓硫酸,适量无水乙醇和纯化干燥所要用到的氢氧化钠溶液、饱和氯化钠溶液、饱和氯化钙溶液还有无水氯化钙固体。


好,实验开始。

100mL三颈烧瓶里加入13mL乙醇和2粒沸石,并且浸没在冰水浴中,再缓慢加入12.5mL浓硫酸。
像这样,用滴管将浓硫酸缓慢加入 并且轻微振摇一下。

加完后搭载仪器,中间用装有滴液漏斗加入25mL乙醇,并且保持底部伸入反应液面以下。接收管的支管也要接上管子通入水槽。接受瓶用冰水浴。

全套设备是这样的。
三颈烧瓶像这样搭载好。
接收管的支管也要有橡皮管。

给三颈烧瓶加热,以较快的速度上升到140℃的时候,开始滴液。保持馏出液和滴液的速度持平。尽量维持反应温度在135~145℃之间。
120℃后升温极快,有可能会变成这样。

如果说过了冷凝管还是气体,有可能生成的就不是乙醚而是乙烯了。
温度再高一点就会变成比碳化还严重的样子,生成的是烯烃聚合物。
UP的乙醇也被碳化了不少,经过自己捣腾了几下勉强还能抢救一下。


收集到的馏分无色澄清,迅速移入洁净的分液漏斗里,加入8ml5%的氢氧化钠溶液。振摇后放气,重复几次静置分层。

由于两液相都是透明澄清的,分液时要注意。
有机层(产物)都是上层溶液,所以只需要放出下层即可。之后再加入8ml饱和氯化钠溶液一次,8ml饱和氯化钙溶液两次,按照氢氧化钠的操作方法操作。

氯化钙能和未反应的乙醇配合产生白色物质,因此既能除水又能除醇。
之后加入适量无水氯化钙开始进一步除水。

轻微振摇,这个过程大概要30分钟。

最后用60℃水浴加热,用一个小一点的锥形瓶在冰水浴条件下收集33~38℃的馏分,即可蒸出无水乙醚。

如图所示,此步无需加热,乙醚就沸腾了。
整套装置如图。
收集到的是无色澄清又有奇异香味的米の液体啦!
部分参考资料:乙醚 
PSup每周都有一次有机化学实验,如果ACer们喜欢的话我每周都能来一发噢!
PSP:部分药品过于危险,如需尝试请遵医嘱。
相关联动——玩物的化学实验室第一期:环己烯的制备 第二期:甲基橙的制备 第三期:乙酰乙酸乙酯的制备
预告一下,下周是肉桂酸的制备,欢迎收看!

福利:

用乙醇和浓硫酸加热制取乙醚

目的:用乙醇和浓硫酸加热制取乙醚
用品:蒸馏烧瓶、双孔塞子、温度计、分液漏斗、橡皮管、玻璃管、冷凝管、接管(带侧管)、锥形瓶、玻璃水槽、油浴、量筒、试管、试管夹、烧杯、玻璃棒。
冰、石蜡油、酒精(95%)、浓硫酸。
原理:将乙醇和浓硫酸共热,把温度控制在140~150℃之间,就生成了乙醚。
准备:在一只250毫升的蒸馏烧瓶上配一双孔塞子,分别插入分液漏斗和250℃的温度计。另用一支温度计插入油浴中,以控制反应温度。分液漏斗的末端应插入液面下10毫米处,如果露出液面,加入的乙醇未经反应就会因受热而蒸发,插入过深,乙醇难以滴下。如果分液漏斗的颈不够长,可以用短橡皮管接上一段玻璃管。
蒸馏烧瓶的馏出管和直形冷凝管相连,冷凝管末端接上一个带有侧管的承接管,再和150毫升的锥形瓶相连。在承接管上装一长橡皮管,引至窗外,让未能完全冷凝的乙醚蒸气在远离灯火处逸出。锥形瓶要浸在冰水里,以防乙醚挥发。蒸馏烧瓶要用油浴加热,以受热均匀,使温度保持在130~140℃。
操作:
在蒸馏烧瓶里加酒精25毫升,再加25毫升浓硫酸,边加边振荡,待硫酸和酒精充分混和后把烧瓶装在铁架台上。实验时,通过油浴把蒸馏烧瓶中溶液加热到130~140℃,即见有乙醚馏出,这时再从分液漏斗把50毫升95%酒精逐滴地加入。控制一定的温度,待酒精滴加完后,再加热10分钟,促使反应完成,然后停止加热。
注意事项:加入酒精的速度不能过快,要和馏出乙醚的速度保持平衡,以防没有反应的酒精蒸馏出来,减少乙醚的产量,又使馏出的乙醚里含有较多的杂质乙醇。太慢,则液体的温度容易升高,又有利于消去反应的发生。

2014年7月5日星期六

使用putty和ssh翻墙教程

使用putty和ssh翻墙教程

Putty这个软件虽然从体积上说非常小,500K还不到,功能上却一点也不含糊,相信许多站长童鞋都用过,非常的绿色方便,下面介绍下如何通过Putty的ssh连接代理实现翻墙。
准备工具
1.Putty软件→点击下载
2.可以通过ssh连接的海外VPS或者虚拟主机
3.火狐浏览器
步骤
Putty的设置
1.打开Putty,在‘‘Host Name(or IP address)’’里填入你的主机域名或者IP地址,Port一般都是22不用管。
ssh翻墙-2
2.然后点开左边的‘’SSH‘’选择‘’Tunnels‘’,在这里
ssh翻墙-3
3.勾选‘’Local ports accept connections from other hosts‘’
4.在最下方选择‘’Dynamic‘’
5.在‘’Source port‘’栏里填入端口号,可以自己设置,比如‘’7788‘’,不要忘了点击‘’Add‘’完成后点击‘’Open‘’
在这里就进入了主机SSH的登陆界面,输入账号密码连上后,打开火狐去设置代理。
ssh翻墙-4
火狐的设置
ssh翻墙-5
1.打开火狐的工具→选项→高级→网络→设置
2.选择‘’手动设置代理,在”SOCKS”主机一栏里输入‘’127.0.0.1‘’,端口填入刚才自己在Putty里设置的端口,如‘’7788‘’
3.然后点确定完成配置。
4.在这一切都完成后,会发现仍然不能够访问墙外网站,这里涉及到万恶DNS污染问题,而火狐可以很容易的设置远程DNS解析防止DNS污染。
解决DNS污染
1.在火狐地址栏输入‘’about:config‘’。
2.点“我保证会小心”。
3.在过滤器中输入‘’network.proxy.socks_remote_dns‘’。
4.双击,修改值为ture,关闭页面。
效果如下图:
youtube

来源:兔子博客




选购vps前你应了解的事情

选购vps前你应了解的事情

VPS(虚拟服务器)

VPS就是在一个服务器(母鸡)上虚拟出好多好多台小的服务器(小鸡)。它可以像服务器一样运行好多好多东西!(我一般买来做做小网站或者搞个VPN、shadowsocks代理翻翻墙什么的)但是在购买之前我们要了解什么呢?

架构及技术支持

这是很让人关注的问题,基本架构中xen和onapp是目前最给力的,但投入成本较高,所以使用的商家较,先说xen架构,也就是xenserver!还有kvm比较方便,一般都有vnc可以自主选择安装,性能也不错!
可严重超售的平台常见有openvz和某些平台构架的Hyper-V。Hyper-V和openvz因为可以超售,所以比较靠销量商家的技术能力来超售,价格相对较低,性能极差。
1.VPS采用的架构,xen,openvz,Hyper-V,kvm或vmware,onapp
2.技术支持,全管理,半管理,无管理
3.电话,邮件,工单以及相关在线以及响应时间
4.提供服务是否需要费用(部分机房售后服务要花费的,使如PR)

安全性

做站的除非是没有流量或低调到无与伦比,否则垦定会有一些SYN/DDOS/CC类攻击,这就要看本人技术能力,以及机房关于安全防护方面的能力。
1.是否提供DDOS防护,防护能力
2.DDOS攻击后处理方案,nullIP或者直接删除VPS退款
3.VPS的系统负载、IO性能方面的限制
4.重装系统、删除VPS方式(是否需要验证)
5.硬盘是否采用raid10架构(做阵列)

配置方案

关于CPU可以咨询商家客服,内存以及硬盘的资源占用性限制等,如果是站群用户,还要关注一下IP以及增加IP的费用。
1.CPU的真实性能,核心、频率
2.内存及硬盘的大小
3.流量及带宽
4.拥有几个IPV4和几个IPV6地址
5.是否支持扩容升级,以及购买额外IP的费用
6.是否支持linux/windows操作系统

控制面板

现在大多数商家都会有VPS控制面板,但分成免费版、商业版或干脆手动(早期)。现在也在关注面板的安全性,例如前段时间的solusvm事件,以及由户被盗后VPS被重置现象(可百度)。
1.是否包括控制面板
2.常见的solusvm,hostbill,xensystem
3.控制面板的功能,是否使用过或是否操作便利

内容版权

如果你是做图片、擦力球、外贸或干脆XX网站,就要关注一下这方面的内容。例如,大人内容除幼幼和小动物外,不违反大多数美国法律……
1.内容方面要求,中国法律、美国法律
2.如果遇到被墙IP如何解决
3.如果有版权投诉怎么办

成本与退款

其实VPS也遵守市场规则,性能与成本成正比;如果预算许可范围内,尽可能选择价格高一点的,因为价格越高,相对而言邻居的素质越好,折腾越少。
1.购买VPS的预算成本
2.是否支持退款,几天?退款到帐户还是支付宝等(是否含手续费)

TOS用户协议

建议购买前一定要看一下TOS协议,是否允许扶墙或者关于退款方面的协议,虽然说不一定能起什么作用,但在售后方面还是可以据理力争(Paypal争议)正义曝光等。
1.禁止行为,允许行为,免费及收费服务
2.数据备份,赔偿条件,欠费处理
3.终止服务,适用法律

竞争力与口碑

在购买前可以google商家名字+骗子,来了解一下口碑
1.商家成立时间,所属团队还是个人
2.域名注册时间以及年限
3.搜索引擎口碑
4.用户口碑

(本文内容来源于网络)

翻墙教程之DNSCrypt+unbound

翻墙教程之DNSCrypt+unbound

介绍

最近没写什么文章,在家呆久了状态时好时坏,很是纠结,日记、冥想、锻炼时断时续……有点偏了>_<。还是说说GFW吧,GFW的主要屏蔽手段有三种,一是DNS污染、二是IP封锁、三是关键字过滤。其中DNS污染是最基础也是应用最广的一种,如果能够解决DNS污染问题,90%的网站我们都可以正常访问了。其应对方法一般是将从域名服务器解析得到的正确的域名-IP对放到本地电脑的hosts文件中,这样一来在访问相应的网站时,就不需要在去域名服务器查询了,因为在我们自己的电脑中已经有了相关的记录。
这种方法的优点是速度快,不需要再去域名服务器查询。缺点是必须人工维护hosts文件,如果一个网站的服务器改变了,并且hosts文件没有随之更新就会无法造成无法访问。通常都是做不到实时更新hosts文件的,而且也不可能将所有被DNS污染的网站都存放到hosts中,一般只有一些热门的被GFW的网站,其他相对冷门的网站就需要使用其他的方法了。而DNSCrypt-proxy+unbound可以做到动态解析,配置好之后与正常上网无异,以后再也不用担心hosts文件怎么还没有更新的问题啦。
由于DNS查询一般是使用的不可靠的UDP传输,所以给了GFW可乘之机,而DNSCrypt-proxy和unbound可将查询DNS的过程加密或使用可靠的TCP传输。DNSCrypt-proxy可以指定特定的DNS服务器并将与服务器传输的信息加密(并不是所有服务器都支持加密),unbound可以使用可靠的TCP传输并将解析到的结果缓存到本地。因为DNSCrypt使用的是海外服务器,查询最快也需要200ms左右,如果你不想每次点击网页都增加200ms,那么unbound缓存必不可少(首次解析可能会高一个数量级)。

安装与配置

怎么安装我想不用多说了吧,ubuntu上有unbound的包,而DNSCrypt-proxy只能从源码编译。两个软件都均支持跨平台,linux与windows版都有,其中DNSCrypt还支持ios和android,官网与下载地址如下:
两个网站上都有详细的安装说明,需要注意的是DNSCrypt需要安装libsodium。
windows上DNSCrypt可以直接作为服务安装,而linux上如果需要开机自启动则需要特别的配置。配置方法如下:
#首先创建DNSCrypt的用户和用户组
sudo adduser --system --quiet --home /run/dnscrypt --shell /bin/false --group --disabled-password --disabled-login dnscrypt

#再将下面两条命令添加到/etc/rc.local中
mkdir /run/dnscrypt
/usr/local/sbin/dnscrypt-proxy --provider-key=8768:C3DB:F70A:FBC6:3B64:8630:8167:2FD4:EE6F:E175:ECFD:46C9:22FC:7674:A1AC:2E2A --provider-name=2.dnscrypt-cert.ns2.jp.dns.opennic.glue --resolver-address=106.186.17.181:2053 --local-address=127.0.0.1:40 --daemonize --user=dnscrypt
其中--provider-key是与服务器验证用的,--provider-name--resolver-address都是指明使用的是哪台服务器,--daemonize是以守护进程启动,--user=dnscrypt是以dnscrypt用户启动。--local-address=127.0.0.1:40是在本地的40端口启动DNSCrypt,默认的DNS服务端口53需要让给unbound。DNSCrypt官网上提供了多个服务器地址,依次尝试过大部分其中上面的这个日本的服务器速度最快并且受GFW影响最少,但缺点该服务器没有缓存国内大多数网站,需要继续向上迭代查询花费时间较长,不过这个缺点可以使用unbound解决。另外虽然还有两个澳大利亚的服务器也很快,但是其返回的地址是根据地理位置进行优化过的,比如plus.google.com解析到CNAME里就带有china,这些地址可能受到GFW特别照顾,导致网站无法正常打开。
配置好DNSCrypt后再将本地的DNS改为127.0.0.1,linux用户可以直接将/etc/resolv.conf里的配置改为nameserver 127.0.0.1,windows用户也需要做相应的修改,上面的DNSCrypt启动时的选项也是。然后再将unbound的配置文件/etc/unbound/unbound.conf中添加以下信息就可以正常工作了:
1
2
3
4
5
6
#下面这条添加到原有的server小节末尾
    do-not-query-localhost: no
 
forward-zone:
    name: "."
    forward-addr: 127.0.0.1@40

优化

DNSCrypt没有什么可以优化的,主要是unbound的优化。先将我自己的配置文件贴出来再慢慢讲解。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
server:
    verbosity: 0
 
    # use all CPUs
    num-threads: 2
 
    # power of 2 close to num-threads
    msg-cache-slabs: 2
    rrset-cache-slabs: 2
    infra-cache-slabs: 2
    key-cache-slabs: 2
 
    # more cache memory, rrset=msg*2
    rrset-cache-size: 100m
    msg-cache-size: 50m
 
    # more outgoing connections
    # depends on number of cores: 1024/cores - 50
    # with libeven no more 1024 limits
    outgoing-range: 450
    num-queries-per-thread: 512
 
    # enable extended statistics.
    statistics-interval: 0
    extended-statistics: yes
    # set to yes if graphing tool needs it
    statistics-cumulative: no
 
    log-time-ascii: yes
    hide-identity: yes
    hide-version: yes
    prefetch: yes
    do-ip4: yes
    do-ip6: no
    do-udp: yes
    do-tcp: yes
    tcp-upstream: yes
    do-daemonize: yes
    module-config: "validator iterator"
    do-not-query-localhost: no
 
forward-zone:
    name: "google.com"
    forward-addr: 127.0.0.1@40
 
forward-zone:
    name: "codeplayer.org"
    forward-addr: 127.0.0.1@40
    forward-addr: 114.114.114.114
 
forward-zone:
    name: "."
    forward-addr: 127.0.0.1@40
    # forward-addr: 208.67.222.222
    # forward-addr: 208.67.220.220
    forward-addr: 8.8.4.4
    # forward-addr: 8.8.8.8
 
remote-control:
    control-enable: no
其中比较关键的是forward-zone和server节中的prefetchtcp-upstream这段。后者是强制开启TCP防止GFW干扰,前者是unbound从哪里转发DNS到本机,forward-addr是转发源的DNS服务器地址,name哪些域名从该地址转发,比如name: "."就是所有的域名,name: "google.com"则是所有的gogle.com的域名。
forward-addr: 127.0.0.1@40的意思就是从DNSCrypt转发,还记得上面我们设置了将DNSCrypt从本地端口40启动吗?还有由于unbound无法在一节中设置多个name,所以必须将不同的name分成多个forward-zone节。另外在一节中配置多个forward-addr的情况,由于不清楚unbound程序内部使用的什么算法,经过几次测试推测是使用的先返回的DNS服务器。
另外server节一中还配置了一些性能和静态缓存的优化,不过我们只是在自己电脑上使用,不会有太大的流量,所以一般也不需要配置这些,感兴趣的可以看unbound官网上的资料。由上面的配置可以看出,我将大多数域名都设置为从8.8.4.4解析,因为8.8.4.4服务器的国内网站DNS缓存比较全,所以速度比较快。而只有google.com的域名使用了DNSCrypt加密传输,由8.8.4.4解析到的google部分服务的CNAME也带有china,所以无法正常访问。
如果使用了unbound却不能正常打开网页,尝试删掉原配置中的auto-trust-anchor-file: "/var/lib/unbound/root.key"试试。

总结

可以看出大部分域名解析其实不需要DNSCrypt就能完成了,unbound自带的强制TCP功能就可以满足大部分需求了,想要偷懒的不需要安装DNSCrypt也是可以的。DNSCrypt比unbound更加安全,不过缺点是不能缓存解析到的DNS,而且也只有少数的服务器支持DNSCrypt。
防止有人不知道,最后我再罗嗦两句。我们已经解决了DNS污染的问题,那么如果遇到了IP封锁与关键字过滤又该怎么办呢?如果所访问的网站支持https,则只要使用https访问就可以轻松破解关键字过滤的问题了,很多浏览器都有强制开启https的插件。如果遇到了IP封锁或网站不支持https,那么就需要goagent了,详情见这里:https://code.google.com/p/goagent

参考文章