2016-09-10 00:45:39 +03:00
# 配置 IPsec/L2TP VPN 客户端
2016-05-10 22:52:02 +03:00
2016-06-25 01:54:24 +03:00
*其他语言版本: [English ](clients.md ), [简体中文 ](clients-zh.md ).*
2016-05-10 22:52:02 +03:00
2016-09-10 00:45:39 +03:00
*注: 你也可以使用 [IPsec/XAuth 模式 ](clients-xauth-zh.md ) 连接,或者配置 [IKEv2 ](ikev2-howto-zh.md )。*
2016-05-10 22:52:02 +03:00
2016-06-29 22:35:28 +03:00
在成功< a href = "https://github.com/hwdsl2/setup-ipsec-vpn" target = "_blank" > 搭建自己的 VPN 服务器< / a > 之后, 你可以按照下面的步骤来配置你的设备。IPsec/L2TP 在 Android, iOS, OS X 和 Windows 上均受支持,无需安装额外的软件。设置过程通常只需要几分钟。如果无法连接,请首先检查是否输入了正确的 VPN 登录凭证。
2016-05-10 22:52:02 +03:00
2016-09-10 00:45:39 +03:00
另一个带图片的< a href = "https://usefulpcguide.com/17318/create-your-own-vpn/" target = "_blank" > 安装指南< / a > 可供参考,它由 Tony Tran 编写。
2016-07-16 17:25:01 +03:00
2016-05-10 22:52:02 +03:00
---
* 平台名称
* [Windows ](#windows )
2016-07-20 21:47:21 +03:00
* [OS X (macOS) ](#os-x )
2016-05-10 22:52:02 +03:00
* [Android ](#android )
2016-07-20 21:47:21 +03:00
* [iOS (iPhone/iPad) ](#ios )
2016-05-10 22:52:02 +03:00
* [Chromebook ](#chromebook )
2016-09-10 00:45:39 +03:00
* [Windows Phone ](#windows-phone )
2016-07-20 21:47:21 +03:00
* [Linux ](#linux )
2016-09-30 19:53:33 +03:00
* [故障排除 ](#故障排除 )
* [Windows 错误 809 ](#windows-错误-809 )
* [Windows 错误 628 ](#windows-错误-628 )
* [Android 6.0 and 7.0 ](#android-60-and-70 )
* [其它错误 ](#其它错误 )
2016-05-10 22:52:02 +03:00
2016-09-10 00:45:39 +03:00
## Windows
2016-05-31 23:40:22 +03:00
2016-09-10 00:45:39 +03:00
### Windows 10 and 8.x
2016-05-31 23:40:22 +03:00
1. 右键单击系统托盘中的无线/网络图标。
1. 选择 **打开网络与共享中心** 。
1. 单击 **设置新的连接或网络** 。
1. 选择 **连接到工作区** ,然后单击 **下一步** 。
1. 单击 **使用我的Internet连接 (VPN)** 。
1. 在 **Internet地址** 字段中输入`你的 VPN 服务器 IP`。
1. 在 **目标名称** 字段中输入任意内容。单击 **创建** 。
2016-07-20 21:47:21 +03:00
1. 返回 **网络与共享中心** 。单击左侧的 **更改适配器设置** 。
1. 右键单击新创建的 VPN 连接,并选择 **属性** 。
2016-05-31 23:40:22 +03:00
1. 单击 **安全** 选项卡,从 **VPN 类型** 下拉菜单中选择 "使用 IPsec 的第 2 层隧道协议 (L2TP/IPSec)"。
2016-09-30 19:53:33 +03:00
1. 单击 **允许使用这些协议** 。确保选中 "质询握手身份验证协议 (CHAP)" 复选框。
2016-05-31 23:40:22 +03:00
1. 单击 **高级设置** 按钮。
1. 单击 **使用预共享密钥作身份验证** 并在 **密钥** 字段中输入`你的 VPN IPsec PSK`。
1. 单击 **确定** 关闭 **高级设置** 。
1. 单击 **确定** 保存 VPN 连接的详细信息。
2016-09-10 00:45:39 +03:00
### Windows 7, Vista and XP
2016-05-31 23:40:22 +03:00
2016-05-11 08:26:25 +03:00
1. 单击开始菜单,选择控制面板。
1. 进入 **网络和Internet** 部分。
2016-05-10 22:52:02 +03:00
1. 单击 **网络与共享中心** 。
1. 单击 **设置新的连接或网络** 。
2016-05-31 23:40:22 +03:00
1. 选择 **连接到工作区** ,然后单击 **下一步** 。
2016-05-10 22:52:02 +03:00
1. 单击 **使用我的Internet连接 (VPN)** 。
1. 在 **Internet地址** 字段中输入`你的 VPN 服务器 IP`。
1. 在 **目标名称** 字段中输入任意内容。
1. 选中 **现在不连接;仅进行设置以便稍后连接** 复选框。
1. 单击 **下一步** 。
1. 在 **用户名** 字段中输入`你的 VPN 用户名`。
1. 在 **密码** 字段中输入`你的 VPN 密码`。
1. 选中 **记住此密码** 复选框。
2016-05-31 23:40:22 +03:00
1. 单击 **创建** ,然后单击 **关闭** 按钮。
2016-07-20 21:47:21 +03:00
1. 返回 **网络与共享中心** 。单击左侧的 **更改适配器设置** 。
1. 右键单击新创建的 VPN 连接,并选择 **属性** 。
2016-08-26 09:52:55 +03:00
1. 单击 **选项** 选项卡,取消选中 **包括Windows登录域** 复选框。
2016-05-31 23:40:22 +03:00
1. 单击 **安全** 选项卡,从 **VPN 类型** 下拉菜单中选择 "使用 IPsec 的第 2 层隧道协议 (L2TP/IPSec)"。
2016-09-30 19:53:33 +03:00
1. 单击 **允许使用这些协议** 。确保选中 "质询握手身份验证协议 (CHAP)" 复选框。
2016-05-10 22:52:02 +03:00
1. 单击 **高级设置** 按钮。
2016-05-19 06:16:11 +03:00
1. 单击 **使用预共享密钥作身份验证** 并在 **密钥** 字段中输入`你的 VPN IPsec PSK`。
2016-05-10 22:52:02 +03:00
1. 单击 **确定** 关闭 **高级设置** 。
1. 单击 **确定** 保存 VPN 连接的详细信息。
2016-05-13 09:46:26 +03:00
2016-09-10 00:45:39 +03:00
要连接到 VPN: 单击系统托盘中的无线/网络图标,选择新的 VPN 连接,然后单击 **连接** 。如果出现提示,在登录窗口中输入 `你的 VPN 用户名` 和 `密码` ,并单击 **确定** 。最后你可以到 < a href = "https://www.ipchicken.com" target = "_blank" > 这里</ a > 检测你的 IP 地址,应该显示为`你的 VPN 服务器 IP`。
2016-05-10 22:52:02 +03:00
2016-06-26 22:51:21 +03:00
如果在连接过程中遇到错误,请参见 < a href = "#故障排除" > 故障排除< / a > 。
2016-09-10 00:45:39 +03:00
## OS X
2016-05-10 22:52:02 +03:00
1. 打开系统偏好设置并转到网络部分。
1. 在窗口左下角单击 ** +** 按钮。
1. 从 **接口** 下拉菜单选择 **VPN** 。
1. 从 **VPN类型** 下拉菜单选择 **IPSec 上的 L2TP** 。
1. 在 **服务名称** 字段中输入任意内容。
1. 单击 **创建** 。
1. 在 **服务器地址** 字段中输入`你的 VPN 服务器 IP`。
1. 在 **帐户名称** 字段中输入`你的 VPN 用户名`。
1. 单击 **鉴定设置** 按钮。
1. 在 **用户鉴定** 部分,选择 **密码** 单选按钮,然后输入`你的 VPN 密码`。
2016-05-19 06:16:11 +03:00
1. 在 **机器鉴定** 部分,选择 **共享的密钥** 单选按钮,然后输入`你的 VPN IPsec PSK`。
2016-05-10 22:52:02 +03:00
1. 单击 **好** 。
1. 选中 **在菜单栏中显示 VPN 状态** 复选框。
1. 单击 **高级** 按钮,并选中 **通过VPN连接发送所有通信** 复选框。
2016-05-13 09:46:26 +03:00
1. 单击 **TCP/IP** 选项卡,并在 **配置IPv6** 部分中选择 **仅本地链接** 。
2016-05-10 22:52:02 +03:00
1. 单击 **好** 关闭高级设置,然后单击 **应用** 保存VPN连接信息。
2016-09-10 00:45:39 +03:00
要连接到 VPN: 使用菜单栏中的图标,或者打开系统偏好设置的网络部分,选择 VPN 并单击 **连接** 。最后你可以到 < a href = "https://www.ipchicken.com" target = "_blank" > 这里</ a > 检测你的 IP 地址,应该显示为`你的 VPN 服务器 IP`。
## Android
2016-05-10 22:52:02 +03:00
1. 启动 **设置** 应用程序。
1. 在 **无线和网络** 部分单击 **更多...** 。
1. 单击 **VPN** 。
2016-05-13 09:46:26 +03:00
1. 单击 **添加VPN配置文件** 或窗口右上角的 ** +**。
2016-05-10 22:52:02 +03:00
1. 在 **名称** 字段中输入任意内容。
1. 在 **类型** 下拉菜单选择 **L2TP/IPSec PSK** 。
1. 在 **服务器地址** 字段中输入`你的 VPN 服务器 IP`。
2016-05-19 06:16:11 +03:00
1. 在 **IPSec 预共享密钥** 字段中输入`你的 VPN IPsec PSK`。
2016-05-10 22:52:02 +03:00
1. 单击 **保存** 。
1. 单击新的VPN连接。
1. 在 **用户名** 字段中输入`你的 VPN 用户名`。
1. 在 **密码** 字段中输入`你的 VPN 密码`。
1. 选中 **保存帐户信息** 复选框。
1. 单击 **连接** 。
2016-09-10 00:45:39 +03:00
VPN 连接成功后,会在通知栏显示图标。最后你可以到 < a href = "https://www.ipchicken.com" target = "_blank" > 这里< / a > 检测你的 IP 地址,应该显示为`你的 VPN 服务器 IP`。
2016-08-19 09:38:23 +03:00
2016-09-10 00:45:39 +03:00
如果在连接过程中遇到错误,请参见 < a href = "#故障排除" > 故障排除< / a > 。
2016-05-10 22:52:02 +03:00
2016-09-10 00:45:39 +03:00
## iOS
2016-05-10 22:52:02 +03:00
1. 进入设置 -> 通用 -> VPN。
1. 单击 **添加VPN配置...** 。
1. 单击 **类型** 。选择 **L2TP** 并返回。
1. 在 **描述** 字段中输入任意内容。
1. 在 **服务器** 字段中输入`你的 VPN 服务器 IP`。
1. 在 **帐户** 字段中输入`你的 VPN 用户名`。
1. 在 **密码** 字段中输入`你的 VPN 密码`。
2016-05-19 06:16:11 +03:00
1. 在 **密钥** 字段中输入`你的 VPN IPsec PSK`。
2016-05-10 22:52:02 +03:00
1. 启用 **发送所有流量** 选项。
1. 单击右上角的 **存储** 。
1. 启用 **VPN** 连接。
2016-09-10 00:45:39 +03:00
VPN 连接成功后,会在通知栏显示图标。最后你可以到 < a href = "https://www.ipchicken.com" target = "_blank" > 这里< / a > 检测你的 IP 地址,应该显示为`你的 VPN 服务器 IP`。
## Chromebook
2016-05-10 22:52:02 +03:00
1. 如果你尚未登录 Chromebook, 请先登录。
2016-05-13 09:46:26 +03:00
1. 单击状态区(其中显示你的帐户头像)。
2016-05-10 22:52:02 +03:00
1. 单击 **设置** 。
2016-05-11 08:26:25 +03:00
1. 在 **互联网连接** 部分,单击 **添加连接** 。
2016-05-10 22:52:02 +03:00
1. 单击 **添加 OpenVPN / L2TP** 。
1. 在 **服务器主机名** 字段中输入`你的 VPN 服务器 IP`。
1. 在 **服务名称** 字段中输入任意内容。
1. 在 **供应商类型** 下拉菜单选择 **L2TP/IPsec + 预共享密钥** 。
2016-05-19 06:16:11 +03:00
1. 在 **预共享密钥** 字段中输入`你的 VPN IPsec PSK`。
2016-05-10 22:52:02 +03:00
1. 在 **用户名** 字段中输入`你的 VPN 用户名`。
1. 在 **密码** 字段中输入`你的 VPN 密码`。
1. 单击 **连接** 。
2016-09-10 00:45:39 +03:00
VPN 连接成功后,网络状态图标上会出现 VPN 指示。最后你可以到 < a href = "https://www.ipchicken.com" target = "_blank" > 这里< / a > 检测你的 IP 地址,应该显示为`你的 VPN 服务器 IP`。
## Windows Phone
2016-05-11 08:26:25 +03:00
2016-09-10 00:45:39 +03:00
Windows Phone 8.1 和更新版本的用户可以尝试< a href = "http://forums.windowscentral.com/windows-phone-8-1-preview-developers/301521-tutorials-windows-phone-8-1-support-l2tp-ipsec-vpn-now.html" target = "_blank" > 这个教程< / a > 。请注意,该平台的 IPsec/L2TP 支持可能有一些问题。最后你可以到 < a href = "https://www.ipchicken.com" target = "_blank" > 这里< / a > 检测你的 IP 地址,应该显示为`你的 VPN 服务器 IP`。
2016-07-20 21:47:21 +03:00
2016-09-10 00:45:39 +03:00
## Linux
### Ubuntu & Debian
2016-07-20 21:47:21 +03:00
按照 < a href = "http://www.jasonernst.com/2016/06/21/l2tp-ipsec-vpn-on-ubuntu-16-04/" target = "_blank" > 这个教程< / a > 的步骤操作。需要更正以下项:
1. 在文件 `xl2tpd.conf` 中,删除这一行 `# your vpn server goes here` 。
1. 在文件 `options.l2tpd.client` 中,将 `require-mschap-v2` 换成 `require-chap` 。
2016-08-11 23:56:00 +03:00
1. 替换 `sudo echo "c XXX-YOUR-CONNECTION-NAME-XXX <user> <pass>" > /var/run/xl2tpd/l2tp-control` 为:
```
echo "c XXX-YOUR-CONNECTION-NAME-XXX < user > < pass > " | sudo tee /var/run/xl2tpd/l2tp-control
```
2016-07-20 21:47:21 +03:00
1. 替换最后一个命令 `sudo route add -net default gw <vpn server local ip>` 为:
2016-08-11 23:56:00 +03:00
```
sudo route add default dev ppp0
```
2016-07-20 21:47:21 +03:00
2016-08-26 09:52:55 +03:00
如果遇到错误,请检查 `ifconfig` 的输出并将上面的 `ppp0` 换成 `ppp1` ,等等。
2016-07-20 21:47:21 +03:00
2016-09-10 00:45:39 +03:00
连接成功后,检查 VPN 是否正常工作:
2016-07-20 21:47:21 +03:00
```
wget -qO- http://whatismyip.akamai.com; echo
```
以上命令应该返回 `你的 VPN 服务器 IP` 。
要停止通过 VPN 服务器发送数据:
```
sudo route del default dev ppp0
```
2016-09-10 00:45:39 +03:00
### CentOS & Fedora
2016-07-20 21:47:21 +03:00
参照上面的 Ubuntu/Debian 部分,并进行以下改动:
1. 使用 `yum` 而不是 `apt-get` 命令来安装软件包。
1. 在这些系统中,`ipsec` 命令已经被重命名为 `strongswan` 。
1. 文件 `ipsec.conf` 和 `ipsec.secrets` 应该保存在 `/etc/strongswan` 目录中。
2016-09-10 00:45:39 +03:00
### Other Linux
2016-07-20 21:47:21 +03:00
如果你的系统提供 `strongswan` 软件包,请参见上面的两个部分。
2016-06-26 22:51:21 +03:00
## 故障排除
### Windows 错误 809
> 无法建立计算机与 VPN 服务器之间的网络连接,因为远程服务器未响应。
2016-08-26 09:52:55 +03:00
要解决此错误,在首次连接之前需要< a href = "https://documentation.meraki.com/MX-Z/Client_VPN/Troubleshooting_Client_VPN#Windows_Error_809" target = "_blank" > 修改一次注册表< / a > ,以解决 VPN 服务器 和/或 客户端与 NAT (比如家用路由器)的兼容问题。请参照链接网页中的说明,或者打开< a href = "http://www.cnblogs.com/xxcanghai/p/4610054.html" target = "_blank" > 提升权限命令提示符< / a > 并运行以下命令。完成后必须重启计算机。
- 适用于 Windows Vista, 7, 8 和 10
```console
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
```
- 仅适用于 Windows XP
```console
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\IPSec /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
```
2016-06-26 22:51:21 +03:00
### Windows 错误 628
> 在连接完成前,连接被远程计算机终止。
要解决此错误,请按以下步骤操作:
1. 右键单击系统托盘中的无线/网络图标,选择 **打开网络与共享中心** 。
1. 单击左侧的 **更改适配器设置** 。右键单击新的 VPN 连接,并选择 **属性** 。
1. 单击 **安全** 选项卡,从 **VPN 类型** 下拉菜单中选择 "使用 IPsec 的第 2 层隧道协议 (L2TP/IPSec)"。
2016-09-30 19:53:33 +03:00
1. 单击 **允许使用这些协议** 。确保选中 "质询握手身份验证协议 (CHAP)" 复选框。
1. 单击 **高级设置** 按钮。
1. 单击 **使用预共享密钥作身份验证** 并在 **密钥** 字段中输入`你的 VPN IPsec PSK`。
1. 单击 **确定** 关闭 **高级设置** 。
2016-06-26 22:51:21 +03:00
1. 单击 **确定** 保存 VPN 连接的详细信息。
2016-08-11 23:56:00 +03:00
![Select CHAP in VPN connection properties ](images/vpn-properties-zh.png )
2016-06-26 22:51:21 +03:00
2016-09-10 00:45:39 +03:00
### Android 6.0 and 7.0
如果你无法使用 Android 6.0 (Marshmallow) 或者 7.0 (Nougat) 连接,请尝试以下解决方案:
1. 单击 VPN 连接旁边的设置按钮,选择 "显示高级选项" 并且滚动到底部。如果选项 "兼容模式" 存在,请启用它并重试连接。如果不存在,请看下一步。
1. (注: 最新版本的 VPN 脚本已经包含这些更改) 编辑 VPN 服务器上的 `/etc/ipsec.conf` ,并在 `ike=` 和 `phase2alg=` 两行结尾添加 `,aes256-sha2_256` 字样。然后在它们下面添加一行 `sha2-truncbug=yes` 。每行开头必须空两格。保存修改并运行 `service ipsec restart` 。(< a href = "https://libreswan.org/wiki/FAQ#Configuration_Matters" target = "_blank" > 参见</ a > )
2016-06-26 22:51:21 +03:00
### 其它错误
2016-09-19 01:22:15 +03:00
更多的故障排除信息请参见以下链接:
2016-09-30 19:53:33 +03:00
* https://documentation.meraki.com/MX-Z/Client_VPN/Troubleshooting_Client_VPN#Common_Connection_Issues
* https://blogs.technet.microsoft.com/rrasblog/2009/08/12/troubleshooting-common-vpn-related-errors/
* http://www.tp-link.com/en/faq-1029.html
2016-06-26 22:51:21 +03:00
2016-05-17 19:25:06 +03:00
## 致谢
本文档是在 < a href = "https://github.com/jlund/streisand" target = "_blank" > Streisand< / a > 项目文档基础上翻译和修改。该项目由 Joshua Lund 和其他开发者维护。
2016-05-11 08:26:25 +03:00
## 授权协议
2016-09-10 00:45:39 +03:00
注: 这个协议仅适用于本文档。
2016-05-11 08:26:25 +03:00
版权所有 (C) 2016 Lin Song
基于 < a href = "https://github.com/jlund/streisand/blob/master/playbooks/roles/l2tp-ipsec/templates/instructions.md.j2" target = "_blank" > Joshua Lund 的工作< / a > (版权所有 2014-2016)
本程序为自由软件,在自由软件联盟发布的< a href = "https://www.gnu.org/licenses/gpl.html" target = "_blank" > GNU 通用公共许可协议< / a > 的约束下,你可以对其进行再发布及修改。协议版本为第三版或(随你)更新的版本。
我们希望发布的这款程序有用, 但不保证, 甚至不保证它有经济价值和适合特定用途。详情参见GNU通用公共许可协议。