本文为您介绍 Linux 客户端如何通过 L2TP 连接到 VPC 私有网络。

前提条件

  • 客户端的网络网段与 VPC 的私有网络网段没有重叠。

    如果网络地址存在重叠,用户可以将云平台中的私有网络与 VPC 网络断开,再重新连接至该 VPC 网络,并重新给私有网络指定一个网络地址。

  • 客户端能够访问互联网。

操作步骤

步骤一:启用 L2TP 服务

  1. 登录企业云平台 Console。

  2. 在 Console 导航栏中,选择产品与服务 > 网络服务 > VPC 网络,进入VPC 网络页面。

  3. 点击目标 VPC 网络,进入 VPC 网络的详情页面。点击管理配置标签,进入 VPC 网络的管理配置页面。

  4. 点击管理配置页面左侧的导航栏的 VPN 服务,进入 VPN 服务管理页面。

    vpc_configure_openvpn
  5. 点击 L2TP 后面的打开,弹出对话框。用户根据页面提示,配置 L2TP 参数,点击提交

    参数 说明

    账户

    VPN 连接的认证用户名。用户名中不能包含特殊字符,只能包含大小写字母或者数字,或者 -_.

    密码

    VPN 连接的认证密码。 密码至少 8 位,并包括大小写字母及数字。

    PSK

    预共享密钥,用于验证 L2TP/IPSec 连接的 Unicode 字符串。输入任意字符串即可。后续可修改。

    网络地址

    VPN 网络地址。

    说明

    VPN 网络地址不能跟您的本地网络存在冲突。

  6. 如需添加多个用户,则继续点击添加账户

  7. 配置完成后,点击应用修改, 更新 VPC 配置。

  8. 开启 L2TP 服务后,需要前往 VPC 网络使用的安全组规则中放行 UDP 下行 5004500 端口以及 ESP 协议,以确保 VPN 端口流量可以通过。

    l2tp sg rule

步骤二:配置 L2TP 客户端

  • Linux 客户端

    以下操作以 Ubuntu 系统为例进行描述,其他 Linux 分发版操作方法类似。配置 L2TP 客户端分为 L2TP、IPsec 两个部分。如果您想使用 IPsec 加密,请务必先完成 IPsec 部分的配置。

    1. 配置 IPsec。

      1. 执行以下命令行,安装依赖包。

        sudo apt-get install openswan
      2. 参考以下内容,修改 /etc/ipsec.conf 配置。

        配置示例

        version 2.0
        config setup
            protostack=netkey
            nat_traversal=yes
            keep_alive=60
            virtual_private=
            oe=off
        
        conn %default
            rekey=yes
            authby=secret
            auto=start
            type=tunnel
            keyexchange=ike
            phase2=esp
            pfs=yes
            dpddelay=15
            dpdtimeout=60
            dpdaction=restart
        
        conn <l2tp_name>
            authby=secret
            type=transport
            pfs=no
            auto=start
            left=%defaultroute
            leftprotoport=17/1701
            right=<l2tp_server_ip>
            rightprotoport=17/1701

        配置说明

        • <l2tp_server_ip> 填写 VPC 网络的公网 IP。

        • <l2tp_name> 填写 IPsec 连接名,需自定义。

      3. 参考以下内容,修改 /etc/ipsec.secrets 配置。

        配置示例

        %any <l2tp_server_ip>: PSK "<psk>"

        配置说明

        • <l2tp_server_ip> 填写 VPC 网络的公网 IP。

        • <psk> 填写前文配置的预共享密钥。

      4. 执行以下命令行,重启 IPsec 服务。

        sudo service ipsec restart
      5. 执行以下命令行,检查连接是否正常建立。

        ipsec auto status
    2. 配置 L2TP。

      1. 执行以下命令行,安装依赖包。

        sudo apt-get install xl2tpd ppp
      2. 参考以下内容,修改 /etc/xl2tpd/xl2tpd.conf 配置。

        配置示例

        [lac <lac_name>]
        lns = <l2tp_server_ip>
        refuse chap = yes
        refuse pap = yes
        require authentication = yes
        length bit = yes
        pppoptfile = /etc/ppp/<l2tp_name>

        配置说明

        • <lac_name> 填写 lac 名,需自定义。

        • <l2tp_server_ip> 填写 VPC 网络的公网 IP。

        • <l2tp_name> 填写 ppp 配置的文件名,需自定义。

      3. 新建 /etc/ppp/<l2tp_name> 配置文件,配置如下内容。

        配置示例

        +chap
        lock
        refuse-eap
        require-chap
        require-mschap
        require-mschap-v2
        noauth
        noccp
        nodefaultroute
        proxyarp
        name "<user_name>"
        password "<password>"

        配置说明

        • <l2tp_name> 填写 ppp 配置的文件名,需根据前文配置内容进行填写。

        • <user_name> 填写 VPN 连接用户名。

        • <password> 填写 VPN 连接密码。

      4. 执行以下命令行,重启服务。

        sudo service xl2tpd restart
      5. 执行以下命令行,建立连接。其中,<lac_name> 需根据前文配置内容进行替换。

        sudo echo "c <lac_name>" > /var/run/xl2tpd/l2tp-control

        如需关闭连接,可执行以下命令行。

        sudo echo “d <lac_name>” > /var/run/xl2tpd/l2tp-control
      6. 执行以下命令行,添加路由。

        sudo ip route add <ip_network> dev <link_name>

        参数说明

        • 命令行中的 <ip_network> 需替换为 VPC 下的私有网络地址段。

        • 命令行中的 <link_name> 为 ppp 连接的网卡接口名字,通常以 ppp 开头,需根据实际情况进行修改。

  • iOS 客户端

    以下操作以 iOS 15 版本为例介绍如何连接 VPN,其他版本操作方法类似。

    1. 进入手机设置界面,选择通用 > VPN 与设置管理

    2. 点击 VPN > 添加 VPN 配置,进入添加配置界面。

    3. 参考以下说明,配置连接参数。

      • 类型:选择 L2TP

      • 描述:自定义 VPN 连接名称。

      • 服务器:VPN 服务器。输入 VPC 网络公网 IP。

      • 帐户:VPC L2TP 服务中创建的用户。

      • RSA SecurID:保持默认不开启即可。

      • 密码:VPC L2TP 服务中设置的用户密码。

      • 密钥:VPC L2TP 服务中设置的 PSK。

    4. 点击完成

    5. 此时 VPN 连接状态显示为 未连接。点击控制按钮,进行连接。连接成功后,显示 已连接

      ios l2tp