装修哪里可以省钱:在Ubuntu中配置可供Windows主机共享上网的VPN服务器

来源:百度文库 编辑:九乡新闻网 时间:2024/07/08 18:18:44


VPN (Virtual Private Network, 虚拟专用网) 是一种在现有网络基础上建立的虚拟网络, 主要用于帮助两个网络通过VPN隧道 (tunnel) 进行通信. VPN的好处在于网络A中的电脑A1通过隧道与网络B中的电脑连接上后, A1将能够使用网络B的网络环境. VPN分为加密与不加密两种, 通常我们使用的都是加密VPN. 加密VPN常用的协议有SSL、PPTP等, 其中PPTP是Windows系统内置的协议, 因此如果想要搭建一个支持Windows电脑接入的VPN服务器, 最好是使用PPTP服务器软件. 当前VPN的主要用途有在异地接入一个内部网络, 以及翻越功夫网.

注意: VPN服务器必须是具有外网IP的电脑, 如果IP地址属于10.0.0.0~10.255.255.255, 172.16.0.0~172.31.255.255, 192.168.0.0~192.168.255.255这三个IP地址段, 则不具备搭建VPN服务器的条件.

Poptop是一款Linux下的PPTP服务器软件, 今天我们就主要借助它来完成一个VPN服务器的配置. Ubuntu系统使用如下命令安装Poptop:

$ sudo apt-get install pptpd

如果你的Linux的内核版本低于2.6.15, 那么需要先检查一下是否支持MPPE:

$ sudo modprobe ppp-compress-18 && echo "success"

若是没有输出“success”则证明内核不支持, 可以跟随这里的步骤进行内核的配置.

Poptop安装完毕之后需要简单配置一下, 打开“/etc/pptpd.conf”文件, 添加下面两行, 或者这个文件已经有了一些示例, 只需要去掉注释符号.

localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245

localip”表示VPN隧道中服务器 (server) 的IP地址, “remoteip”表示VPN隧道中客户端 (client) 可以分配的IP地址. 关于“pptdp.conf”文件的更多选项, 可以阅读它的man page.

然后设置用于登录的用户名和密码, 打开“/etc/ppp/chap-secrets”文件, 添加下面一行, 中括号部分代表需要配置的地方:

[username] pptpd [password] *

最后重启Poptop:

$ sudo /etc/init.d/pptpd restart

现在试试用其它电脑是否可以成功连上, 注意客户端填写的IP地址是VPN服务器的外网IP, 而不是刚才配置的“localip”.

虽然可以成功建立VPN连接, 但通常情况下还不能通过VPN服务器连接到Internet. 原因有多种, 先来看看客户端通过VPN服务器与Internet上的服务器通信的全过程:

client <--> client ppp0 <--> VPN server ppp0 <--> VPN server <--> VPN server eth0 <--> Internet server eth0 <--> Internet server

ppp0”其实是VPN虚拟的一个网络接口 (可以想象成这是一个虚拟的网卡), VPN隧道就是通过客户端与服务器的这两个网络接口建立的. 而“eth0”则代表服务器上真实存在的物理网卡, VPN服务器与外网通信就需要通过它. 具体流程是: 客户端通过“ppp0”向VPN服务器发出请求, VPN服务器侦测到之后, 再将请求通过“eth0”转发出去, 当请求到达目的地之后, Internet服务器就根据请求做出相应的回复, 这个回复再按照刚才来的路径返回到客户端, 这样客户端就成功与Internet服务器完成一次通信.

上面图示中的箭头部分 (“<-->”) 就是可能造成无法连接Internet的关键, 因此需要针对每个部分一一排查. 这里只对可能性最大的两个地方进行介绍, 想要了解每一个关键点的检测方法的同学可以阅读“Diagnosing Forwarding on pptpd”这篇文章.

  1. 是否已经打开IP转发?

     

    查看“/proc/sys/net/ipv4/ip_forward”文件中的值是否为“1”, 如果不是, 则需要在“/etc/sysctl.conf”文件中添加“net.ipv4.ip_forward=1”, 然后执行以下命令:

    $ sudo /etc/init.d/procps restart    
  2. 是否在VPN服务器上设置了对于客户端IP地址的NAT?

     

    执行下面的命令查看表中是否有相应的表项:

    $ sudo iptables --table nat -L POSTROUTING    

    如果没有则执行以下命令:

    $ sudo iptables --table nat --append POSTROUTING --out-interface eth0 --jump MASQUERADE    

