ubuntu server 9.04 架设vpn 服务 手记2+

8,752 views / 2010.01.12 / 10:10 下午

刚在国外买了台服务器,第一个念头就是终于可是翻墙了,于是着手建立一个vpn服务器。OpenVPN在windows上还要客户端,不采用。L2TP/IPSec方式的太复杂,也不用。所以就选择PPTP方式,因为现在windows和Mac系统中都内建了相应的客户端。下面是我的安装日记。
服务器环境:Ubuntu 9.04 单网卡
呵呵,先sudo bash吧,虽然不安全,可是谨慎些,运行命令方便
首先安装pptp server
apt-get install pptpd
成功后配置conf文件
vi /etc/pptpd.conf
释放文件末端的 localip 和 remoteip 两个参数的注释,然后修改。这里,localip 是 VPN 链接成功后服务器的 ip 地址, remoteip 则客户端的可分配 ip 地址范围。下面是我的配置:
# (Recommended)
localip 10.100.0.1
remoteip 10.100.0.2-10
# or
#localip 192.168.0.234-238,192.168.0.245
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
然后要编辑/etc/ppp/pptpd-options文件,为vpn指定dsn服务器, 哈哈,我们使用Google Public DNS:
vi /etc/ppp/pptpd-options
修改
ms-dns 8.8.8.8
ms-dns 8.8.4.4

保存后,接下来配置用户名和密码了。修改/etc/ppp/chap-secrets文件,根据你的情况填写即可。具体解释如下:
第一列是用户名,第二列是服务器名(默认写pptpd 即可,注意与 pptpd-options 文件保持一致),第三列是密码,第四列是 IP 限制(不做限制用 * )。

最后重启pptpd服务,就可以生效了。

目前位置,我们只完成了一部分,因为这样只能访问服务器资源,其余内外网内容都无法访问。我们继续操作:
修改/etc/sysctl.conf,把ipv4 forward开启,方法是去掉
net.ipv4.ip_forward=1前面的注释,然后保存,运行sysctl –p.

root@duyipeng:~# sysctl -p
net.ipv4.ip_forward = 1
这样,我们的vpn server就算是搭建成功了。
如果依然不能访问外网,请使用iptables建立一个NAT, 方法如下:
apt-get intall iptables
iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE
上面的24表示子网掩码,代表24个1.

如果要防止重启服务器后iptables丢失,先运行

iptables-save > /etc/iptables-rules

然后修改/etc/network/interfaces 文件,在eth0 下面加入

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

这样,服务器重启后,就能自动挂载规则了。

如此,应该可以解决问题。如果还是无法成功,你就改检查你的路由和防火墙了。Good Luck!

Categories: 感悟 Tags: , ,