高级用法
选择 VPN 模式
使用此 Docker 映像,IPsec/L2TP 和 IPsec/XAuth(“Cisco IPsec”)模式默认启用。此外,如果在创建 Docker 容器时在命令中指定 代码登录后可见该选项,则会启用 IKEv2 模式。[链接登录后可见]代码登录后可见
高级用户可以通过在文件中设置以下变量来有选择地禁用 VPN 模式 代码登录后可见,然后重新创建 Docker 容器。
禁用 IPsec/L2TP 模式:代码登录后可见
禁用 IPsec/XAuth(“Cisco IPsec”)模式:代码登录后可见
禁用 IPsec/L2TP 和 IPsec/XAuth 模式:代码登录后可见
访问 Docker 主机上的其他容器
连接到 VPN 后,VPN 客户端通常可以访问同一 Docker 主机上其他容器中运行的服务,而无需进行额外的配置。
例如,如果 IPsec VPN 服务器容器具有 IP 代码登录后可见,并且具有 IP 的 Nginx 容器 代码登录后可见正在同一 Docker 主机上运行,则 VPN 客户端可以使用 IP 代码登录后可见访问 Nginx 容器上的服务。要找出分配给容器的 IP,请运行 代码登录后可见。
指定 VPN 服务器的公共 IP
代码登录后可见在具有多个公共 IP 地址的 Docker 主机上,高级用户可以使用文件中的变量为 VPN 服务器指定一个公共 IP 代码登录后可见,然后重新创建 Docker 容器。例如,如果 Docker 主机具有 IP 代码登录后可见和 代码登录后可见,并且您希望 VPN 服务器使用 代码登录后可见:
代码登录后可见
请注意,如果 Docker 容器中已设置 IKEv2,则此变量对 IKEv2 模式无效。在这种情况下,您可以删除 IKEv2 并使用自定义选项重新设置。请参阅[链接登录后可见]。
如果您希望 VPN 客户端在 VPN 连接处于活动状态时使用指定的公共 IP 作为其“传出 IP”,并且指定的 IP 不是 Docker 主机上的主 IP(或默认路由),则可能需要进行其他配置。在这种情况下,您可以尝试 代码登录后可见在 Docker 主机上添加 IPTables 规则。要在重启后继续保留,您可以将命令添加到 代码登录后可见。
继续上面的例子,如果 Docker 容器有内部 IP 代码登录后可见(使用 检查 代码登录后可见),Docker 的网络接口名称是 代码登录后可见(使用 检查 代码登录后可见),并且你想要的“传出 IP”是 代码登录后可见:
代码登录后可见
要检查已连接的 VPN 客户端的“传出 IP”,您可以在客户端上打开浏览器并[链接登录后可见]。
为 VPN 客户端分配静态 IP
使用 IPsec/L2TP 模式连接时,VPN 服务器(Docker 容器)代码登录后可见在 VPN 子网内具有内部 IP 代码登录后可见。客户端被分配从 代码登录后可见到 的内部 IP 代码登录后可见。要检查分配给客户端的 IP,请查看 VPN 客户端上的连接状态。
使用 IPsec/XAuth(“Cisco IPsec”)或 IKEv2 模式连接时,VPN 服务器(Docker 容器)在 VPN 子网内没有内部 IP 代码登录后可见。客户端被分配了从 代码登录后可见到 的内部 IP 代码登录后可见。
高级用户可以选择为 VPN 客户端分配静态 IP。IKEv2 模式不支持此功能。要分配静态 IP,请 代码登录后可见在 代码登录后可见文件中声明变量,然后重新创建 Docker 容器。示例:
代码登录后可见
在此示例中,我们为 IPsec/L2TP 模式分配静态 IP 代码登录后可见,代码登录后可见并为 IPsec/XAuth(“Cisco IPsec”)模式分配静态 IP 代码登录后可见。代码登录后可见、 和 的内部 IP 代码登录后可见将 代码登录后可见自动 代码登录后可见分配。代码登录后可见IPsec/XAuth 模式的内部 IP 和 IPsec/L2TP 模式的内部 IP 代码登录后可见也将自动分配。您可以使用 代码登录后可见指定自动分配的 IP,或将这些用户放在列表末尾。
您为 IPsec/L2TP 模式指定的静态 IP 必须在 到 范围内 代码登录后可见。代码登录后可见您为 IPsec/XAuth(“Cisco IPsec”)模式指定的静态 IP 必须在 到 范围 代码登录后可见内 代码登录后可见。
如果需要分配更多静态 IP,则必须缩小自动分配 IP 地址池。示例:
代码登录后可见
代码登录后可见这将允许您为 IPsec/L2TP 模式分配从到范围内的静态 IP ,并为IPsec/XAuth(“Cisco IPsec”)模式 代码登录后可见分配从到范围内的静态 IP。代码登录后可见
代码登录后可见请注意,如果您在文件中指定 代码登录后可见,并且 IKEv2 已在 Docker 容器中设置,则必须在重新创建 Docker 容器之前手动 代码登录后可见在容器内编辑并替换 代码登录后可见为与相同的值。否则,IKEv2 可能会停止工作。代码登录后可见
注意:在您的 代码登录后可见文件中,请勿在值周围放置 代码登录后可见或,或在 周围添加空格。请勿在值内使用这些特殊字符:。代码登录后可见
自定义 VPN 子网
默认情况下,IPsec/L2TP VPN 客户端将使用内部 VPN 子网 代码登录后可见,而 IPsec/XAuth(“Cisco IPsec”)和 IKEv2 VPN 客户端将使用内部 VPN 子网 代码登录后可见。有关更多详细信息,请阅读上一节。
对于大多数用例,没有必要也不建议自定义这些子网。但是,如果您的用例需要,您可以在文件中指定自定义子网 代码登录后可见,然后必须重新创建 Docker 容器。
代码登录后可见
代码登录后可见
注意:在您的 代码登录后可见文件中,请勿在值周围放置 代码登录后可见或 代码登录后可见,或在周围添加空格 代码登录后可见。
在上面的例子中,代码登录后可见是 IPsec/L2TP 模式下 VPN 服务器的内部 IP。代码登录后可见和 代码登录后可见是 VPN 客户端的自动分配 IP 地址池。
代码登录后可见请注意,如果您在文件中指定 代码登录后可见,并且 IKEv2 已在 Docker 容器中设置,则必须在重新创建 Docker 容器之前手动 代码登录后可见在容器内编辑并替换 代码登录后可见为与相同的值。否则,IKEv2 可能会停止工作。代码登录后可见
分割隧道
使用拆分隧道,VPN 客户端将仅通过 VPN 隧道发送特定目标子网的流量。其他流量将不会通过 VPN 隧道。这样,您就可以通过 VPN 安全地访问网络,而无需通过 VPN 路由所有客户端的流量。拆分隧道有一些限制,并非所有 VPN 客户端都支持。
高级用户可以选择为 IKEv2 模式启用拆分隧道。将变量添加 代码登录后可见到您的 代码登录后可见文件,然后重新创建 Docker 容器。例如,如果目标子网是 代码登录后可见:
代码登录后可见
请注意,如果 Docker 容器中已设置 IKEv2,则此变量无效。在这种情况下,您有两个选择:
选项 1:首先[链接登录后可见],然后编辑 代码登录后可见并替换 代码登录后可见为所需的子网。完成后,代码登录后可见容器并运行 代码登录后可见。
选项 2:删除 Docker 容器和 代码登录后可见卷,然后重新创建 Docker 容器。所有 VPN 配置将被永久删除。请参阅[链接登录后可见]中的“删除 IKEv2” 。
或者,Windows 用户可以通过手动添加路由来启用拆分隧道。有关更多详细信息,请参阅[链接登录后可见]。
关于主机网络模式
高级用户可以通过在命令中添加以下内容,以[链接登录后可见]运行此映像。此外,如果以非特权模式运行,您可能还需要将其替换为 Docker 主机的网络接口名称。–network=host docker run eth0
除非您的用例需要,否则不建议对此映像使用主机网络模式。在此模式下,容器的网络堆栈与 Docker 主机不隔离,VPN 客户端在使用 IPsec/L2TP 模式连接后,可能能够使用其内部 VPN IP 访问 Docker 主机上的端口或服务。请注意,当您不再使用此映像时,您需要通过run.sh 代码登录后可见手动清除对 IPTables 规则和 sysctl 设置的更改,或者重新启动服务器。
由于使用了 nftables,某些 Docker 主机操作系统(例如 Debian 10)无法在主机网络模式下运行此映像。
启用 Libreswan 日志
为了保持 Docker 镜像较小,默认情况下不启用 Libreswan (IPsec) 日志。如果您需要启用它以进行故障排除,请首先在正在运行的容器中启动 Bash 会话:
代码登录后可见
然后运行以下命令:
代码登录后可见
注意:代码登录后可见如果您在没有特权模式的情况下使用此 Docker 镜像,则出现错误是正常的。
完成后,你可以使用以下命令检查 Libreswan 日志:
代码登录后可见
要检查 xl2tpd 日志,请运行 代码登录后可见。
检查服务器状态
检查 IPsec VPN 服务器的状态:
代码登录后可见
显示当前建立的VPN连接:
代码登录后可见
从源代码构建
高级用户可以从GitHub下载并编译源代码:
代码登录后可见
或者如果不修改源代码的话使用这个:
代码登录后可见
容器内的 Bash shell
要在正在运行的容器中启动 Bash 会话:
代码登录后可见
(可选)安装 代码登录后可见编辑器:
代码登录后可见
然后在容器内运行命令。完成后,退出容器并重新启动(如果需要):
代码登录后可见
绑定挂载环境文件
作为该选项的替代 代码登录后可见,高级用户可以绑定挂载 代码登录后可见文件。此方法的优点是,更新文件后 代码登录后可见,您可以重新启动 Docker 容器以使其生效,而不是重新创建它。要使用此方法,您必须首先编辑文件 代码登录后可见并使用单引号 代码登录后可见将所有变量的值括起来。然后(重新)创建 Docker 容器(将第一个替换 代码登录后可见为您自己的 代码登录后可见文件):
代码登录后可见
部署Google BBR拥塞控制
设置 VPN 服务器后,可以通过在 Docker 主机上部署 Google BBR 拥塞控制算法来提高性能。
这通常是通过修改配置文件来完成的 代码登录后可见。但是,某些 Linux 发行版可能还需要更新 Linux 内核。
详细部署方法请参考[链接登录后可见]。完成后重启Docker容器:
代码登录后可见
卸载 VPN
要卸载 IPsec VPN,运行[链接登录后可见]:
警告: 此辅助脚本将从你的服务器中删除 IPsec VPN。所有的 VPN 配置将被永久删除,并且 Libreswan 和 xl2tpd 将被移除。此操作不可撤销!
代码登录后可见
更多信息请参见 [链接登录后可见]。