简单快速搭建OpenVPN服务的方法

2012年10月7日 | 分类: 翻墙相关 | 标签: , , ,

众所周知,OpenVPN是比较著名的开源VPN解决方案,应该也有很多人使用过,虽然使用起来并不是很困难,但是,配置OpenVPN服务器 的人应该会比较郁闷,太过繁琐复杂,各种一键包也经常失效。如果你只想用最快的时间搭建完成并且开始使用,那么 OpenVPN官方的一款收费的产品 Access Server就完全满足你的需求。

Access Server安装配置OpenVPN非常简单,可以节约你很多时间和精力,不过免费许可只允许两个用户同时在线,当然你一个人使用完全够用了。以下简述下使用步骤:

首先,官方下载页面下载对应你系统的版本,

下载地址:http://openvpn.net/index.php/access-server/download-openvpn-as-sw.html

debian可下ubuntu的,以debian6 32位版为例,可以下载Ubuntu 10 amd/x86 32-bit这个软件,ssh以root身份登录到VPS上执行如下命令下载(其中wget是下载命令后面是你要下载的软件网址):

wget http://swupdate.openvpn.org/as/openvpn-as-1.8.4-Ubuntu10.i386.deb

其次,在VPS上安装此软件包,

debian和ubuntu的安装命令都是dpkg -i xxxx.deb(CentOS系统可以使用rpm -ivh xxxx.rpm命令安装),比如上面的例子中安装命令就应该如下:

dpkg -i openvpn-as-1.8.4-Ubuntu10.i386.deb

安装完成后会提示你管理登录地址和用户名,管理用户名默认是openvpn,可以使用如下命令设置密码:

passwd openvpn

最后,登录Access Server管理页面下载客户端或配置文件,

浏览器输入 https://[服务器IP]:943/admin 并登陆(用户名:openvpn,密码:之前设置的密码),登录后点击”Start the Server”开启VPN服务(如果未开启)或进行其他配置,然后访问https://[服务器IP]:943/并使用openvpn和对应密码登录(选Login),即可选择你的系统下载客户端,或者直接下载配置文件“Yourself…”(如果你想自己配置使用 OpenVPN 客户端,教程参考 )。

注意事项:

一、安装openvpn-as时如果提示iptable错误,可以自行安装,debian/ubuntu执行 apt-get install  iptables 命令,CentOS执行 yum install  iptables 命令安装。

二、OpenVPN需要tun模块支持,ssh登录vps后执行 cat /dev/net/tun 命令查看,如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常,否则发支持票给客服要求开启tun模块。

三、OpenVPN需要iptable nat支持,ssh登录vps后执行 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE 命令查看,如果返回信息为:iptables: No chain/target/match by that name 则说明nat模块正常可用,否则发支持票给客服。

四、如果在点击”Start the Server”开启VPN服务提示”iptables service not started because of error (SVC_RUN_EXCEPT)”错误,可以发支持票给客服,要求其修复,修复方法 http://openvpn.net/index.php/access-server/docs/admin-guides/186-how-to-run-access-server-on-a-vps-container.html 可以一并带上,如果VPS技术人员不给修改就没办法直接使用Access Server了。

五、可以登录Access Server管理面板后点击“User Permissions”后勾选“Allow Auto-login”然后保存设置,这样在配置文件下载里就会看到自动登录(完全证书认证,无需输入vpn用户名和密码)的配置文件下载地址了。

六、如果要新增vpn用户可以使用ssh登录vps后使用 useradd 新用户名 命令新增用户并 passwd 新用户名 命令设置密码,然后openvpn登录Access Server管理页面的“User Permissions”里新增用户设置保存即可。

当然并不是所有的VPS服务商都会开启tun模块和修复SVC_RUN_EXCEPT错误的,如果有一项客服不支持那么就没办法直接使用Access Server了,我们可以绕个弯路来搭建OpenVPN,思路是这样的:在vps中安装qemu虚拟机,qemu虚拟机里安装debian系统,然后在安装的debian系统中安装OpenVPN Access Server,最后qemu设置端口映射,映射tcp 943、tcp 443和udp1194端口,这样就可以使用了,方法参考:

首先,使用我修改的debian 6下qemu虚拟机里安装debian 6 32位系统一键脚本来安装qemu虚拟机、debian系统并做端口映射,安装过程中会让你设定VNC密码,输入两次完毕。

wget  http://9.site44.com/debian6.sh ; sh debian6.sh

然后,下载VNC客户端软件后使用地址 你的VPS的IP:1 及刚才设定的VNC密码登录,即可看到虚拟机里的debian了,虚拟机里的debian默认root密码是root还有个用户user默认密码user,root登录修改为复杂的密码,然后执行上述安装OpenVPN Access Server的步骤来安装使用。注意需要登录Access Server管理面板点击“Server Network Settings”将其中的Hostname or IP Address:改为你的vps的ip并保存,然后再去下载OpenVPN配置文件使用(也可以在虚拟机debian系统中安装openssh方便ssh端口2222管理,vps的端口2222已经做了映射到虚拟机系统22,方法在ovh的免费vps上试验成功,不过ovh屏蔽了udp流量需要使用tcp端口连接openvpn)。

