Ubuntu下pptp VPN服务器的配置

    2015-10-15 01:02     0 条评论

配置pptp服务器

我们以Ubuntu为例,说一下怎样配置VPN服务器。

1、用root账户登陆服务器

2、安装PPTPD

apt-get install pptpd

3、编辑pptpd.conf文件

vi /etc/pptpd.conf
取消注释下面内容

 localip 192.168.0.1
 remoteip 192.168.0.234-238,192.168.0.245

这几句的意思是:当外部计算机通过pptp联接到vpn后所能拿到的ip地址范围和服务器的ip地址设置。

4、添加用于登陆的账户

vi /etc/ppp/chap-secrets

client server secret IP addresses

username pptpd 123456 *

从左到右依次是用户名,自己指定。服务器,填写pptpd,密码,自己指定。IP,填*即可。中间用空格分别隔开。

5、设置DNS解析,编辑pptpd-options文件

vi /etc/ppp/pptpd-options

找到ms-dns,取消掉注释,并修改DNS地址,这里我推荐大家用

Google DNS 8.8.8.8 和 8.8.4.4

更改为如下内容

ms-dns 8.8.8.8
ms-dns 8.8.4.4

6、开启转发

vi /etc/sysctl.conf

取消注释以下内容

net.ipv4.ip_forward=1

这句话意思是:打开内核IP转发

更新一下配置

sudo sysctl -p

7、安装iptables并设置防火墙

apt-get install iptables
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

后面这句话作用是:立刻让LINUX支持NAT(platinum)

设置防火墙:

sudo iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
 sudo iptables -I INPUT -p tcp --dport 47 -j ACCEPT
 sudo iptables -I OUTPUT -p tcp --dport 1723 -j ACCEPT
 sudo iptables -I OUTPUT -p tcp --dport 47 -j ACCEPT

8、重新启动服务

/etc/init.d/pptpd restart

9、大功告成,VPN服务器就这么配置好啦。

接下来,利用IP地址,刚才设置的VPN账号和密码,就可以连你的VPN啦。

无法访问被GFW

建立连接之后,您会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。如果需要访问这些内容的话,我们还需要进一步设置:

1、 先安装 iptables:

sudo apt-get intall iptables

装好后,我们向 nat 表中加入一条规则:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j MASQUERADE

这样操作后,客户端机器应该就可以上网了。
但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:

sudo iptables-save > /etc/iptables-rules

然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

pre-up iptables-restore < /etc/iptables-rules

这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。
到此,一个 VPN Server/Gateway 基本就算架设完毕。

当然,也许你按照我的方法做了,还是无法成功,那么下面总结一些我碰到的问题和解决方案:

1、无法建立 VPN 连接:

安装好 pptpd 并设置后,客户端还是无法建立到服务器的连接。造成的原因可能有以下几种:
服务器端的防火墙设置:PPTP 服务需要使用 1723(tcp) 端口和 gre 协议,因此请确保您的防火墙设置允许这两者通行。
如果服务器在路由器后面,请确保路由器上做好相应的设置和端口转发。
如果服务器在路由器后面,那么请确保你的服务器支持 VPN Passthrough。
如果客户端在路由器后面,那么客户端所使用的路由器也必须支持 VPN Passthrough。其实市面上稍微好点的路由器都是支持 VPN Passthrough 的,当然也不排除那些最最最便宜的便宜货确实不支持。当然,如果你的路由器可以刷 DD-Wrt 的话就刷上吧,DD-Wrt 是支持的。

2、能建立链接,但“几乎”无法访问互联网

这里我使用“几乎”这个词,是因为并不是完全不能访问互联网。症状为,打开 Google 搜索没问题,但其它网站均无法打开;SSH 可用,但 scp 不行;ftp 能握手,但传不了文件。我就遇到了这种情况,仔细 Google 后发现原来是 MTU 的问题,用 ping 探测了一下果然是包过大了。知道问题就好办了,我们可以通过 iptables 来修正这一问题。具体原理就不讲了,需要的自己 Google。这里只说解决方案,在 filter 表中添加下面的规则:

sudo iptables -A FORWARD -s 192.168.0.1/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200

上面规则中的 1200 可以根据你的实际情况修改,为了保证最好的网络性能,这个值应该不断修改,直至能保证网络正常使用情况下的最大值。
好了,至此,一台单网卡 pptp-server 就算完成了。

本文地址:https://www.yhawaii.net/ubuntu-pptp-vpn.html
版权声明:本文为原创文章,版权归  所有,欢迎分享本文,转载请保留出处!

 发表评论


表情