Operation

异地组网之 PPTP 快速部署 (ubuntu 20.04+pptpd+pptp-linux+win10)

异地组网之 PPTP 快速部署 (ubuntu 20.04+pptpd+pptp-linux+win10)

声明:本教程仅用于个人学习或工业组网应用,请勿用于“非法”用途,否则带来法律风险自行承担。

PPTP(点对点隧道协议):控制包和数据包分开,控制包采用 TCP 控制,数据包部分封装 PPP 协议然后封装 GREV2 协议。由此可见 PPTP 建立连接前,要求有 IP 网络。

Ubuntu 20.04.1 上搭建 PPTP Server 和 Client

1. Server 部署

  • 1.1 安装 ppp
sudo apt install ppp
  • 1.2 安装 pptpd
sudo apt install pptpd
  • 1.3 配置pptpd

pptpd的配置文件为/etc/pptpd.conf,vim编辑它,一下为部分配置选项,详情可阅读配置文件里面的注释。

# ppp拨号程序路径
ppp    /usr/sbin/pppd

# ppp配置文件
option /etc/ppp/pptpd-options

# 开启debug,日志输出到syslog
debug

# 连接控制的超时时间(秒)
stimeout 10

# 最大连接数
connections 100

# 本地端(server)IP
localip 192.168.0.1

# 远程对端(client)分配IP范围
remoteip 192.168.0.234-238,192.168.0.245
​ 其他默认即可,这里主要修改localip和remoteip。需要注意的是remoteip可以指定一个范围,或者某一个ip,不同的区域用逗号隔开,中间不能有空格。
  • 1.4 配置pptpd对应的ppp配置文件

    pptpd对应的ppp文件文件在上面的/etc/pptpd.conf文件中已指定,为/etc/ppp/pptpd-options,安装pptpd时也一并安装了。

    此文件中主要修改ms-dns项,设置为你想要的dns

#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
ms-dns 114.114.114.114
ms-dns 8.8.8.8

除此之外,还需要留意这个文件里面对鉴权认证和数据加密相关的设置,默认的为:

# 留意refuse(拒绝,禁用)选项
refuse-pap
refuse-chap
refuse-mschap

require-mschap-v2
require-mppe-128

鉴权大致分为chap和pap,chap又有一些不同分支版本,主要是对安全兼容等方面的加强。

  • 1.5 设置ppp账户密码

    账号密码配置的文件有2个,一个是/etc/ppp/chap-secrets,一个是/etc/ppp/pap-secrets。选用哪一个取决于上一个步骤使用何种验证方式,因为这里禁用了:

refuse-pap
refuse-chap
refuse-mschap

而启用了:

require-mschap-v2

所以这里需要在/etc/ppp/chap-secrets配置账户密码

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
test              *       test                    *
admin             *       admin                   *
  • 1.6 启动服务
sudo systemctl enable pptpd
sudo systemctl start pptpd

由于这里不验证client端通过server端上网,所以没讨论如何设置转发和防火墙的设置。

  • 1.7 (扩展)设置转发和防火墙

    开启转发

    sudo vim /etc/sysctl.conf
    #找到对应参数,修改成如下:
    net.ipv4.ip_forward=1
    #保存,使配置生效
    sudo sysctl -p
    配置防火墙
    sudo iptables -A INPUT -p gre -j ACCEPT 
    sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT   
    sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT
    #NAT转发的这条信息根据自己之前的配置(localip,remoteip网段)修改,注意网卡名设置为你的wan口网卡名,Ubuntu高一点的版本一般是ens33
    sudo iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ens33 -j MASQUERADE

    重启服务

    sudo systemctl restart pptpd

此时 client 端可以上外网了。

2. Client 端

首先使用另一台 ubuntu 验证,安装相关的软件

sudo apt-get install network-manager-pptp
sudo apt-get install pptp-linux
  • 注:可能由于墙的问题 shots 无法显示,可前往 这里 查看

通过UI界面配置
pptp-ubuntu1.png

选择PPTP插件
pptp-ubuntu2.png

设置密码时需要点一下那个问好,选择第一个或者第二个,才可以输入密码。然后点击Advance,设置高级配置。
pptp-ubuntu3.png

高级配置里面,根据上面server鉴权和数据加密的配置来勾选,这里server鉴权配置为mschapv2,数据加密使用了mppe-128。保存,连接。
pptp-ubuntu4.png

然后,使用另一个账号密码在openwrt上连接,需要注意的是,一个账号对应一路连接,同一个账号不能同时从多个client端连接。
pptp-openwrt1.png

在server端可以看到此时有2个ppp连接
pptpd1.png

如果嫌麻烦,也可以直接在win10上验证
pptp-win1.png

配置也是相当简单
(pptp-win2.png

留言

您的电子邮箱地址不会被公开。