首页 > 服务器 > ubuntu配置pptpd服务vpn并支持ipv6

作者:ghostry 发布时间:2013-04-07 浏览: 22513

转载注明出处: https://blog.ghostry.cn/server/ubuntu-pei-zhi-pptpd-fu-wu-vpn-bing-zhi-chi-ipv6.html

有傻逼公司封了几个网站.虽然我的是国内vps,跳过公司封锁还是够的.于是就给他配置个vpn服务.pptp比较方便.windows自带客户端.就选这个了.第一步总是最简单的.

sudo apt-get install pptpd

安装.然后就配置了.方法如下.

sudo gedit /etc/pptpd.conf

找到localip这行,应该在文件后边.
去掉注释,这个是服务端ip,自己编一个.要不用默认也行.
remoteip也去掉注释.这个是客户端ip段.自己编.默认也行.
然后编辑 /etc/ppp/pptpd-options这个文件,我就不写命令了.找到ms-dns

ms-dns 8.8.8.8
ms-dns 114.114.114.114

这个是配置dns服务器

编辑 /etc/ppp/chap-secrets 文件,这里面存放着 VPN 的用户名和密码,根据你的实际情况填写即可。如文件中注释所示,第一列是用户名,第二列是服务器名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)。这里我就不贴我的配置了.
然后重启pptpd使配置生效

sudo /etc/init.d/pptpd restart

这样之后就能拨上去了.但是客户机不能上网.需要配置转发和nat
编辑 /etc/sysctl.conf 文件,找到

net.ipv4.ip_forward=1

去掉注释,
然后使配置生效

sudo sysctl -p

然后配置iptables添加转发规则

sudo iptables -t nat -A POSTROUTING -s 192.168.18.0/24 -j MASQUERADE

最后把这句放到/etc/rc.local文件里,使其每次开机都有效.
网上都讲到这就说能上网了.但是我弄完还是不行.搞了半天.发现是ufw的问题.
1723端口我倒是记得打开了.但是却没有打开转发.这是不行的.
编辑/etc/default/ufw 文件,找到DEFAULT_FORWARD_POLICY把拒绝改完允许,就是ACCEPT
照样搞完就能上网 了.
然后我还想弄pptpd支持ipv6.
首先,我有ipv6/48的地址范围.我的ubuntu已经配置好ipv6联网了.
然后,pptpd支持ipv6的方法如下.
编辑/etc/ppp/pptp-options 文件.

ipparam pptpd
ipv6 , 

注意,第二行是ipv6空格逗号空格
然后安装radvd

sudo apt-get install radvd

然后新建文件夹/etc/ppp/ipv6-radvd ,新建文件/etc/ppp/ipv6-up.d/radvd

#!/bin/sh
if test $PPP_IPPRARM != pptpd ;then
        exit 0
fi

ADDR=$(echo $PPP_REMOTE | cut -d : -f 3,4,5,6)

if test x$ADDR == x ; then
        echo "Unable to generate IPv6 Address"
        exit 0
fi
ADDR=(注意这里写自己的地址,例2001:470:8193):BEEF:$ADDR

#add route
route -6 add $ADDR/128 dev $PPP_IFACE

#generate radvd config
RAP=/etc/ppp/ipv6-radvd/$PPP_IFACE
RA=$RAP.conf

cat <<EOF >$RA
interface $PPP_IFACE{
        AdvManagedFlag off;
        AdvOtherConfigFlag on;
        AdvSendAdvert on;
        MinRtrAdvInterval 5;
        MaxRtrAdvInterval 100;
        UnicastOnly on;
        AdvSourceLLAddress on;
        prefix 2001:470:8192:BEEF::/64 {};
};
EOF

#start radvd
/usr/sbin/radvd -C $RA -p $RAP.pid

#start tchdpd
/usr/sbin/tdhcpd \
 --dns-server=2001:470:20::2 \
 --dns-name=$PPP_IFACE.tunnel.ipv6.icybear.net \
 --pid-file=$RAP.dhcp.pid \
 --local-id=tunnel.ipv6.icybear.net -L debug\
 $PPP_IFACE

#update dns
ARPA=$(ipv6_rev $ADDR)
nsupdate << EOF
update delete $ARPA
update add $ARPA 10 ptr $PPP_IFACE.tunnel.ipv6.icybear.net
send
update delete $PPP_IFACE.tunnel.ipv6.icybear.net
update add $PPP_IFACE.tunnel.ipv6.icybear.net 10 aaaa $ADDR
send
EOF

exit 0

新建/etc/ppp/ipv6-down.d/radvd文件

#!/bin/sh
RAP=/etc/ppp/ipv6-radvd/$PPP_IFACE
kill `cat $RAP.pid` || true
kill `cat $RAP.dhcp.pid` || true
rm -f $RAP.*
ADDR=$(echo $PPP_REMOTE | cut -d : -f 3,4,5,6)
ADDR=(注意这里写自己的地址,例2001:470:8193):BEEF:$ADDR
ARPA=$(ipv6_rev $ADDR)
nsupdate << EOF
update delete $ARPA
send
update delete $PPP_IFACE.tunnel.ipv6.icybear.net
send
EOF
exit 0

最后给新建的两个文件添加可执行权限.应该就可以了.

标签: ubuntu ipv6 pptpd vpn

上一篇: 更换bambook的sd卡升级空间
下一篇: 漂移板学板流水账

已有 5 条评论 »

  1. /usr/sbin/tdhcpd
    这个东西并不存在,而且脚本在pptp拨号连接后也没有执行

    1. 都四年了,版本不同了吧。

  2. 网站备案了吗?没有备案也可以放在sae上

    1. 没备案也可以啊,不过我的备案了。

  3. 来学习一下

添加新评论 »

*
*

欢迎评论!歡迎評論!Comments welcome!komentoj bonvenaj!댓글 오신 것을 환영합니다!
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :cold: :cryy: :cute: :shy: :sleep: :struggle: :tea: :yahou: