热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Debian系统中一键安装PPTPVPN的方法

昨日又买个了NewYorkBuffalo(布法罗,又译水牛城,美国纽约州西部的一座城市)的VPS,测试不如还不如LasVegas的速度快,LasVegas大陆访问约170-250毫秒,而NewYork约230-310ms。但是NewYork相对反而卖的好........下面是笔记,进入正题,测试2台pptp均通过。
昨日又买个了New York Buffalo(布法罗,又译水牛城,美国纽约州西部的一座城市)的VPS,测试不如还不如Las Vegas的速度快,Las Vegas大陆访问约170-250毫秒,而New York约230-310ms。但是New York相对反而卖的好........

下面是笔记,进入正题,测试2台pptp均通过。

在BuyVM Debian系统中安装PPTP VPN (OpenVZ)

新版的 OpenVZ 已经支持 ppp device 了。
参见资料 http://wiki.openvz.org/PPP_in_container

一、安装环境检测
首先要检测你的VPS是否开启了TUN和PPP
buyvm默认开启了的 其他主机商的 可以测试下 不行的话联系你的提供商,直接询问。
自行检测的方法:
检测TUN,命令如下:
cat /dev/net/tun
返回:cat: /dev/net/tun: File descriptor in bad state 说明正常

检测是支持PPP模块,命令如下:
cat /dev/ppp
返回:cat: /dev/ppp: No such device or address 说明正常
返回:“Permissiondenied”则不通过。
如果不通过测试,尝试运行以下命令后再试一下。
rm /dev/ppp
mknod /dev/ppp c 108 0

上面的2条必须都通过,才可安装pptp。
如果无法通过,只能去跟客服申请为你的VPS打开TUN/TAP/PPP功能了。

二、安装pptp

apt-get update
apt-get install pptpd
根据提示按Y即可。

三、配置PPTP服务器

1)编辑/etc/pptpd.conf
输入 vi /etc/pptpd.conf
注意:简单提下vim这个编辑器的用法。vi/vim命令是一个编辑器,类似WIN下的notepad记事本。vi某文件后,再按i,左下角会显示insert,这时候才可以修改这个文件。修改好后,按esc左下角insert消失,再输入:x,回车,则存盘退出,或者输入:wq,回车,也是存盘退出;如果想不存盘退出,则输入:q!,回车即可。

找到
# (Recommended)
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
去掉#并更换IP段,这里要注意网段,可以写个不常用网段,以免出现冲突和莫名的错误。
如,我的写的是:
localip 192.168.52.1
remoteip 192.168.52.234-238,192.168.52.245
注:此处的remoteip指定的IP范围是用来给远程连接使用的。如果您远程访问VPN,VPN就会在remoteip范围内分配一个ip地址给你。此处的IP段可以任意,但是尽量注意不要跟本地网络的IP段有冲突。

2)修改DNS服务器

编辑/etc/ppp/options,添加如下内容:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
文件很长,可以在文件顶部添加即可。

3)添加PPTP VPN用户

编辑/etc/ppp/chap-secrets 添加如下内容:
格式: username pptpd password *
根据您的需要添加账号,每行一个。
格式:“用户名 pptp 密码 ip地址”,中间用空格隔开
如果不写IP,注意最后面的*星号,一定要添加上。
如 我添加的账号
test pptpd 5211314abc *
这里test是账号,5211314abc是密码,请更换为你自己的,注意空格。

4)修改内核设置,使其支持转发。
编辑/etc/sysctl.conf
将:
#net.ipv4.ip_forward=1
改成:
net.ipv4.ip_forward=1

5)添加iptables转发规则

安装iptables
apt-get install iptables
如果已经安装可以跳过

对应OpenVZ架构,适合于OpenVZ架构的VPS,12.34.56.78为您VPS的公网IP地址
iptables -t nat -A POSTROUTING -s 192.168.52.0/24 -j SNAT --to-source 12.34.56.78
(OpenVZ,192.168.52.0一定要和上面设置的IP段匹配,12.34.56.78为你的VPS的公网IP地址)
这步可以不执行,因为下面要设置转发规则的文件一并写入。

6)重启 pptpd
sudo /etc/init.d/pptpd restart

7)设置pptp和iptables随系统启动
iptables规则需要保存到开机运行,否则重启后就不行了
输入 vi /etc/pptpdfirewall.sh
加入:
sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.52.0/24 -j SNAT --to-source 12.34.56.78
sudo /sbin/iptables -A FORWARD -s 192.168.52.0/24 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356
这里ip段也是刚才设置的IP段,不要乱写。后面12.34.56.78更改为你自己的公网IP。
保存。

然后输入命令
chmod 755 /etc/pptpdfirewall.sh
再输入
vi /etc/init.d/rc.local
在最后一行加上
sh /etc/pptpdfirewall.sh
保存,完毕!

然后 reboot 重启VPS。
开始测试VPN吧。

错误处理

1.pptp拨号如果提示619错误,执行:
mknod /dev/ppp c 108 0
如果提示文件已经存在,先删除再重新执行;如果还是619错误,多半就是NAT出口不支持pptp或者禁止了,这个就自己无法解决了。
然后重启VPS

如果还是得不到解决,有人搭建pptp时就遇到这样的情况,这时候可以打开/var/log/messages文件,查看程序错误,如安装时候错误如下:
/usr/sbin/pppd: The remote system is required to authenticate itself
/usr/sbin/pppd: but I couldn't find any suitable secret (password) for it to use to do so.
错误提示是认证错误,这里千万注意第二步设置用户时候的格式。
执行以下命令 vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server       secret        IP addresses
"username" pptpd "password" *
问题得到解决!
或者设置iptables规则是拷贝的文件的时候少了字符,一般拷贝的时候容易第一个字母自动消失,我在拷贝粘贴中多次遇见丢失字符现象。

2.如果出现错误800。
修改/etc/ppp/options文件,注释掉以下内容,修改如下:
#require-mppe-128
取消连接加密,并且在客户端取消加密设置。
据我测试,buyVM的openVZ是支持mppe128加密的。
但是也许是Buffalo - OpenVZ - NY BuyVM 大陆访问速度有些慢,有时候也会提示800错误。

注意,不要用网上所谓的给require-mppe-128加注释的方法。这个方法治标不治本,因为mppe是用于加密的,注释了等于没有加密,数据还是公开的,这样可能平时能访问一些网站,但是关键时刻和关键网站就无能为力了,因为数据照样能被过滤的。不加密的VPN一点用处都没有,还不如直接用SSH的好。



推荐阅读
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 如何在Vista中通过组策略禁用添加或删除程序功能
    本文详细介绍了如何在Windows Vista操作系统中通过组策略禁用“添加或删除程序”功能,以防止未经授权的用户安装或卸载应用程序。文章内容清晰易懂,适合IT管理员和技术人员阅读。 ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • 整理于2020年10月下旬:总结过去,展望未来Itistoughtodayandtomorrowwillbetougher.butthedayaftertomorrowisbeau ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • 阿里云服务器搭建详解——Ubuntu
    由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器。听朋友说,学生买的话是非常便宜 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
author-avatar
極點創意文化
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有