如何快速搭建一个VPN服务器

这里提供两种快速搭建一个VPN服务器的方案(首先,你需要准备一台墙外的 *nix 服务器)。

L2TP

L2TP服务器的搭建过程相对比较麻烦,不过Github上总会有不少前人造好的轮子,我们所要做的只是了解如何使用它 setup-simple-ipsec-l2tp-vpn

clone下项目后,根据自己的系统环境,执行对应的setup.sh脚本。以CentOS为例:

    $ ./setup_centos.sh

安装完成后,还需要配置iptables转发规则

    $ echo 1 > /proc/sys/net/ipv4/ip_forward #开启ipv4转发
    iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o eth1 -j MASQUERADE  #将ppp数据转发至公网网卡(规则中的IP网段和网卡变化根据实际情况确定)
    $ iptables-save
    $ service iptables restart

执行iptables-save后,转发规则默认会被保存在 /etc/sysconfig/iptables 中。启动相关服务:

    $ service xl2tpd strat
    $ service ipsec start

请查看 1701, 500, 4500 端口是否打开以确保服务是否已经正常启动。

账号信息将被保存在 /etc/ppp/chap-secrets 中,可通过编辑该文件进行管理。

Shadowsocks(推荐)

与L2TP相比,Shadowsocks服务器搭建更加简单,这里同样以CentOS为例:

    $ yum install python-pip
    $ pip install shadowsocks

通过shadowsocks python 包提供了两个工具:ssserversslocalssserver 为shadowsocks服务端,创建服务器配置文件 ss.json:

    {
        "server":"123.123.213.213",
        "server_port":8388,
        "password":"yourpassword",
        "method":"aes-256-cfb"        
    }

启动shadowsocks服务:

    $ ssserver -c ss.json

配置客户端 ss.conf

    {
        "server" : "123.123.213.213",
        "server_port" : 8388,
        "local_port" : 1080,
        "password" : "yourpassword",
        "timeout" : 600,
        "method" : "aes-256-cfb"
    }

启动客户端:

$ sslocal -c ss.conf

另外,强烈推荐 SwitchyOmega 这个Chrome插件,配合shadowsocks 使用起来十分方便。

ssserversslocal 均可通过supervisor进行管理,以确保服务能可靠的运行。

最后,谨在这里向优秀的黑客 @clowwindy 致敬,我们从来没有停下过追逐自由的脚步。

Show Comments