分类目录归档:网络基础

利用OpenVPN实现跨地域跨网络机器互访

可能有不少人知道VPN的,在其中有一部分人应该知道并在使用OpenVPN或其相关技术。看看你的网络连接,是不是有TAP/TUN之类的虚拟网卡?是不是用过一些软件穿墙而出?有一些VPN类型的穿墙工具其实也是基于OpenVPN的,只不过可能自己再封装一个图形界面程序仅此而已。今天我要说的并不是穿墙的事,而是……如题。

普及一下IP与网络互访的问题

我们知道我们现在要访问网络上的机器,我们需要通过TCP/IP协议,利用IP地址找到对应的主机。IP地址分有几类,有一类是公网IP地址,也就是这个地址是全球唯一标识你的机器的(排除所有钻牛角尖的情况),那么通过这个IP地址我可以直接访问到你的机器。还有一类是IP地址是私有IP地址,一般会在局域网内用到,这类地址有一个范围,包括10.开头的(10.x.x.x)、172.16到172.31的和192.168开头的(192.168.x.x)。

私有的IP地址一般在局域网内用到,而局域网是有很多很多的,整个暨大内部可以组成一个局域网,你宿舍里面用路由器可以组一个局域网,你家里用路由器也可以组一个局域网。正因为局域网用的私有IP是不能在整个网络上唯一标识你的(在局域网内可以唯一标识你的机器),所以跨网络或者跨地区(指明显不在同一个局域网内)的时候,你无法直接访问一台只有私有IP地址而没有公网IP地址的机器。

一般的家庭ADSL宽带上网貌似都能拿到一个公网IP,如果你在家里就你一台机器接上MODEM拨号上网,那么公网IP就在你的机器上唯一标识你的机器,全世界都可以通过这个IP访问到你的机器(排除各种防火墙阻挡的情况),而问题是如果你在一个局域网下没有公网IP地址的时候,访问的障碍就产生了,这种情况很常见哦,例如你在家里用个路由器来自动拨号,或者用它来把网络共享给多个电脑,这样公网IP就分配在路由器上面了,你的机器将会得到的路由器所建立的局域网内的局域网私有IP,这个时候外部就算访问路由器得到的公网IP也只能访问到路由器这一层,而无法穿越到路由下的局域网内的机器(这也是路由器隔离隐蔽作用的体现,路由器之下还是有一些办法能够让外边机器访问到内网机器的,例如端口转发,但是不一定适合需求,后详)。

如果说两个机器有一个有公网IP而另外一个没有,那还是可以实现单向的访问的,但是如果两个机器都在局域网内怎么办?这个时候就需要一个中继来辅助了(排除TCP/UDP打洞穿越NAT等技术,什么东西都是有例外的,所以这文章这么多排除排除……)

VPN的再认识

VPN这个东西如果你没有穿过墙没有撞过墙恐怕在企业上班工作之前甚至一辈子都不会接触到(感谢郭嘉用这么强硬的手段来督促我们学习相关技术)。VPN中文是虚拟专用网络,P是private也可以理解为私有,上面说的局域网就是一种私有的网络。我们知道像局域网这样,局域网内的机器是可以通过局域网内私有IP地址互相访问的(再次排除各种防火墙和网关限制)。而VPN正是要去虚拟一个私有网络环境(暂时也理解成局域网吧),来让连接到VPN的机器组成一个虚拟的局域网,可以做一些局域网才能做或者才比较好做的事情(例如互访,访问特定资源)。

