当前位置:首页 » 操作系统 » vpn服务器源码

vpn服务器源码

发布时间: 2022-08-26 18:51:32

Ⅰ lfs找不到find和xargs

unix学习方法-高手之路
姜道友(二〇〇七年二月十四日)

1. 基础学习.................................................... 1
2. 配置服务器.................................................. 1
3. 软件安装与服务器管理........................................ 2
4. 更换思纬.................................................... 2
5. 学习其它unix系统............................................ 2
6. 学习shell编程............................................... 3
7. 学习C编程................................................... 3
8. 制作自己的unix发行版........................................ 3
前言:
对于一些想学习linux及正在学习linux系统的人,非常希望成为linux甚至unix高手,本人从事unix方面的工作很多年了,想介绍一下自已的经验
Unix有很多分支,这里不再赘述,一般来说主要包括:Linux、Solaris、HP-UNIX、AIX、SCO、BSD、AS400等等系统,一般人精通2到3门类即可,触类旁通即可很快掌握其它系统。下面是本人的经验:
1. 基础学习
买一本Linux基础方面的书籍,主要讲述基本理论及基本命令,如:《Linux基础》、《Redhat 9.0系统管理员完全学习手册》;或者在网上下载一些基础方面的资料。系统地看完一本书,并在linux系统中(可以用vmware安装一个虚拟机)练习基本命令。(之所以从Linux开始,是因为相对其它unix系统,Linux相对比较简单或容易入门)
2. 配置服务器
可以尝试配置一台web服务器或ftp服务器或邮件服务器(sendmail)或其它应用服务器如:vpn(pptp或ipsec)。刚开始配置时不要追求完美,只要实现基本的功能即可。这部分基本上照搬书的步骤即可实现。
3. 软件安装与服务器管理
可以试着安装一些源码程序(不要使用rpm软件包安装或带有install的程序安装),通过./configure make make install等步骤掌握程序的编译与安装方法。同时掌握Linux服务器日常管理方法:如日志管理、进程管理、备份与恢复方法、用户管理、权限管理等等,基本成为一个Linux系统管理员。平时多访问linux技术方面的网站或论坛,也可增加你的技术和经验。
注:很多人学习或使用Linux多年,但水平仅仅停留在这里
4. 更换思纬
如果系统了学习了linux基础方面的知识并简单配置了一些应用服务器,并掌握了命令的基本用法,这时需要更换思纬,学习一下Linux架构方面的知识,并深入了解Linux系统体系结构,如etc目录是什么作用 /usr/bin /usr/spool /var /opt是什么作用,ext3文件系统有什么特点等等。从思纬上区别看待Linux系统。同时可以试着编译一下内核,并熟悉内核中的功能模块,通过对内核的认知,可以让你深入了解linux核心的一些技术。
5. 学习其它unix系统
如果基本上熟悉了Linux系统,现在可以学习其它系统了,如:Solaris、AIX、BSD…………等等,毕竟很多重要服务器不是Linux系统。很多系统可以在虚拟机上安装,如安装一台Solaris x86虚拟机或从网上下载SCO虚拟机或…………在虚拟机上系统地学习该系统,熟悉它的架构,并与Linux比较一下有什么不同。对于一些专用的系统,网上也有好心人公布测试机信息,你可以远程登录学习(不要删文件或破坏哟)。在学习其它系统过程中,可以访问相关系统的BBS论坛,看一下别人的问题是怎么解决的。如果你很熟悉Linux系统,学习其它unix系统应该很快。当然如果你所在的公司有一些服务器如:SUN880或HP服务器或IBM服务器等,你应该很快可以成为有经验的solaris/HP-UNIX/AIX高手的。
6. 学习shell编程
作为一个真正的优秀unix系统管理员,不懂shell编程是绝对不行的(注意是绝对),因为在unix系统中,很多是shell脚本程序,掌握了shell编程技术,你可透彻地去了解unix系统中程序的运行情况。而且对于unix系统,很多系统管理可以通过编写shell脚本程序来实现,如自动备份、自动检查网络断线并发邮件通知、自动检查VPN状态、收集PPTP用户拨入信息等等。精通shell编程,让你轻松灵活地管理和驾驭Unix系统。
7. 学习C编程
这一步我就不多说了,毕竟达到这一层次的unix系统管理很少(开发人员除外)。Unix中的很多程序是通过C编写的,掌握编程技术,你可以编写unix下的应用程序。
8. 制作自己的unix发行版
如果对Linux进行内核编译、程序裁减、系统优化等,你可以制作自已的unix系统。象现在Linux发行版太多了,但都是Linux内核,只是文件与系统组织方式不一样而已。我们单个人是无法制作象Redhat或debian这样的系统,但可以制作小的专用系统,如制作专用的web服务器或专用的网关防火墙系统。象IPCOP()就是这一类,大家可以参考或受到启发。

