热门标签 | 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的好。



推荐阅读
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 利用SSH隧道实现外网对局域网机器的安全访问
    本文探讨了一种常见的网络配置问题及其解决方案,即如何在外网环境下安全地访问位于局域网内的计算机。特别介绍了使用SSH反向隧道技术来实现这一目标的具体步骤和注意事项。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • Linux网络安装指南
    本文详细介绍了如何通过网络安装Linux操作系统,包括必要的服务配置和常见问题解决方法,旨在帮助IT专业人士提高系统部署效率。 ... [详细]
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社区 版权所有