在Centos 6.5搭建VPN服务器

为什么要搭,都懂的…在电脑端主要是用ssh作为socks5代理(Windows用Bitvise SSH Client,Linux用ssh -N -D 7070 用户名@IP地址),将http的报文封装在ssh的数据包里,在客户端和服务器之间传输,这个跟Chrome的插件SwitchyOmega(我的备份文件)搭配起来超级方便。不过手机上没办法用(iPhone得越狱,我没越狱),只能再搭个VPN了。

首先检查需要搭建VPN的服务器有没有启用PPP以及TUN

使用下面命令:

1
2
cat /dev/ppp
cat /dev/net/tun2

如果显示结果是:

1
2
cat: /dev/ppp: No such device or address
cat: /dev/net/tun: File descriptor in bad state

那么表示已经启用了。如果没启用,让你的服务提供商给你开吧。

安装必须要的软件

需要用到ppp, iptables

1
yum install ppp iptables

添加pptpd的源并安装:

1
2
rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum install pptpd

配置pptp

修改各种配置文件:

/etc/pptpd.conf

添加下面两行:

1
2
localip 192.168.0.1
remoteip 192.168.0.10-111

192.168.0.10-111表示用户被分配的ip地址的范围。

/etc/ppp/options.pptpd

添加下面两行,表示使用Google的DNS服务器:

1
2
ms-dns 8.8.8.8
ms-dns 8.8.4.4

/etc/ppp/chap-secrets

这个文件是用来添加vpn账号的,每一行表示一个用户,格式如下:

1
username pptpd passwd *

  • username表示用户名
  • passwd表示账号
  • *表示任何ip,如果只想一个账号只能一个人登陆,就设置一个固定ip,参考上面的ip地址范围。我试过忘了填,导致vpn一直连不上,弄了很久才发现是这个问题…

/etc/sysctl.conf

修改内核设置,使得支持转发,将net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1,要取消注释。修改后运行下面命令使得生效:

1
/sbin/sysctl -p

添加转发规则

上面配置完了,重启pptpd服务后,应该是能登陆,但是没法上网,这时候需要添加iptables转发规则:

1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source server-ip

  • 192.168.0.0/24: 这个是需要包括你上面分配的ip地址范围
  • vps-ip: 这里填的是你的服务器ip

保存iptables转发规则:

1
/etc/init.d/iptables save

然后重启iptables以及pptpd:

1
2
/etc/init.d/iptables restart
/etc/init.d/pptpd restart

这时候就可以登陆并上网了。

设置开机启动

iptables以及pptpd都设置为开机启动:

1
2
chkconfig iptables on
chkconfig pptpd on

客户端配置

Google或者百度一下vpn pptp设置即可。

OK,搞掂。


我是很帅气的分割线


下面写个别的问题,就是解决用ssh代理无法登陆google的问题。会提示如下错误:

1
2
3
We're sorry...
... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.
See Google Help for more information.

百度搜了一下,是Google把linode的ipv6给屏蔽了,只需要把ipv6禁用了就可以了,方法如下:

1
2
3
echo '1' > /proc/sys/net/ipv6/conf/lo/disable_ipv6
echo '1' > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo '1' > /proc/sys/net/ipv6/conf/default/disable_ipv6

坚持原创技术分享,您的支持将鼓励我继续创作!