写给想成为Linux 高手的人们

首先,我想引用一下别人说过的一句话:除非在过去的十年你一直生活在山洞里,否则你一定听说过linux.
是的,现在听说过linux,会一点linux基本操作的人多如牛毛,然而真正能用linux做一点事情的确少之又少,这就造成了现在的状况:各大 linux论坛十分热闹,但我国linux到底是什么原因造成了这样的状况? 纠其原因,只有两个字:浮燥!
如果在论坛里来一次调查投票,看一下在论坛里的人到底有多少人手头有一本以上的正规linux教材.我想这个数字不会超过30%. 如果再问一下,有多少人完整的读过各发行版自带的入门文档,系统定制文档,系统管理文档和系统安全文档,恐怕这个数字不到10%. 如果进一步再调查一下究竟有多少人静下心来学习过操作系统和计算机网络等和linux学习十分密切的专业课程,那么恐怕只有3%的数字都不到了.
这让我想到了98年前后IT泡沫时代的中关村.在中关村的大街小巷,到处是一个个意气分发牛哄哄的IT精英.他们戴着默镜,剔着小平头,张口闭口都是网络,安全,信息,黑客,代码,产业.T恤背后写着三个字:别惹我! 然而最后IT泡沫一过,只有那些真正肯安安心心静心学习的人在IT界存活了下来.

现在国人学习linux的状况也是这样,学linux的人个个都意气分发,以为学习linux会用linux是多么了不起.学了一点皮毛就认为很牛了.但是那些企业用人单位却很难找到真正适合的linux人材.因此,我想就目前的状况发表一下我的看法.

首先,这篇文章是写给那些想成为linux高手,并真正想用linux做些事情的人.如果你只想做一个菜鸟,没事的时候在你双系统启动的电脑上偶尔选一次 linux,然后没事进去偷着乐,那就请你自便.另外,我想说明,和真正的牛人比起来,我自己还处于一个比较低的水平.我没有读过内核源代码,不知道 linux工作原理等等,但是通过摸索,至少我已经找到了通往高手的道路的方向.因此还是想说两句.

1,linux不是玩具
如果你想系统的学习linux,你必需清楚的认识到这一点.现在有很多人,号称是linux爱好者,但是他们大部分的事情还是用windows 做,而linux只是作为一个随便玩玩的系统.他们懂得一些linux的基本操作,知道有linux这个玩艺,也因为经常听人家说linux好就咬定了 linux就是好.只要有人说linux比windows差,那么他们就奋起反驳,他们也看不起用windows的人,认为用windows的人水平低. 但是自己用电脑的大部分时间还是用windows并且把重要的文件都放在了windows分区,因为他们骨子里只把linux当做玩具,没有真正领悟 linux的精髓所在.如果你真正想系统的学习linux,想用linux有所作为,那么请忘记windows的思维方式,慢慢感受和习惯linux 的操作方式,总有一天你会真正体验到他的奥妙所在,从而从自己内心深处喜欢他,使用他,而不是为了赶时髦或向人炫耀而使用他.

2,手头有一本好的入门教材吗

"如果你还没有好好的读完过一本linux安装及入门教材就不要到初学者论坛来问题!因为你连问问题的资格都没有! " 这是我的一个比较偏激的观点.

如果你现在开始下决心学习linux了,那么第一件你要做的事情是到书店去挑一本好书.而不是到论坛社区去问该用什么版本,该如何学习 linux.一本好的入门教材可以让你快速领悟linux的操作方式,系统的基本使用等等.而且都是前人总结经验写出来的,他可以帮你搭起一个学习 linux的框架,对linux有一个总体的认识.就好比建一撞大楼前先打好地基,搭好混凝土框架.以后就可以慢慢往这个框架里添砖加瓦,最后建起大楼. 而那些想急于学习的,不想看书,只想靠混论坛来学习linux知识的人,就好比建一撞大楼,今天建好第一层,然后第一层就要全部粉刷好,装修好,家具买好住进去,然后第二天再开始建第二层.这样没有整体规划的学习是学不好linux的,最后的结果是浪费自己的时间,也浪费别人的时间. 如果你不信, 可以让实事去告诉你,以一年为限,你和你的一个朋友同时从0开始学linux,计算机基础差不多.你去买几本好书自己慢慢看边看边做实验,让你的朋友整天到各大论坛瞎混零散的学些linux知识.也许一开始,你的朋友会比你懂得多,但是一年以后你的水平肯定在你的朋友之上. 在初学阶段,不要随便在论坛上发问,多看书是根本,即使真的非问不可的问题,也要先自己动手察资料解决.实在不行再来问,高手不会鄙视菜鸟,因为每一个高手都是从菜鸟过来的,他们都知道菜鸟的苦衷.但是高手会看不起那些自己不愿动手动脑不会学习解决问题而只想得到现成答案的人.那样的人会被高手在心里暗骂成不配用linux的蠢货.
你需要以下几种书:
一本好入门教材->一本linux指令参考手册->linux系统管理手册->讲解linux系统原理的书.

