在搬瓦工(Bandwagonhost)的VPS上搭建Ubuntu VPN Server

关于如何在Ubuntu Server上搭建VPN服务器的文章Google中随便一搜就有很多,但实际配置过程中有几个关键点很容易出错。下文将对这些关键步骤做出重点的说明。本文使用的是Ubuntu Server 14.04.4 LTS 64位版本。(http://blog.droidking.com/)

1、安装pptpd

sudo apt-get update
sudo apt-get install pptpd

2、修改/etc/pptpd.conf

sudo vi /etc/pptpd.conf

在文件结尾添加下面两行,然后保存。

localip 10.10.0.1
remoteip 10.10.0.2-255

注意:localip、remoteip都应该使用Internet的保留IP,比如10.64.0.0-10.127.255.255,172.16.0.0-172.31.255.255,192.168.0.0-192.168.255.255。尤其是localip,切勿填写为服务器的真实外网ip。

3、修改/etc/ppp/pptpd-options

sudo vi /etc/ppp/pptpd-options

找到ms-dns这一行,改为如下所示,其他保持默认值即可。

 ms-dns 8.8.8.8

注意:网上有些文章说这个是给Windows的VPN客户端使用的,实际并非如此,如果不配置此项,VPN客户端将无法做域名解析。

4、修改/etc/ppp/chap-secrets,添加VPN帐号

sudo vi /etc/ppp/chap-secrets

添加一行,如下所示。其中username为VPN客户端连接VPN服务器时使用的用户名,password为密码,请自行改成其他值。如果需要添加多个用户,请按此格式添加多行即可。

username * password *

5、修改/etc/sysctl.conf

sudo vi /etc/sysctl.conf

找到下面这一行,去掉前面的注释后保存,启用ipv4 forwarding。

net.ipv4.ip_forward=1

执行下面的命令,使其生效:

sudo sysctl -p

6、添加以下iptables规则,启用NAT。

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

注意:服务器的网卡interface不一定是eth0,这种情况下旧必须将eth0替换为网卡真实的interface。interface可使用ifconfig -a查看,就是服务器的外网地址所对应的那个。比如我的服务器使用的是venet0。如果发现interface是venet0:0这样的,请去掉冒号和冒号后面的部分。因此,在我的服务器,实际上应该添加下面的规则:

sudo iptables -t nat -A POSTROUTING -ovenet0 -j MASQUERADE

7、重启ppptd

sudo service pptpd restart

8、使用VPN客户端测试

9、安装iptables-persistent。

很多文章都漏掉了这一步,结果重启后iptables的nat规则会丢失,导致VPN无法使用。最简单的方法是安装并使用iptables-persistent。

apt-get install iptables-persistent

保存iptables规则:

/etc/init.d/iptables-persistent save

iptables-persistent可以在重启时自动恢复保存的规则。(http://blog.droidking.com/)

阅读:999

《在搬瓦工(Bandwagonhost)的VPS上搭建Ubuntu VPN Server》上有2条评论

    1. 如果用iptables-save,还得添加iptables-restore的脚本才行,比如:
      $ iptables-save > /etc/iptables.conf
      # 将以下命令添加到/etc/rc.local,确保重启后自动加载。
      iptables-restore < /etc/iptables.conf iptables-persistent应该就是帮你干了save、restore的事。

发表回复