说这么多虚的来举下例子,很多企业他们有一些企业内部的资源会存放在企业内部的服务器上面,这个服务器并不允许一般人从外网直接访问,只能在内部局域网访问(例如公司里边办公室组成一个局域网之类的)。但是这家公司有多个地方的分公司,又或者要允许公司里面的人可以在家里办公,可以访问这个内部服务器。那么他们一般会有一个VPN服务器,这台服务器可以对外网提供服务,当外边其他地方的机器通过VPN的客户端软件连接到VPN服务器,那么它就相当于连接到了公司内部的网络(发现这个有点不好解释)。又例如我们暨大的图书馆资源,只能是学校内部网络上的机器可以访问,那么回家了怎么办?也是通过VPN这种方式把外网机器接入到暨大内部网络从而实现访问,很多高校的图书馆都是这么做的。

VPN有好几种类型,例如PPTP VPN,L2TP VPN和标题里面的OpenVPN等等。Openvpn是我看来一种比较好的方式,实现简单支持的设备多,作为服务器安装的OpenVPN可以装在各种服务器上面,包括OpenVZ的VPS,而PPTP VPN就不行。另外作为VPN的客户端,OpenVPN在各个平台下都有相应的工具,覆盖Win/Linux/Mac甚至各种移动平台,另外OpenVPN一般使用证书作为认证手段,默认一个人一个证书,并且默认不允许多人共用一份证书,相对安全一些。

OpenVPN的安装配置过程我就不想说了,网上一搜一大把,一般按照默认配置,我这里提几个关键的东西,例如服务器的配置中:

;push “redirect-gateway def1 bypass-dhcp”    这一行是说是否推送默认网关的设置,推送了的话连接到服务器的所有客户的流量都会转发到服务器那里过(一般穿墙用的就是这么整的),如果去掉了分号注释的话就推送,还需要额外配置iptables和转发的配置,如果只是为了标题说的机器间互访则不需要推送的。

client-to-client    这一行配置是允许及其之间互访的,默认是不允许的(前面有分号注释)。

说了这么多到底切到题没有我也不清楚,OpenVPN服务器客户端配置都不难,都能找到资料。连接上之后那个TAP/TUN的虚拟网卡就会拿到一个虚拟网络的内网IP,默认是10.8开头的,连进去的机器就可以通过这个IP实现互访,是互访哦不是单方向。

我们该如何利用互联网获得新知?

首先在这里想要说一下,我初定的博客努力方向,博客里面现有的文章很多是技术长文,身边的很多童鞋朋友可能不对其有好感。阿黎个人认为自己开个博客如果连自己身边的人都不能吸引的话,那是一个很失败的事情。所以阿黎决定在前期多写一些面向我们广大童鞋的简单易懂的文章,欢迎大家对阿黎的文章提出各种意见。

====================正题分割线=======================

你懂得如何使用网络吗?

这个问题貌似问得有点好笑,在暨大,或者扩大到在我们大学生的群体当中,估计电脑的普及率还是相当高的。阿黎是在高二那年的劳动节才拿到一台二手台式电脑自用,但是很多童鞋估计很小就开始拥有电脑,使用电脑。随着网络的普及,有电脑不联网的情况已经不多了(除了放假回家可能考虑到时间较短拉宽带代价高,阿黎便是如此)。或者就直接说我们在学校的时候吧,网络随手可得(阿黎几乎除了睡觉时间都在上网)。那么,小标题的这个问题,还是个问题么?莫非你想说我不会使用网络?我不天天用着呢。

上网的时候都在干些什么?

各位童鞋上网的时候都在干些什么呢?我们大部分人可能是这样的:打开电脑,网络已经自动连上了,点开QQ,哎呦好多未读消息,空间/微博/人人打开,好多新动态~~我看啊翻啊,看见有趣的东西我就回复/转发一个?信息流看到页底之后,发现提示谁谁谁又更新了动态什么的,于是翻到页头继续看,如此就陷入了一个死循环……上网时间是这样用的童鞋请自觉举起你的右手。

干这一些我获得了什么?

你可能觉得,我这样上网没什么问题的啊,我获得了很多东西啊,我知道了我朋友们的动态,有时还能看到他们分享的一些好文章呢。嗯,听起来蛮有道理的,但你能说说今天你花的这几个小时,获得了哪些有价值的信息、有帮助的知识吗。或许你转了几篇蛮有技术含量的文章,但你有去看吗,你看懂了吗?

sns是个浪费时间的玩意!

阿黎身边的童鞋朋友可能发现,之前阿黎好长一段时间停止了所有的sns更新,包括qq空间、微博、人人。其实这正是因为我认为sns太浪费时间了,它们在你打开页面之后,就会不断的给你提醒有新的信息什么的,其实是一种强制给你灌输信息的实质。我们有多少童鞋是从打开电脑到关电脑一直开着浏览器一直刷着微博等sns的页面的?所以阿黎个人否定这一种浪费时间在sns上面的互联网利用方式。

当前我们是如何获取新知识的?

其实,普遍地说,人生存着无时无刻不在接受着新知识,最常规的,是我们的教育。想想我们平时的一天是怎么过的,上课?课堂是获取知识的其中一种方式,希望大家都是有好好认真去听课的(不像阿黎)。认真想一下,阿黎觉得,比起大学之前,现在在课堂上好像能学到的东西越来越少了。除了课堂,如果阿黎浑浑噩噩的过的话,那么可以说我获取新知的脚步基本停了,这是一个很可怕的事情,人的生命在于不断学习,亲爱的童鞋们你们自己好好思考一下有没有这么一回事。

那不是还有互联网么?我们不是天天在上网么,阿黎你说sns浪费时间,那么

==========我们该如何利用互联网获得新知?============

搜索意识

人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。在大学这个很强调独立自主的地方,很多时候有疑惑有问题只能自己去弄清楚,那么阿黎想说,很多时候,谷歌百度是个好老师。相信身边很多人都被阿黎骂过没有“百度意识”,在这里直接说搜索意识(因为阿黎越来越讨厌百度了),那么搜索意识是什么呢?

其实,不仅是学习上,而且在生活中,各个方面我们随时都会遇到问题,那么,遇到问题的时候你能够恰当的想起来利用搜索引擎解决问题,这就是我口中的搜索意识。当然了,我这里说了要恰当,不可能说我钥匙找不到了我也 Google 一下,但是要知道很多问题都是可以通过搜索解决的(童鞋们的作业啊神马的肯定不是这样解决的对不?)。例如阿黎今天中午做饭,要做凉瓜炒蛋,阿黎第一时间就专门去搜了凉瓜炒蛋要怎么做才好吃,然后最终问题就很好的被解决了。

这可以说是一种反射吗?学生物的童鞋来说一句。阿黎本人可能已经在大脑里面形成了一种条件反射——有问题,搜索去。没错,要的就是这种程度,当你更多的使用搜索引擎,你可能发觉互联网变得更友好了。而形成在网上进行搜索以解决问题的这样一种习惯性思维即搜索意识,是很有帮助的。总是觉得太多的童鞋朋友对于搜索引擎这种方便实用的互联网工具认识不深,更谈不有搜索意识。这里再提一点,google一下“阿黎的个人博客”第一个结果就是阿黎的博客啦,百度那边还没有。

如何用好搜索引擎

你可能会说,我知道百度谷歌啊,但是我经常搜不到我要的东西啊。这个问题就是搜索技巧的范畴了。你脑海里应该要有这个概念:如果这个问题不是相当相当冷门的问题,搜索引擎应该能够搜到的而你没有搜出来,那是你的能力问题,学习搜索技巧也是必须的。搜索引擎有很多技巧,甚至它还有一些特定语法规则来辅助搜索,在这里阿黎只说实用的。

你往搜索框里面输入什么了?

在网上,很多网站各种要填表单的地方,都会在要填的表单域前面辅以文字说明告诉你这个框框里面要填点什么?但是搜索框这个东西,一般不会有什么提示,最多就只有一个放大镜模样的按钮。有没有人告诉过你,或者你知不知道,那个搜索的输入框要填的是关键词,没错,是词。一般搜索引擎容许你打进去一个句子,甚至带上问号。但我们提倡简化输入的查询信息,同时要注意你所使用的字词是否正确。