一开始,你只需要入门教材就可以了.并且严格安教材的讲解去学习,不要一天到晚想着去装显卡驱动啦,装游戏啦,装软件啦,这些都没有必要.你就当你自己的电脑不能上网,只能通过看书学习.慢慢看书,稳抓稳打.慢慢地就融会贯通了.这时候你再到linux初学者论坛去看看,你在那里早已经是高手了.

另外,一开始你要选定一本入门教材,但是不能只看一本,因为有些书上讲的,可能是另外的书上没有的.因此,重点选一本教材看完.然后再看两三本入门教材浏览一下.作为对第一本书的知识的扩充和巩固. 在看书过程中,如果你有什么不懂的,不要急于上论坛问,自己认真看几次,实在不懂没有关系,把问题放在那里.不要钻牛角尖不懂不肯放手,这种精神是好的, 但是方法是错误的.你尽管学下去,也许你看完书本以后的内容,就对前面不懂的内容豁然开朗了.这是在学习linux中常有的情况.

另外,现在很多入门书籍是针对非技术型用户的.(我把那些对linux本身不感兴趣,只想用他来上网,听音乐和打字的人称为非技术型用户,而把对 linux本身感兴趣的人称为技术用户)
这些针对非技术型用户的入门书籍几乎通篇都是插图,讲解的内容都是如何在图形界面下操作.这些书籍并不能帮你成为一个高手.反而会让你养成倚赖鼠标和图形界面操作的习惯以后很难改掉.因此不能看这些书,一定要买那些一开始就从系统基本机构基本命令开始讲解的书籍.我看过的第一本linux入门书籍共有十多章,但是他从第十一章开始才大致的讲解了一下图形界面的知识.我很感谢这本书,让我一开始就脱离了windows的思维方式,给我以后的进一步学习带来了很大帮助.
完成以上的内容,你就完成了建大楼打地基建混凝土框架的过程了.可以接下来进一步学习了.

3,你看完系统自带的文档了吗?

当你完成入门的过程后,就可以开始读其他的文档,然后到论坛的精华区看看,向你建起来的大楼框架中添砖头了.当然 ,首先要读的,还是系统自带的文档.

绝大多数linux发行版都自带非常详细的文档.比如我一直在用的redhat,他有从系统安装到系统安全,针对不同层次的人的详尽文档.静下心来,把这些文档读完,比看任何论坛的精华区都有用.书籍和文档就好比是你每天都离不开的一日三餐,论坛区的精华文档就好比是点心和水果.你可以不吃点心和水果,但是决不能不吃正餐.

当然,不能为看文档而看文档,你一定要边看边安文档中说的做试验验证.这样才印象深刻,否则看过就忘记了等于没有看.

另外,如果真心想学习linux就不要吝啬,也不要害怕丢失数据而不敢做实验.我建议你去买一个小的二手硬盘,然后放开手干.不要怕丢失数据而不敢做,如果你没有学会技能,将来做了linux系统管理员或者网络管理员到那时因为不会而丢了数据就是大事情了.

4,学习linux不是逛自由市场.

经常看到有人问用什么版本的linux好,其实只要你认真学习无论什么版本都挺好的.要知道,开发linux发行版的人都是通读过linux内核代码,对 linux原理极其精通的人,而且每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此. 因此,讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本,比如redhat manrake suse 等等. 国内有一两个 linux版本做的也不错,但是国内的linux都是面向非技术型用户开发的,因此,如果你想成为高手,建议不要用国内的版本.
学习linux不是逛自由市场,选定版本就要静下心来学习.不要今天换版本明天要升级.这样对你没有好处.我见过一些人号称用过十几种甚至几十种 linux,向人谈论起来头头是到,好像懂的很多,但是如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.

5,你能看懂英文文档吗?

谈论这个问题,我有点低气不足,因为我自己的英语很差.但是,至少我可以无障碍的读完一般的计算机文档.计算机英语很简单,只要熟悉了计算机专业英语,高中毕业的水平就可以轻松的阅读计算机文档了.如果你的英语实在太差了,连最简单的计算机英语文档都看不懂,那么在学习linux的同时,请赶紧学习英语. 也许你说,你可以看翻译的文档,当我还是一个菜菜鸟的时候,也是这样认为的.但是,后来才发现,如果你想深入学习linux,看不懂因为文档实在是太难了.写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的.即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表.你去看看各大软硬件生产商的官方网站,有哪一个不是用英语作为其主站的? 长期用windows的人会很不习惯这一点,装个软件还要看半天文档,应为windows用起来实在太简单了.但是如果你想学习linux就必需学会看各种文档,而大部分的文档都是用英语写的.我发现很多人甚至连man文档都不会看,有什么命令不会用了就跑到论坛上来问,还装出一副可怜相,乞讨一个命令的用法.有这些时间还不如自己看看man文档,即使你一个一个单词的翻译成中文再自己看都比问别人强,因为别人的回答再怎么详尽都比不上man文档详尽.安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么.否则,说明文档都不看,结果出了问题再来找答案反而浪费时间! 古人说欲速则不达就是这个道理! 真的,如果你man能搞懂,就具备了一个IT人员的基本功了。

