Debian PPTP VPN 配置教程

By | 2015年1月22日

作为经典科学上网工具,VPN 有着广泛的平台兼容性。下面给大家简单介绍 Debian PPTP 配置方法,以供参考查阅。

在 VPS 上安装之前需要运行以下命令以确定 PPP/TUN 支持:

  • 执行:cat /dev/ppp
  • 回显:cat: /dev/ppp: No such device or address
  • 执行:cat /dev/net/tun
  • 回显:cat: /dev/net/tun: File descriptor in bad state

只有确认回显内容与上述一致,才能够进行 PPTP VPN 安装配置。

安装PPTP VPN

依次执行下列命令,以更新服务器并安装 PPTP 服务

  • apt-get update
  • apt-get upgrade
  • apt-get install pptpd

配置 PPTP IP

在配置好 PPTP 服务后,需要对服务器 ip 进行配置。使用vi编辑器打开 /etc/pptpd.conf

  • vi /etc/pptpd.conf

找到 #localip 以及 #remoteip 行,删除#并设置 ip 地址

  • localip 192.168.10.1
  • remoteip 192.168.10.100-200

其中 localip 为pptp 网关 ip,remoteip 为 pptp 服务端 ip,可按需任意设置子网段 ip 地址。

编辑 /etc/sysctl.conf,开启 ipv4 转发:

  • vi /etc/sysctl.conf

将 #net.ipv4.ip_forward=1 修改为 net.ipv4.ip_forward=1

修改完成后执行:

  • sysctl -p

如无回显表明设置成功,如报错”error: permission denied on key ‘net.nf_conntrack_max'”等需执行以下命令后再次执行”sysctl -p”:

  • rm -f /sbin/sysctl
  • ln -s /bin/true /sbin/sysctl

配置 PPTP DNS

在设置好ip后,还需要设置 PPTP DNS 地址。该 DNS 地址将覆盖 PPTP 客户端 DNS,推荐使用中华电信DNS:168.95.1.1

  • vi /etc/ppp/pptpd-options

找到#ms-dns行,删除#并设置 DNS

  • ms-dns 168.95.1.1
  • ms-dns 223.5.5.5

配置 PPTP 账号

使用以下命令添加 PPTP 账号:

  • vi /etc/ppp/chap-secrets

格式为:

  • username1 pptpd password *
  • username2 pptpd password 192.168.10.105

第一行格式为不固定客户端ip地址,第二行格式为固定客户端ip地址。

iptables 防火墙设置

依次运行:

  • iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 服务器ip

 

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

 

  • iptables-save > /etc/iptables.pptp

设置开机自动加载:

在路径 /etc/network/if-up.d/ 创建 iptables 文件

  • vi /etc/network/if-up.d/iptables

文件内容如下:

  • #!/bin/sh
  • iptables-restore < /etc/iptables.pptp

保存后运行:

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

如果在设置 PPTP 时选择了不同的 ip 地址,在设置 iptables 时需要对应修改。

部分 VPS 还需要运行以下命令安装 ppp 设备:

  • mknod /dev/ppp c 108 0

至此配置完成,运行以下命令启动 PPTP 服务:

  • /etc/init.d/pptpd restart

随后使用配置好的 PPTP 用户名以及密码连接即可,默认加密方式为 MPPE-128。

以上配置在搬瓦工测试通过。

 

17 thoughts on “Debian PPTP VPN 配置教程

  1. samuel

    你好,
    请问

    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT -–to-source 服务器ip
    中的服务器IP是VPS的IP地址吗?

    还有
    iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356这一句显示
    bad argument ‘1356’
    这是怎么回事?

    谢谢。

    Reply
    1. reizhi Post author

      -–to-source这里跟的就是VPS IP
      –set-mss这里报错问题不大,可以试试PPTP能否使用

      Reply
  2. 肖洋

    看到你这篇文章很好!试着做了,但是不能重启VPS 重启后能连上但是就不能上网了,请问是怎么回事

    Reply
    1. reizhi Post author

      感谢指正,防火墙部分没有设置开机启动,所以重启就不能上网了
      文章已更新,把防火墙部分重新做一次就好了

      Reply
  3. 一瓶珍情

    iptables防火墙设置那里的命令目测有问题,望博主更正。另,参考你的文章,已成功连接上vpn

    Reply
  4. Shion

    照着上面做,能连上VPN,但是也是上不了网,是“iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT -–to-source 服务器ip”的IP范围跟remoteip范围不一致吗?

    Reply
  5. Shion

    执行“iptables -I FORWARD -p syn -i ppp+ -j set-mss 1356TCPMSS tcp”会出错:
    iptables v1.4.14: unknown protocol “syn” specified

    Reply
    1. reizhi Post author

      TCPMSS 这一行其实不是必需,不操作也可以的。
      能连接不能上网最好重新做一下ipv4转发和SNAT的设置

      Reply
  6. 0xcc

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

    因为你的 — 变成了全角

    所以他们都说报错

    Reply

回复 reizhi 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

滑动到最右以进行验证 *