添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
OpenVPN With Windows as Server 和 IOS as Client

OpenVPN With Windows as Server 和 IOS as Client

OpenVPN With Windows as Server 和 IOS as Client

介绍

找了很久相关教程,但是国内的都不对,因为版本原因,差异很大,在国外找到了这篇 詹姆斯 写的教程,翻译后转给大家,用于学习。
这是詹姆斯在 palitechsociety.blogspot.com 的文章最新版本的优化和应用。Easy RSA 2已被Easy RSA 3取代,原始文章中的Windows客户端已被iOS设备取代。
场景是你正在旅行。当您离开时,您使用iOS设备(即iPhone或iPad)连接到互联网。但是,您不希望酒店或咖啡店员工能够监视您访问的网站。因此,您可以通过家用PC上的VPN服务器将iOS设备连接到互联网。你的家庭电脑运行 Windows。
这篇文章分为三个部分:

  • 家用路由器上的端口转发
  • 将您的Windows PC设置为OpenVPN服务器
  • 将您的iOS设备配置为OpenVPN客户端

路由器
您可以更改OpenVPN使用的端口,但在这篇文章中,我们将使用默认值,即UDP端口1194。您需要在家用路由器上执行一些操作:

  • 在 UDP 端口 1194 上打开路由器防火墙
  • 将路由器配置为将 UDP 端口 1194 从外部世界(通常称为广域网或 WAN)转发到局域网或 LAN 上的 PC

要确定您的计算机在 LAN 上的地址,请打开 Windows 命令提示符并发出命令 。您的 LAN 地址将位于 10.0.0.0 到 10.255.255.255、172.16.0.0 到 172.31.255.255 或 192.168.0.0 到 192.168.255.255 的范围内。 ipconfig
打开防火墙和配置端口转发的过程因路由器而异,因此此处无法提供详细说明。请参阅有关路由器特定品牌和型号的文档。
Windows as OpenVPN Server
步骤 1: Windows 电源计划
您不希望计算机在尝试从外部世界连接时处于睡眠状态。因此,请配置其电源计划以防止PC进入睡眠状态。
右键单击“Windows 开始”按钮 ,然后选择 “设置” 应用。在“ 系统 ”部分下,选择“ 电源和睡眠 ”。您可以设置选项,使屏幕在几分钟后关闭,但要将计算机配置为 永不 进入睡眠状态。


步骤 2:动态 DNS 服务
您家里可能没有静态 IP 地址。在此步骤中,您将订阅动态 DNS 服务。这将为您的Windows计算机提供一个固定的DNS主机名,即使其IP地址不时更改也是如此。

  1. 打开浏览器并访问 https://www.noip.com
  2. 注册一个帐户。输入您的电子邮件、无 IP 密码以及您选择的 DNS 主机名。DNS 主机名的一个示例是 。选择 免费注册 alice5656.hopto.org
  3. 检查您的电子邮件,然后单击帐户确认电子邮件中的链接。
  4. 如果您尚未登录,请再次登录 No-IP。
  5. 单击“ 我的帐户 ”。添加用户名和安全问题以完成帐户配置。
  6. 转到 Dyanamic DNS, 然后 转到动态更新客户端 。下载无 IP 的动态更新客户端 (DUC)。将其安装在PC上,选中复选框以启动DUC并在后台将DUC作为系统服务运行。
  7. 启动 DUC 后,使用为无 IP 站点选择的用户名和密码登录。
  8. 选择您的主机名,然后单击 保存
  9. 关闭 DUC 窗口。DUC 继续在系统托盘中运行,系统托盘是 Windows 桌面右下角的区域。

步骤 3:具有高级安全性的 Windows Defender 防火墙
在此示例中,我们使用的是 UDP 端口 1194。您已经在路由器中打开了该端口,并将其转发到PC。现在在PC上打开该端口。

  1. 在“窗口搜索”框中,键入 firewall
  2. 选择 Windows Defender Firewall with Advanced Security
  3. 在左窗格中,单击“ 入站规则”
  4. 在右窗格中,单击“ 新建规则”
  5. 选择“ 端口 ”类型,然后单击“ 下一步”
  6. 选择 类型 UDP 和特定本地端口的选项,然后单击 下一步 1194
  7. 选择操作 “允许连接” ,然后单击“ 下一步”
  8. 选中所有三个网络位置,然后单击 下一步
  9. 键入名称,然后单击“ 完成” OpenVPN Inbound
  10. 关闭 Windows Defender Firewall with Advanced Security