6,忘记windows的思维方式

思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度.现在很多人用linux.但是,他们用linux的方式完全是 windows的那一套方式.骨子里都是windows的思想.这样是不能领悟linux的精髓体验不到他的优越性的.我前几天看到一个朋友要把刚装了不到2天的mandrake 10 删除掉,我问他为什么,他说太慢了,受不了,还是用windows快.然后我留意了一下他用linux的方式,他的所有操作都带着windows的影子. 他连最基本的删除,移动文件这样的操作都要用鼠标,这样当然慢了!最后我只好说,你删除吧,你不适合用linux, linux不是这样用的.各位可以去看看那些linux高级用户,他们是怎样操作的.通常他们都是在X上开一个xterm或者rxvt终端,80%以上的操作都在这个终端下用命令完成,因为 linux的命令行十分强大,速度也十分快,简单的几个命令的组合就能完成非常复杂的操作.举一个例子:linux 的常用命令find,去看看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会了就对他爱不释手.他的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和 grep命令,那么他能完成非常复杂的操作,如果同样的操作你用图形界面的工具来完成,恐怕要多花十几陪的时间.因此linux高手经常会说:如果没有 find和grep我们还怎么活.但是现在大部分的linux初级用户受到windows影响都喜欢用图形界面的工具来完成一些基本的操作,我并不是说图形界面不好.只是由于linux和windows设计思想的不同他们的操作方式也有很大不同.在windows下用图形界面操作会比敲命令快,但是 linux是一个命令行组成的操作系统,他的精髓在命令行! 无论图形界面发展到什么水平这个原理是不会变的!

7,入门以后多学命令

当你看完了一两本入门书籍后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令,初学阶段只要学会书上提到过的命令就可以了.单靠学习各种命令而成为高手是不可能的,但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的.
在linux中学习命令的最好办法是学习bash脚本编程.bash脚本比起其他语言来学习简单,但是功能却十分强大.通过学习bash编程,能让你掌握大量的linux命令.另外,买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比察man文档快.特别适合英语不好,看不懂man 文档的人.

在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.比如ls,rm,rmdir,cp,cd,mv,cat等等.这样的基本命令大约有200个,这些命令是一定要掌握的,我买了一本指令参考手册>这本书非常好,他根据命令的常用指数分类,标明3颗星的为最常用命令,一定要掌握,两颗星的其次,1颗星的只要知道一下就可以了虽然现在都已经 FC3了,但是经典的UNIX基本命令几十年来都没有变过!另外有些命令是linux特有的或者是某一个应用程序的可执行文件比如xmms播放器.这些只要知道就可以了,不知道也无所谓.有些命令比较少用,因此通常都记不住他的用法,对于这些命令至少要知道有这个命令,脑子里有印象,需要用的时候察一下手册就可以了,但是决不能不知道这个命令的存在!

8,学会管理系统

等到有了基本知识,也掌握了一定量的命令用法后,就可以进一步学习管理系统.这些内容入门书上会有,但是不会很深入.要深入的学习系统管理,就要去买一本类似之类的书.认真的看书并做实验,可以让你很快的进步.学习配置各种网络服务器,用linux搭建网络,这些都是学习linux系统管理和网络管理的好方法. 到了这个阶段就可以经常上网察察资料,看发布软件的官方网站文档和FAQ,看看论坛精华区文章.但是不能本末倒置,多看书还是根本.书籍和官方文档可以让你系统的学习,但是论坛可以让你学到一些小知识,小技巧.我本人也经常到论坛上来看看,因为即便是一个新手,也可能会发现一些你所不知道的小技巧,看论坛可以学到这些小技巧.但是我看文档和看论坛的时间比不会小于4:1 . 可以把平时积累的问题一次在论坛上发问. 但是初学的时候不要频繁上论坛,因为你要问的问题都在书上写着,耐心一点,你很快就能看到了.

9,了结系统结构

