古城热线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
开启左侧

如何使用 CentOS 6 实例配置 PPTP VPN 连接

[复制链接]
发表于 2016-3-3 14:26:54 | 显示全部楼层 |阅读模式
如何使用 CentOS 6 实例配置 PPTP VPN 连接

更新时间:2018-02-11 14:44:28

[url=][/url]
[url=][/url]


说明:
本文以 CentOS 实例为例配置 PPTP VPN,仅用于示例和操作指引,请您根据实际需要操作。使用 PPTP 服务存在安全隐患,点击查看详情,您需要考虑由此产生的影响及问题。


前提条件

配置 PPTP VPN 需要使用 TCP 1723 通信端口。您需要 在安全组中放行 TCP 1723 端口

配置 CentOS PPTP 服务端安装软件
  • 使用命令 yum install -y ppp pptpd 安装软件。


配置 pptpd 文件
  • 运行 vi /etc/pptpd.conf 编辑配置文件,删除下列两行命令符前面的 #,保存后退出。

    • #localip 192.168.0.1
    • #remoteip 192.168.0.234-238

    localip 192.168.0.1 和 remoteip 192.168.0.2-200 分别是 VPN 的网关地址和 VPN 拨号获取地址段。您可以根据需要调整。

  • 运行 vi /etc/ppp/options.pptpd 将 ms-dns 修改为 223.5.5.5 和 223.6.6.6。保存后退出。

    • #ms-dns 10.0.0.1
    • #ms-dns 10.0.0.2
    • ms-dns 223.5.5.5
    • ms-dns 223.6.6.6

    IP 地址 223.5.5.5 和 223.6.6.6 是阿里云的公共 DNS 服务器地址,您可以根据需要调整为其它公共 DNS 服务地址。

  • 运行 vi /etc/ppp/chap-secrets 设置 pptpd 的用户名和密码。根据需要添加账号,一行只添加一个用户账号。按照 用户名 pptpd 密码 IP地址 的格式输入,每一项用空格隔开。保存后退出。示例:test pptpd 123456 *,其中 * 表示所有IP。

    • # Secrets for authentication using CHAP
    • # client server secret IP addresses
    • test pptpd 123456 *

  • 运行 vi /etc/ppp/ip-up 设置最大传输单元 MTU,在命令符 [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@” 后面添加 ifconfig ppp0 mtu 1472。

    • /etc/ppp/ip-up. ipv6to4 ${LOGDEVICE}
    • [ -x /etc/ppp/ip-up.local  && /etc/ppp/ip-up.local "$@"
    • ifconfig ppp0 mtu 1472


修改内核参数设置
  • 运行 vi /etc/sysctl.conf 编辑配置文件,添加 net.ipv4.ip_forward = 1 的配置,保存后退出。

  • 运行 sysctl -p 使修改后的参数生效。


添加防火墙规则
  • 运行 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE 添加 iptables 转发规则。

  • 运行 iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source XXX.XXX.XXX.XXX 添加 NAT 转发规则,其中 XXX.XXX.XXX.XXX 为您的实例公网 IP 地址。

  • 运行 iptables-save 保存设置。


配置 PPTP 服务
  • 运行 systemctl restart pptpd 重启 PPTP 服务。

    注意:
    此时 PPTP 还未成功运行,所以当您使用重启 PPTP 服务时,系统会提示 Shutting down pptpd [FAILED],并发出警告。您可以忽略提示和警告,再次使用以上命令重启 PPTP 服务,警告信息就会消失。

  • 运行 systemctl restart iptables 重启 iptables。

  • 运行如下命令设置 pptpd 和 iptables 自启动。

    • systemctl enable pptpd.service
    • systemctl enable iptables.service

至此,您的 PPTP VPN 服务端安装结束了。您可以在 Windows 客户端的 网络和共享中心 设置新的连接或网络,即可通过 VPN 访问网络。

配置 CentOS PPTP 客户端

此处以 CentOS 7.4 为例配置 PPTP 客户端。

  • 运行 yum install -y ppp pptp pptp-setup 安装软件包。

  • 运行 pptpsetup --create test --server IP --username 用户名 --password 密码 --encrypt --start 连接 VPN 服务端。

    注意:
    您需要填写实际配置 VPN 服务端的 IP 地址、用户名和密码。

  • 当系统提示已经被分配了 192.168.0.234 的客户端地址时,运行 ifconfig | grep -A 10 ppp 可以看到 ppp0 网卡。

  • 运行 ip route replace default dev ppp0 增加默认路由。


增加路由后,您就可以访问 VPN 服务器了。

常见问题浏览器无法打开网页
  • 现象:搭建 PPTP VPN 后,测试可以连接,可以 ping 通网站域名,但浏览器无法打开网页。

  • 分析:一般是 MTU 设置不正确导致的。

  • 方案A:在配置 VPN 的 CentOS 服务器中运行 ifconfig ppp0 mtu 1472。

    注意:
    上述解决方案可以临时生效,如果您需要长期生效的方案,参考方案 B

  • 方案B:

    • 运行 vi /etc/ppp/ip-up 在 /etc/ppp/ip-up 文件中增加 ifconfig ppp0 mtu 1472。

      • /etc/ppp/ip-up. ipv6to4 ${LOGDEVICE}
      • [ -x /etc/ppp/ip-up.local  && /etc/ppp/ip-up.local "$@"
      • ifconfig ppp0 mtu 1472


  • 测试:


获取到错误的 IP 地址
  • 现象:客户端成功连接上 VPN 后,获取到错误的地址。获取的地址不是 VPN 服务端分配的地址,而是云服务器 ECS 的内网网卡地址,如图:

  • 分析:如果出现这种情况,假设配置的 VPN 客户端配置名称是 testvpn,可以参照如下步骤尝试处理。

  • 方案:

    • 在 ppp 客户端配置文件 /etc/ppp/peers/testvpn 中添加 noipdefault 参数。

    • 使用如下命令重启客户端。重新连接后通常可获取到正确的 IP 地址。

      • poff testvpn
      • pon testvpn

      注意:
      重启客户端时,noipdefault 参数可能会被服务端传递过来的参数覆盖掉。如果 noipdefault 被覆盖,您需要检查服务端的配置。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|古城热线论坛 ( 宁ICP备12000722号 )

GMT+8, 2024-5-3 20:20 , Processed in 0.095190 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表