步骤4:安装OpenVPN
打开浏览器,然后转到 openvpn.net/community-d 的OpenVPN社区下载页面。

  1. 下载适用于 Windows 10 的安装程序。它有一个名称,
  2. 例如 。 OpenVPN-2.5.4-I604-amd64.msi
  3. 下载完成后,运行安装程序。
  4. 当您看到“ 立即安装”和“自定义” 之间的选项时,请单击“ 自定义 ”。

自定义要安装的组件:

  • 取消选择 OpenVPN GUI
  • 选择OpenVPN服务
  • 选择 OpenSSL 实用程序
  • 选择 EasyRSA3 证书管理脚本

使用这些选项进行安装。


步骤 5:公钥基础结构
EasyRSA 脚本安装在 中。 C:\Program Files\OpenVPN\easy-rsa
要使用EasyTLS以及EasyRSA,请从 github.com/TinCanTech/e 下载。 easytlseasytls-openssl.cnf
将下载的 EasyTLS 文件复制并粘贴到 .这需要管理员权限。 C:\Program Files\OpenVPN\easy-rsa
在 Windows 搜索框中,键入 。右键单击“ 命令提示符”

然后选择“ 以管理员身份运行 ”。 cmd
在以 管理员身份运行的 命令提示符窗口中,输入命令:

cd C:\Program Files\OpenVPN\easy-rsa  
EasyRSA-Start.bat


这将调用符合 POSIX 的 EasyRSA Shell。您将看到一个命令提示符。 #


通过输入以下命令初始化文件夹: C:/Program Files/OpenVPN/easy-rsa/pki

./easyrsa init-pki


通过输入以下命令来构建证书颁发机构:

./easyrsa build-ca nopass


该脚本为您的 CA 生成私钥。当系统要求您输入证书的公用名时,只需按 Enter 即可 接受默认值 。输出如下所示: Easy-RSA CA

您将被要求输入将被合并的信息
进入您的证书申请。
您将要输入的是称为可分辨名称或DN的名称。
有很多字段,但可以保留一些空白
对于某些字段,将有一个默认值,
如果输入 '.'该字段将留空.
-----
Common Name (eg:您的用户、主机或服务器名称) [Easy-RSA CA]:
CA创建完成,您现在可以导入和签署证书请求。
您要发布的新CA证书文件位于:
C:/Program Files/OpenVPN/easy-rsa/pki/ca.crt


生成服务器证书的签名请求。我们将服务器命名为: alicewin

./easyrsa gen-req alicewin


出现提示时,输入并确认密码。对于公用名,您可以接受 的默认建议。 alicewin
将证书请求签名为类型: server

./easyrsa sign-req server alicewin


键入单词以确认详细信息。证书是在 中创建的。 yesC:/Program Files/OpenVPN/easy-rsa/pki/issued/alicewin.crt
为客户端证书生成签名请求。我们将为客户命名: aliceios

./easyrsa gen-req aliceios


出现提示时,输入并确认密码。对于公用名,您可以接受 的默认建议。 aliceios
将请求签名为类型: client

./easyrsa sign-req client aliceios


键入单词以确认详细信息。证书是在 中创建的。 yesC:/Program Files/OpenVPN/easy-rsa/pki/issued/aliceios.crt
生成 Diffie-Hellman 参数:

./easyrsa gen-dh


这可能需要很长时间。结果最终以 . C:/Program Files/OpenVPN/easy-rsa/pki/dh.pem
初始化简易 TLS:

./easytls init-tls


该脚本将在 中为您创建一个新目录。 C:/Program Files/OpenVPN/easy-rsa/pki/easytls
创建 TLS 加密密钥:

./easytls build-tls-crypt


该脚本将在 中创建 TLS 加密版本 1 密钥。 C:/Program Files/OpenVPN/easy-rsa/pki/easytls/tls-crypt.key
退出 EasyRSA shell:

exit




从服务器的私钥中删除密码,否则服务将无法启动。

openssl rsa -in pki\private\alicewin.key -out pki\private\alicewinnopass.key
copy pki\private\alicewinnopass.key pki\private\alicewin.key /y


关闭命令提示符窗口。
步骤 6:服务器配置文件
打开 Windows 记事本。使用以下内容作为配置文件的模型。