等你有了一定的系统管理知识,知道了/etc下那些配置文件有什么用,知道了一般的网络服务器如何配置后,就可以去了解系统结构了. 了解系统结构不是要你去看什么文件夹放什么内容,而是要学习一些原理性的东西.比如系统是如何引导的,引导后启动了那些东西.系统中哪些是最基本的库文件,有什么用等等.学习系统结构的最好方法是自己做一个linux系统,再也没有什么能比自己做一个linux系统更能学习系统结构的了.LFS (linux from strach)可以教你从源代码自己编译一个系统.通过自己编译一个系统,你就可以了结linux系统结构,知道哪些文件是干什么用的,以及他们如何协调工作.当然,在你达到LFS水平之前还有很多事情要做,比如学会如何编译安装源代码发布的软件和编译新的内核等等.到了LFS水平,那么在大多数 linux论坛上你就可以被人称作"高手"了!到了这个地步,就相当于一撞大楼已经基本建好,但是还需要粉刷和装修,真正的细活还在后面!

永远记住天外有天,人外有人的道理.即便有了LFS水平,在那些搞linux系统开发,通读过linux内核代码的人看来你还是一个菜鸟.因此, 请时刻保持虚心的态度.即便是在 论坛上只有一颗星级别的人,也有可能是一个潜在的,真正的高手! 大多数真正的高手平时都在搞研发工作,哪里有时间上论坛啊! 倒是有很多大学还没毕业的学生,整天混在论坛上.

10,学习专业课程

如果你不是计算机专业的,而想把linux学好,就一定要学习专业课程.学习微机原理,操作系统,计算机网络等等专业课程是必需的.为什么同时开始学习 linux,有些人学的非常快,不到半年就成了高手,有些人玩来玩去还玩不出名堂,玩了一两年还是菜鸟? 因为那些学得快的人有基础,他们都学过专业课程.同样一篇文档,没有基础的人可能看了三遍还不明白,基础扎实的眼睛扫两下就懂了! 这就是专业和非专业的差别! 因此,要想达到更高的境界就一定要学习基础的专业课程. 学习过linux的人是需要基础的,很需要汇编,数据结构,算法,计算机组成原理。除了高校必开的课程,自己也要学习其他的知识。两者相辅相成,很重要!

11,保持虚心学习的态度

我想再重复一遍天外有天,人外有人的道理!
保持虚心的学习态度不仅能让你学到更多知识,而且会让你受人尊重.

在linux的世界里,如果你想靠混论坛,发水贴,换几颗星星增加一下级别,然后再面对菜鸟说几句牛哄哄的话来赢得别人的尊重是不可能的.即便是一个刚入门的菜鸟,也能分辨你回答问题的质量,从而知道你到底有多少水平. 另外,当你成了"高手"的时候,你也能从"菜鸟"那里学到很多知识.因为有很多问题是你从来没有想过的,认为自己肯定会的,但是实际遇到的时候会有困难. 而"菜鸟"们往往更善于发现这类问题.这就是中国人常说的"教学相长"!

在linux的世界里,越是水平高的人越谦虚,因为他们知道自己还有很多不知道的,而那些半瓶水就想晃荡的人反而自以为是,因为他们还不知道自己还有很多不知道的! 去看看, 嵌入式开发和UNIX版块的牛人,他们很多都是有过好几年linux方面的工作经验,精通linux和unix的好手,但是每个人都保持着非常谦逊的态度,这些人是值得尊敬的。

本文转自 51cto 技术论坛

Ⅱ 如何在 Debian / Ubuntu 服务器上架设 L2TP / IPSec VPN

首先解释一个问题:在 iPhone 的 VPN 设置接口里(Settings >> General >> Network >> VPN),你可以看到三个标签:L2TP, PPTP, IPSec。但上面我们又讲本次介绍的 VPN 方式叫“L2TP / IPSec”,这两者究竟是什么关系?

这三个标签确实令人混淆,准确的写法应该是:L2TP over IPSec, PPTP, Cisco IPSec。PPTP 跟另外两者关系不大,且大家较为熟悉,暂且不提,L2TP 和 IPSec 的区别如下。

L2TP:一个“包装”协议,本身并不提供加密和验证的功能。

IPSec:在 IP 数据包的层级提供加密和验证功能,确保中间人无法解密或者伪造数据包。

本来,只用 IPSec 就可以实现 VPN,Mac OS X 和 Linux 都支持。但是 Mac OS X 和 iPhone OS 都推荐使用 L2TP over IPSec,在两者的图形接口上也只能设置这个。L2TP / IPSec 是业界标准,微软也支持。而只用 IPSec 的常见于 Linux-to-Linux 的应用,比如将两个位于不同地区的办公室网络安全地连在一起。这多是固定 IP 路由器到固定 IP 路由器级别的连接,只需保证数据包不被中途截获或者伪造就可以,故使用 L2TP 的意义不大。L2TP / IPSec 主要是实现所谓“Road Warrior”的设置,即用变动的客户端连固定的服务器。

