A Coder

Coding My Dream!

0%

Debian搭建VPN

> 因为家里的宽带是移动网络,在玩lol时是电信服务器,网络经常不稳定,老断线坑队友,手头有一台阿里云主机玩具,所以就像在主机上搭建一个VPN,通过VPN玩游戏,因为阿里云的网络还是挺好的,各个运营商ping值都在20以内。在linux下有很多个vpn的软件,比如 PPTP, L2TP/IPSec 和 OpenVPN,OpenVPN的功能多安全性高,但是他的配置比较麻烦,所以如果只是一般的使用,我推荐大家使用PPTP来搭建VPN,简单快速。

### 安装PPTP ###
在linux下安装软件一般都很简单如下:

apt-get install pptpd

包管理工具会帮我们搞定所有的依赖项。如果你非要安装最新版的,那就老老实实去编译吧!

### 配置PPTP ###
安装好后需要配置PPTP,linux下软件的配置文件大部分都在etc下面,这个也不例外。
编辑 /etc/pptpd.conf 文件

在文件最末尾有几行,如下:

# (Recommended)
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245

我们只要将第2、3两行的注释去掉就行。
localip 表示连接后服务器的ip地址
remoteip 表示给客户端分配的ip
可自行设置 修改后如下

# (Recommended)
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245

其他参数默认即可,有兴趣可以看一下呵呵。


编辑/etc/ppp/pptpd.options文件 这个文件也pptp的配置文件
这里我们主要设置客户端连接是分配的dns

找到 ms-dns 字段,修改为相应的dns服务器地址,比如谷歌的

ms-dns 8.8.8.8
ms-dns 8.8.4.4

添加VPN用户帐号

服务端设置好后我们需要配置一些账户,用来客户端进行登陆。

编辑 /etc/ppp/chap-secrets 文件 可看到如下内容

# Secrets for authentication using CHAP
# client  server  secret      IP addresses

第一列是用户名,第二列是服务器名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持和文件中的name行一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)如创建一个名为user,密码为userpasswd,不限制登录IP的VPN账号:

user pptpd userpasswd *

修改完成后,保存文件,重启服务

service pptp restart
或
/etc/init.d/pptpd restart

不出意外的话现在应该已经能进行连接了,如果连接失败,请检查防火墙设置,PPTP 服务需要使用 1723(tcp) 端口和 gre 协议,因此确保防火墙设置允许这两者通行。
这个时候虽然我们已经能够进行连接了,但是客户端如果想要访问外网的话还需要继续配置。

打开ipv4 forward功能

修改文件 /etc/sysctl.conf,去掉这一行 #net.ipv4.ip_forward=1 的#号,开启ipv4 forward。
然后运行命令:

sysctl -p

有些机器这样设置后就已经可以访问外网了,如果不行,就继续配置

使用iptables来建立NAT

安装iptables,一般都已经安装了

apt-get install iptables

我们向 nat 表中加入一条规则:

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

或

iptables -t nat -I POSTROUTING -j MASQUERADE

eth0 代表的是网卡编号,可执行ifconfig查看网卡。

注意一点 iptables是即时生效的,所以无需重启,如果要停止iptables,请使用iptables -F命令,如果要iptables配置重启后仍然有效,请按如下操作步骤:
 
1.创建/etc/iptables文件(文件名可以随意取)
 
2.创建/etc/network/if-pre-up.d/iptables文件,并给予其执行权限

touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

 
3.编辑/etc/network/if-pre-up.d/iptables文件,使其内容如下:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables

4.配置iptables,过程略,配置好iptables后,将配置保存到/etc/iptables文件中即可

iptables-save > /etc/iptables
iptables -F  //将内存中iptables的所有配置清空,效果等同于停止了iptables

配置完后重启pptp,应该就没有问题了。

关于一些网站或游戏无法连接

我配置完成后,能顺利打开百度,谷歌等网站,但是QQ,163等的网站无法打开,一些游戏也是连接异常,但是断开vpn后可无压力打开,经过百度搜索后发现原来是MTU大小太大所致。改小即可,可通过iptables设置如下:

iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

拨VPN后无法访问某些网站的问题

呵呵,试用一晚,效果不错!理论上其他发行版应该也行!