在完成上面两个检查之后, 应该就可以成功通过VPN服务器与Internet进行通信, 一个VPN服务器也基本配置完毕.

参考资料: Debian pptpd HOWTO, #13, Diagnosing Forwarding on pptpd.

Related posts:

  1. 小技巧: 在Ubuntu下快速安装LAMP

Tags: PPTP, ubuntu, VPN

This entry was posted on 星期四, 一月 21st, 2010 and is filed under 学习笔记, 桌面应用. You can follow any responses to this entry through RSS 2.0. You can leave a response, or trackback from your own site.

Comments (3)

  • #1 by blueboy at 一月 22nd, 2010

    | Quote

    我现在有两台笔记本电脑,都内置无线网卡,一台系统是UBUNTU另一台系统是WINDOWS XP 家里装的是ADSL,我想知道能不能通过Ubuntu让另一台WINDOW XP的电脑通过无线共享上网…如果知道请联系我,非常感谢~ vvfriday@gmail.com

    [回复]

  • #2 by blueboy at 一月 22nd, 2010

    | Quote

    顶顶

    [回复]

  • #3 by renewjoy at 一月 23rd, 2010

    | Quote

    又是一个忧伤男孩!

    [回复]


为了确定你不是机器,请完成一道简单的数学计算题 :-)
计算 9 与 13 的和:

    • 下载
    • 各类配置
    • 奇技淫巧
    • 娱乐
    • 学习笔记
    • 幽默、搞笑
    • 文化、哲学
    • 桌面应用
    • 站务
    • 美化
    • 脚本、编程
  • 什么是「桃源」?

    「桃源」最初是由CUIT的一群Linux爱好者制作的电子杂志。

    现在采用在线的形式给各位提供有关Linux的一些小知识。

    我们努力做好,但难免人力、时间有限,因此还希望得到各位大牛的指点。
  • 最近文章

    • 中国Linux界五大高手
    • ELPA: 下一代Emacs的扩展管理器
    • AsciiDoc简介
    • Mini2440移植Ncurses库
    • 修改KeepNote的快捷键,支持中文输入
  • 近期评论

    • 沧之声关于「桃源」 上的评论
    • renewjoy 在 关于「桃源」 上的评论
    • wangwangwar 在 一个阅读rfc小工具的使用 上的评论
    • args 在 中国Linux界五大高手 上的评论
    • 小高子AsciiDoc简介 上的评论
  • 标签

    挑战编程脚本archarchlinuxbashemacsfindglade3gnulinusLinuxmac4linpygtkpythonqqscriptubuntuutf8wordjoy
  • 功能

    • 注册
    • 登录
    • 文章 RSS
    • 评论 RSS
    • WordPress.org
  • 文章索引

    • 2011 年三月 (1)
    • 2011 年一月 (4)
    • 2010 年十二月 (6)
    • 2010 年十一月 (2)
    • 2010 年十月 (1)
    • 2010 年九月 (3)
    • 2010 年八月 (1)
    • 2010 年七月 (4)
    • 2010 年六月 (1)
    • 2010 年五月 (1)
    • 2010 年三月 (2)
    • 2010 年一月 (4)
    • 2009 年十二月 (6)
    • 2009 年十一月 (2)
    • 2009 年十月 (9)
    • 2009 年九月 (16)
    • 2009 年八月 (3)
    • 2009 年七月 (18)
    • 2009 年六月 (24)
  • Link

    • LinuxTOY
    • Ubuntu中文论坛
    • Unix-Center.Net
    • Wordpress Themes
    • wow.Ubuntu
    • 鳥哥的 Linux 私房菜