Cisco 的 VPN 用的也是 IPSec 加密,但那是一套不同于 L2TP 的私有包装协议,用于提供用户管理之类的功能,因此一般都需要用 Cisco 自家的 VPN 客户端连接。iPhone / iPad 的 VPN 设置接口中的 IPSec 标签里有 Cisco 的标识,就是这个原因。

以下是在 Ubuntu 和 Debian 主机上架设 L2TP / IPSec VPN 的步骤,一共十四步。你需要有服务器的 root 权限(所以 DreamHost, BlueHost, MediaTemple 这些服务供应商帮你把一切打点周到的主机就无缘了),也需要一些基本的 Linux 知识。不然的话,我们还是推荐您找一位比较熟技术的朋友帮忙。

一、安装 IPSec。如上所述,IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。我推荐用 openswan 这个后台软件包来跑 IPSec。

用以下命令安装 openswan:

sudo aptitude install openswan二、用文字编辑器打开 /etc/ipsec.conf,改成这样:

version 2.0
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=YOUR.SERVER.IP.ADDRESS
leftprotoport=17/1701
right=%any
rightprotoport=17/%any三、用文字编辑器打开 /etc/ipsec.secrets,改成这样:

YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"(别忘了把“YOUR.SERVER.IP.ADDRESS”这部分换成你的服务器的 IP 地址,把“YourSharedSecret”部分换成随便一个字串,例如你喜欢的一句话,等等。)

四、运行以下命令:

for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done五、检查一下 IPSec 能否正常工作:

sudo ipsec verify如果在结果中看到“Opportunistic Encryption Support”被禁用了,没关系,其他项 OK 即可。

六、重启 openswan:

sudo /etc/init.d/ipsec restart七、安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。

运行以下命令:

sudo aptitude install xl2tpd八、用文字编辑器打开 /etc/xl2tpd/xl2tpd.conf,改成这样:

[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。

九、安装 ppp。这是用来管理 VPN 用户的。

sudo aptitude install ppp十、检查一下 /etc/ppp 目录里有没有 options.xl2tpd 这个文件,没有的话就建一个,文件内容如下:

require-mschap-v2
ms-dns 208.67.222.222
ms-dns 208.67.220.220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS),请自行更换。

十一、现在可以添加一个 VPN 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:

# user server password ip
test l2tpd testpassword *如果你之前设置过 PPTP VPN,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 test l2tpd testpassword * 这样加到后面即可。

十二、重启 xl2tpd:

sudo /etc/init.d/xl2tpd restart十三、设置 iptables 的数据包转发:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward十四、因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rc.local 文件里写入如下语句:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在“Secret”中填入你在上述第三步里填的 YourSharedSecret。

如果连接成功,上网也没问题的话,恭喜你,大功告成。如果连不上,恐怕还得多做一步。

Ubuntu 9.10 自带的 openswan 版本是 2.6.22, Debian Lenny 带的版本是 2.4.12。这两个版本的 openswan 都有问题。我们的测试结果表明,2.6.24 版的 openswan 可以在上述两版的 Linux 操作系统下正常工作。所以如果做完以上十四步还是连不上的话,请考虑从源码编译 openswan 2.6.24

Ⅲ VPN中服务器满是熊猫. 我们客户端如何防止中毒

您好


您可以到腾讯电脑管家官网下载一个电脑管家


电脑管家拥有16层实时防护功能,可以从上网安全、应用入口、系统底层等全方位保护电脑安全,避免熊猫入侵您的电脑


另外,电脑管家还独有云智能预警系统,可以在木马活动早期侦测并阻断木马的破坏行为,通过云查杀技术秒杀最新流行木马。

如果还有其他疑问和问题,欢迎再次来电脑管家企业平台进行提问,我们将尽全力为您解答疑难

腾讯电脑管家企业平台:http://..com/c/guanjia/

Ⅳ 通过hook connect 函数 实现 VPN功能是否可行

在android系统中,可以使用iptables控制单个应用网络访问。在google code上有一个开源项目-droidwall就是基于iptables实现的。除了iptables可以实现控制单个应用网络访问外,还可以通过拦截应用中的connect函数,达到控制应用访问网络的目的。下面从几个方面分析android应用中connect调用流程为例来实现拦截connect实现网络禁用和ip过滤。(以下分析基于4.2源码)


1.android中网络访问流程


1)android系统中访问网络可以通过Socket.java、URL.java、HttpPost.java、HttpGet.java等关键类来访问网络资源。通过代码追踪,这些类访问网络资源最终需要通过native方式,调用linux系统下的socket函数访问网络。在android4.2源码中,java层访问网络得native方法定义在源码路径libcore/luni/src/main/java/libcore/io/Posix.java中(4.0之前的网络系统、文件系统的native方法是独立分开得,4.0之后组织在Posix.java中)。如下是Posix.java中的代码片段:

public final class Posix implements Os { Posix() { } public native FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException; public native boolean access(String path, int mode) throws ErrnoException; public native void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException; ...... //对应linux下的connect系统调用 public native void connect(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException;

2)Posix.java中的native方法实现源码路径libcore/luni/src/main/native/libcore_io_Posix.cpp文件中,native connect方法实现代码片段如下:

taticvoidPosix_connect(JNIEnv*env,jobject,jobjectjavaFd,jobjectjavaAddress,jintport)
{
sockaddr_storagess;
if(!inetAddressToSockaddr(env,javaAddress,port,&ss))
{
return;
}
constsockaddr*sa=reinterpret_cast<constsockaddr*>(&ss);
(void)NET_FAILURE_RETRY(env,int,connect,javaFd,sa,sizeof(sockaddr_storage));
}

有上代码可知,java层connect最终功能由linux系统connect函数实现。


2.so注入


so注入可以参考古河大哥牛逼的libInject(点击这里访问)。


3.拦截connect库编写


在connect中,获取传入的参数ip地址,根据需要把需要禁用的ip地址改为127.0.01.以下是我测试的拦截connect函数关键代码:

intnew_connect(intsockfd,conststructsockaddr*addr,socklen_taddrlen)
{
LOGDD("HOOK
====>newconnect****************");
charip[128]={0};
intport=-1;
if(addr->sa_family==AF_INET)
{
structsockaddr_in*sa4=(structsockaddr_in*)addr;
inet_ntop(AF_INET,(void*)(structsockaddr*)&sa4->sin_addr,ip,128);
port=ntohs(sa4->sin_port);
LOGDD("AF_INETIP===>%s:%d",ip,port);
}
elseif(addr->sa_family==AF_INET6)
{
structsockaddr_in6*sa6=(structsockaddr_in6*)addr;
char*ipv6=NULL;
inet_ntop(AF_INET6,(void*)(structsockaddr*)&sa6->sin6_addr,ip,128);
ipv6=strstr(ip,"f:");
if(NULL!=ipv6)
{
strcpy(ip,ipv6+2);
}
port=ntohs(sa6->sin6_port);
LOGDD("af_inet6
IP===>%s:%d",ip,port);
}
else
{
returnold_connect(sockfd,addr,addrlen);
}

if(strcmp(ip,"115.23.20.178")==0)
{

LOGDD("%s
==>127.0.0.1",ip);
structsockaddr_inmy_addr;
intmy_len=sizeof(structsockaddr_in);
bzero(&my_addr,sizeof(my_addr));
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(80);
my_addr.sin_addr.s_addr=inet_addr("127.0.0.1");

returnold_connect(sockfd,(constsockaddr*)&my_addr,sizeof(my_addr));
}
else
{
returnold_connect(sockfd,addr,addrlen);
}
}

4.拦截connect函数功效


1)禁用应用网络访问。

2)过滤广告ip

3)禁用定位功能

Ⅳ 按键精灵win7 vpn拨号连接与断开,判断是否换好!求思路或者源码,谢谢

【奔腾IP加速器】

奔腾vpn做好IP互转的功能,

使用奔腾网络加速器可以突破防火墙限制达到你想更换的IP地址,

拥有国内各省市线路多IP地址5000条IP地址,国外7000条IP地址,

强大的各地区服务器支持,拥有100M独立服务器带宽支持,

不限制流量,不限制下载速度。有效支持5000多款网络游戏和15000多款网页游戏。


账号btvpn456 密码btvpn456(网络搜索下载奔腾vpn)

求采纳

Ⅵ 我想自己用服务器搭建个网盘,请问要用什么服务器的软件或者用什么方法可以把局域网共享盘远程到外网

楼上回答的好像跑题了吧,人家问的是软件,你回答的是源码。好像提问的不是要搞软件开发的~~~
把局域网中的某台电脑上某个文件夹对外网开放,架个FTP服务器就可以了。免费的FTP软件非常多,也都十分简单。不过,软件安装配置好后你要在你那路由器上做好端口映射。如果FTP软件那边你没有修改端口的话,一般默认是23端口。在路由器上把这端号映射到你自己这台电脑上就可以了。
另外如果你共享的使用对像是固定的话,你架个VPN也可以实现,但VPN好像比FTP要复杂一点。
以前的QQ也有个“我的共享”功能也可以临时实现你要的那种效果,但好像现在QQ把这个取消了。

Ⅶ 寻找游戏对战平台源码

给钱还差不多!
可能使用api hook技术,拦截网络包自己转发可以做到

Ⅷ openWRT系统特点

对于开发人员,OpenWrt是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。

二、openWRT开发背景