怎么输入关键词能找到我想要的信息

阿黎在这里说一个比较简单易行的办法。首先,你要明确你想找的信息是什么,包含你想要的信息的这个页面应该包含些什么内容,然后就是一般的提取关键词的操作了,把你想要的那些结果页面的关键词提取出来输入进去搜索框就没错了,对于有的童鞋可能正确提取关键词是一个不简单的事情。我们应该尽量去精确我们的关键词,不要选择那些含义比较宽泛的关键词。

其他高级搜索技巧

这里阿黎暂时只说一个阿黎比较常用的“site:”语法,使用它可以指定你搜索的范围,有的时候某些网站自身的搜索做的不好或者是有限制,例如很多论坛规定要先注册会员才可以使用站内的搜索,这时候我们就可以用一般的关键词加上“site:网址”这样的命令指定搜索某个网站里面的东西,例如要搜索阿里博客里面的东西就可以在关键词之后加上site:a-li.me。还有很多其他特别的语法如果童鞋们有兴趣也可以去搜索来看一下。

稳定的获取知识途经

等待下一篇,阿黎将手把手教你使用google reader

 

 

 

利用win7自带虚拟无线网卡端口共享网络

首先,本文讨论的是基于Windows 7系统自带的功能,Vista和XP里面没有的,这个是Windows 7才加入的特性。

第一部分、配置虚拟无线网卡

第一步,以管理员权限打开命令行提示符,按下快捷键win(alt旁边的windows徽标键)+r,你也可以在开始菜单找到“运行”,打开运行对话框,输入cmd后确定运行。

第二步,输入下面的语句,配置你的无线路由

netsh wlan set hostednetwork mode=allow ssid=”Hosley ‘s private AP” key=88888888
这里解释一下,ssid=你的无线网络名字;key=无线网络的密码,貌似要8 位以上;上面的例子我这个命令就创建了一个名字为Hosley ‘s private AP,密码8个8的虚拟无线路由。这时候你可以在系统控制面板 – 网络连接里面看到一个新的无线网络连接生成了,例如我的是下图,名字可能不一样,但是你看到这个链接的网卡是Microsoft Virtual WiFi Miniport…。证明它是使用的虚拟的无线网卡。

第二部分、虚拟无线路由地开启与关闭

同样在命令行控制台下操作,开启这个承载网络的命令是

netsh wlan start hostednetwork

如果你要关闭,可以输入下面的命令

netsh wlan stop hostednetwork

当你开启之后这个承载网络之后,别人在附近搜索wifi就可以搜索到你之前创建的热点,例如我这一个Hosley ‘s private AP

同时你在网络连接那里看到原来未连接的那一个虚拟路由,现在已经连接上

先别着急连上这个热点,现在连上还不能实现共享网络,且看下一部分

第三部分、共享网络

打开控制面板 – 网络和共享中心 – 更改适配器设置,在这里面你需要找到你有联网的那个连接,不管是无线连接还是有线连接,右键点击选择菜单最后一项“属性”,在弹出的对话框中选择“共享”选项卡,选中第一项“允许其他网络用户通过此计算机的 Internet 连接来连接”,然后按下确定关闭对话框即可

什么?弹出来错误对话框?像下面这样?

这是因为你关闭了windows自带的防火墙服务,win + r 运行,输入services.msc打开“服务”配置窗口,在列表中找到Windows Firewall服务,右键点击启动即可,如果你已经禁用了这个服务,你还需要先右键属性将其启动类型选择为自动或者手动,然后再启用。

当成功开启共享之后,你会发现你原来联网的连接的信息上面多了一个已共享的字样,这就成功了。现在你用手机或者别的电脑都可以通过你这个电脑的虚拟的路由器上网了。