将模板中的所有值替换为环境中应用的实际值:

dev tun
proto udp
port 1194
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\issued\\alicewin.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\private\\alicewin.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\dh.pem"
tls-crypt "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\easytls\\tls-crypt.key"
cipher AES-256-GCM
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 1.1.1.1"
push "block-outside-dns"
keepalive 10 60
persist-key
persist-tun
explicit-exit-notify 1
verb 3


将文件另存为 。 alicewin.ovpn
将文件复制并粘贴到 中。这需要管理员权限。 C:\Program Files\OpenVPN\config-auto


步骤 7:启用转发
打开 Windows 控制面板应用。
转到 “网络和互联网 ”部分,然后单击“ 网络和共享中心 ”。单击 链接更改适配器设置
您将看到安装已创建新的网络适配器。它将有一个名为 OpenVPN TAP-Windows6 。它被描述为 TAP-Windows Adapter V9


在 Windows 搜索框中,键入 。右键单击“ 命令提示符” ,然后选择“ 以管理员身份运行 ”。 cmd
在以 管理员身份运行的 命令提示符窗口中,输入以下命令:

netsh int ipv4 show int


结果如下所示:


记下OpenVPN TAP-Windows6的索引号。例如,它可能是 接口索引 。(您的计算机上的号码不一定相同。 11
查看是否启用了转发:

netsh int ipv4 show int 11 | findstr "Forwarding"


如果禁用了“转发”,则通过发出以下命令来启用“转发”:

netsh int ipv4 set int 11 Forwarding="enabled"


仔细检查结果是否显示已启用“转发”:

netsh int ipv4 show int 11 | findstr "Forwarding"


关闭命令提示符窗口。
步骤 8:启用路由
在 Windows 搜索框中,键入 ,右键单击 “注册表编辑器 ”,然后选择“ 以管理员身份运行 ”。 regedit
展开左窗格中的树。导航到 > > > > > 。 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
查找类型的键。 IPEnableRouterREG_DWORD
将其值设置为 。单击“ 确定”。 1
关闭注册表编辑器。


步骤 9:启动服务
在 Windows 搜索框中,键入 ,右键单击“ 服务 ”应用,然后选择“ 以管理员身份运行 ”。 services
查找 的行。 Routing and Remote Access

  1. 右键单击它,然后选择 “属性”
  2. “启动类型” 设置为 “自动”
  3. 点击 应用
  4. 单击“ 开始”
  5. 单击“ 确定”

查找 的行。 OpenVPN Interactive service

  1. 右键单击它,然后选择 “属性”
  2. 单击 “停止”
  3. 将其 启动类型 更改为 手动
  4. 点击 应用
  5. 单击“ 确定”

查找 的行。确保它是 “正在运行” 并且“启动类型”为“自动 ”。单击按钮以 重新启动 服务。 OpenVPNService


关闭“服务”应用。
打开文件资源管理器并导航到 。检查文件中是否有消息。它应该看起来像这样,以 结尾。 C:\Program Files\OpenVPN\logalicewin.logInitialization Sequence Completed

WARNING: --topology net30 support for server configs with IPv4 pools will be removed in a future release. Please migrate to --topology subnet as soon as possible.
OpenVPN 2.5.4 Windows-MSVC [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Oct 20 2021
Windows version 10.0 (Windows 10 or greater) 64bit
library versions: OpenSSL 1.1.1l  24 Aug 2021, LZO 2.10
Diffie-Hellman initialized with 2048 bit key
Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
interactive service msg_channel=0
open_tun
tap-windows6 device [OpenVPN TAP-Windows6] opened
TAP-Windows Driver Version 9.24 
Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.1/255.255.255.252 on interface {41C25560-522A-4053-B50A-9916AE58E987} [DHCP-serv: 10.8.0.2, lease-time: 31536000]
Sleeping for 10 seconds...
Successful ARP Flush on interface [6] {41C25560-522A-4053-B50A-9916AE58E987}
IPv4 MTU set to 1500 on interface 6 using SetIpInterfaceEntry()
C:\Windows\system32\route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.2
ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=25 and dwForwardType=4
Route addition via IPAPI succeeded [adaptive]
Could not determine IPv4/IPv6 protocol. Using AF_INET6
Socket Buffers: R=[65536->65536] S=[65536->65536]
setsockopt(IPV6_V6ONLY=0)