当Linksys释放WRT54G/GS的源码后,网上出现了很多不同版本的Firmware去增强原有的功能。大多数的Firmware都是99%使用Linksys的源码,只有1%是加上去的,每一种Firmware都是针对特定的市场而设计,这样做有2个缺点,第一个是难以集合各版本Firmware的长处,第二个是这版本距离Linux正式发行版越来越远。

OpenWrt选择了另一条路,它从零开始,一点一点的把各软件加入进去,使其接近Linksys版Firmware的功能,而OpenWrt的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的Linux电脑系统。

三、OpenWrt功能

1、openwrt可以作为client连接到其他wifi作为WAN,再创建一个自己的wifi作为LAN,相当于有线WAN口不用插网线就能够实现wifi上网。其他固件好像没有这种设置方式,不知道是不是我没有发现。其他固件通常只能中继别的wifi,客户端实际连接的是这中继的wifi,ip也是由上级中继wifi分配,无法通过这个路由器创建一个子网络。openwrt的好处在于通过wifi连通internet,自己创建一个子网,可以端口映射、限速等。

2、SSH隧道

OpenWrt包含了一个SSH服务器所以你可以访问它的终端。把它的SSH服务暴露在网络下之后(别忘了用密钥验证而非弱密码的方式给它加密),你就可以远程连接并使用SSH隧道加密访问它。这使得在国外的你可以通过公共Wi-Fi访问一些只有在国内能访问的网站。

3、搭建VPN

SSH隧道和VPN在很多方面很相像,但你还是可以在OpenWrt路由上搭建适合自己的VPN。

4、安装BitTorrent客户端

如果有特定的网络附加存储器(NAS),或者一个附带了USB端口的路由器和一个USB设备,你就可以把路由器当作一个BitTorrent客户端了。

5、运行服务器软件

OpenWrt的软件源包含了可以让它作为web服务器的软件包,比如IRCserver,BitTorrenttracker,等等。你可能正在使用路由器,那为什么不干脆把这台路由当作一台服务器来用?路由器耗电比计算机少得多,所以把它当作一个轻量级服务器是很聪明的做法。

6、流量整形服务

OpenWrt让你可以对经过路由的包进行数据包整形并检测其服务质量,将合适的数据包优先分配。你甚至可以将指定数据包优先分配给指定计算机,而对分配给其他计算机的包暂缓处理。

7、创建贵宾网络

OpenWrt的wiki有如何建立一个给客人用的特殊无线网络的指示,为了安全,它是从你的主网络分出来的。你甚至可以限制贵宾网络的速度。

8、捕获并分析网络流量

你可以使用tcpmp来记录所有经由你路由器的数据包。然后可以分享到网络或者使用类似Wireshark的工具来打开它,进而分析你的网络流量与行为。

四、openWRT特点

OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而OpenWrtSDK更简化了开发软件的工序。

OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的linuxkernel又远比绝大多数发行版来得新。

Ⅸ 如何获取最新chromium源码

获取代码
dev.chromium.org/developers/how-tos/get-the-code 上已经写清楚了如何获取代码。现在统一都是用git了。
首要要配置好depot_tools。chromium会用depot_tools去获取代码。这个基本上按着文档来。因为中国的网络问题,获取
chromium代码经常失败,这里强力推荐用vpn。有些公司会屏蔽vpn,比如我们公司。这里只能用IE代理了,但是chromium获取代码很多地
方没有走IE代理,这里需要我们自己去hook下脚本了,我曾经写过如何设置代理的博客。这种方法太麻烦。
获取代码现在真是简单,就一句 fetch chromium,然后慢慢等吧,会下载十几GB的数据。只要把网络问题解决了,获取代码还是比较顺利的,否则就是无法跨越的大坑。

Ⅹ 查看PPTP,L2TP,IPSec和OpenVPN的区别的源代码

前面的 和后面的没关系

pptp 普通的经过加密的vpn 加密的内容可以被破解

L2tp ipsec 经过加密的vpn 比pptp更强 有没有破解就不清楚了

openvpn 国外的开源项目,有没有被破解只有破解的人知道恶劣

热点内容
数据库二级映射 发布:2025-05-15 15:14:09 浏览:476
3d文件加密 发布:2025-05-15 15:05:17 浏览:361
jquery拖拽上传图片 发布:2025-05-15 14:53:36 浏览:129
我的世界电脑服务器需要正版吗 发布:2025-05-15 14:38:53 浏览:694
大华录像机哪里有安卓设备 发布:2025-05-15 14:25:06 浏览:808
录制脚本方案 发布:2025-05-15 14:25:04 浏览:165
奇石脚本业 发布:2025-05-15 14:23:44 浏览:680
android中的socket 发布:2025-05-15 14:22:15 浏览:409
apph5源码 发布:2025-05-15 14:19:51 浏览:667
2d游戏按键精灵脚本教程 发布:2025-05-15 14:10:15 浏览:279