本文原始地址http://igfw.net/archives/12009

  1. pkerden
    2013年4月3日11:45

    我用的是qemu虚拟机方法装的openvpn as 现在可以连上但不能上网,我在虚拟机里面ping外部也不通,需要在宿主机作什么设置吗?

    • iGFW
      2013年5月31日19:03

      端口映射到实体机啊

  2. fish
    2012年11月24日12:31

    我有2个vps,一个是debian os,另一个是centos os.怎么我用这个Access Server在debian os上搭建的openvpn可以连上,而在centos os上搭建的openvpn却连不上?

    • iGFW
      2012年11月24日21:00

      那都用debian吧,呵呵

  3. hehe
    2012年10月10日18:59

    在虚拟机里装了一个可以连,不知道怎么设路由,无法通过ovpn上网,AS版本比较容易安装,界面也友好,就是LICENSE要5$一个,10个起售,还只有一年有效,比较贵,一分钱一分货

    • iGFW
      2012年10月10日19:20

      不用单独设置,其本身直接就已经设置好了,ovh上不能上网是因为ovh禁止了除53端口以外的所有udp端口所致,你注释掉配置文件中的udp1194一行,使用tcp443端口连接就可以了

  4. dd
    2012年10月9日12:29

    如果你之前就已安装过openvpn,那么在安装openvpn_as之后,你的openvpn将变得不正常,不能使用。如果你想用回openvpn,你可以卸载openvpn_as即可,命令为:dpkg -P openvpn-as.卸载openvpn_as之后,你的openvpn又可以工作了。

    • iGFW
      2012年10月9日14:07

      应该是端口冲突了,你修改openvpn使用1194以外的端口就可以了。

  5. scar
    2012年10月8日15:22

    iGFW :那个vnc里我也不会粘贴,
    虚拟机里启动openssh后可以直接putty通过2222端口登录到虚拟机系统。
    你OpenVPN成功没?

    我装了debian6 32位的系统,重新开始做了一次,到最后还是出现iptables service not started because of error (SVC_RUN_EXCEPT),悲剧哇

    • iGFW
      2012年10月8日16:31

      我的确有个成功的啊,有时间我研究下原因。

  6. dd
    2012年10月8日12:39

    2个问题:
    1.我的是win vista,如果下载他的客户端openvpn-connect-1.8.3.347.msi,安装时会提示需要vista sp1,所以我装不了这个客户端;可以下载它所显示的配置文件到我之前安装的普通的openvpn gui客户端的安装目录下的config目录里,即可连接成功。
    2.我按照“如果要新增vpn用户可以使用ssh登录vps后使用 useradd 新用户名 命令新增用户并 passwd 新用户名 命令设置密码,然后openvpn登录Access Server管理页面的“User Permissions”里新增用户设置保存即可。”添加新用户无效,无法登陆,怎么回事?博主可否新增用户试试?

    • iGFW
      2012年10月8日12:56

      新增用户我试过啊,没问题啊,你要添加新用户在User Permissions啊,新用户的密码是passwd 新用户名设置的密码啊。

  7. scar
    2012年10月8日12:21

    博主你好,我用的是OVH的5G免费试用VPS,VPS的系统是ubuntu 11.04 32bit server,按照你的教程,先后装了qemu虚拟机,debian 6,然后设定VNC密码,问题来了:
    1.在我第二次输入完VNC的密码之后,出现一个什么file not exist的错误,具体是什么file我没看清楚,但是安装进度还是继续下去了,直到安装完成,我用VNC客户端可以正常登陆,可以按照你的教程继续搞下去也没有出现其他的错误了,不知道这个什么file not exist的错误有没有影响?
    2.我按照你的教程一直搞下去,成功登陆Access Server管理页面即(https://[服务器IP]:943/admin),但是在点击Start the Server之后就出现iptables service not started because of error (SVC_RUN_EXCEPT)错误了,我就困惑了,怎么还会出现这个错误的呢,用虚拟机安装系统然后转发的方法不是可以避开iptables了吗?
    我的措施:
    1.我已经检查了Access Server管理面板点击“Server Network Settings”其中的Hostname or IP Address已经是我的vps的ip了。
    2.我已经发邮件给OVH的客服了,要求他们的帮我修复iptables的问题,只是我的英语有限,不知道能不能让他们答应。
    3.我接下来该怎么做?
    =======================================
    恭候佳音

    • iGFW
      2012年10月8日13:08

      file not exist你最好给我截个图啊,
      已经在虚拟机里了应该不会出现SVC_RUN_EXCEPT啊,
      发邮件给OVH的客服不要这么来啊,ovh免费vps不允许搭建VPN,偷偷玩就行了,还要让客服知道啊。
      这个我一会有时间测试下,你最好用debian6 32位系统测试,要不你重装系统再来一遍。

      • scar
        2012年10月8日13:48

        1.file not exist不知道了,我已经重装系统了
        2.你的原文“emu虚拟机里安装debian系统,然后在安装的debian系统中安装OpenVPN Access Server,最后qemu设置端口映射,映射tcp 943、tcp 443和udp1194端口”
        我没有搞这个端口映射,是不是因为这个才出现SVC_RUN_EXCEPT的呢?端口映射的命令行是??

        • iGFW
          2012年10月8日13:51

          映射tcp 943、tcp 443和udp1194端口那个一键脚本中已经做了,不是这个原因的。

          • scar
            2012年10月8日14:15

            顺便问一下在PC上复制了命令行,怎么在VNC里面粘贴。。。。。。。。
            还是说搞完一键脚本之后再可以直接apt-get install openssh之后关掉putty,再用putty通过2222端口登陆虚拟机就行了?

          • iGFW
            2012年10月8日14:19

            那个vnc里我也不会粘贴,
            虚拟机里启动openssh后可以直接putty通过2222端口登录到虚拟机系统。
            你OpenVPN成功没?

  8. Gustav Redzieker
    2012年10月8日02:39

    多谢博主分享!

  9. 2012年10月7日19:59

    谢谢分享。。

    • iGFW
      2012年10月7日20:58

      小甜甜好久不来了啊,呵呵