【问题标题】:VPN server and client (possibly) on the same machineVPN 服务器和客户端(可能)在同一台机器上
【发布时间】:2017-06-01 10:27:20
【问题描述】:
我想要实现的是:
我正在尝试使用运行 dd-wrt (netgear D6200) 的路由器和/或树莓派来实现这一目标。
有人可以告诉我这是否可以实现,如果可以,请指导我找到可能的解决方案?
(我不是在找教程,只是一个方向)
谢谢!
【问题讨论】:
标签:
vpn
raspberry-pi3
dd-wrt
【解决方案1】:
这个帖子可能不属于这里。
考虑使用OpenWRT 而不是dd-wrt。 OpenWRT 为您提供了一个可用的构建系统,并且更易于定制和构建。我不是在提倡OpenWRT。这可以是一个权宜之计。
您可以使用标准设置 OpenVPN 服务器和 OpenVPN 客户端
OpenWRT Wiki 和 OpenVPN 站点上提供的文档。
将以下指令 redirect-gateway def1 添加到 OpenVPN server.conf。这会将默认网关推送到连接到 OpenVPN 服务器的客户端。此外,请确保您为 VPN 客户端使用唯一的网络 IP 池,并且不会与删除 VPN 服务器发生冲突。
确保在转发以删除 VPN 服务器之前伪装 VPN 流量(本地 VPN 服务器的客户端)。这可能很棘手,因为该接口在启动时不存在。需要使用up和down脚本配置
确保您允许在防火墙规则中转发 VPN 接口上的流量(本地 VPN 服务器的客户端)
在设置 OpenVPN 服务器之前,请确保
- 删除 VPN 服务器正在将默认网关推送到您的 VPN
客户
您已正确设置防火墙
您可以通过远程 VPN 服务器访问云。与www.whatismyip.com 等网站核对会有所帮助
【解决方案2】:
是的,这可以通过 Netgear 上的 dd-wrt 实现。
不需要 Raspberry(除非您打算在其上运行远程 VPN 服务器)。
在 dd-wrt 上配置和运行 VPN 服务器 - 并通过连接客户端尝试连接。 tun/tap 都应该正常工作(运行 VPN 客户端)。我用 tun 测试过。
在 dd-wrt 上配置并运行 VPN 客户端并尝试连接到您的 VPN 服务器。默认情况下,路由器应该开始通过 VPN 服务器引导所有流量(针对它自己的 LAN 客户端)。
到目前为止,一切都很好。
当您希望 dd-wrt 的 VPN 客户端(而不仅仅是 LAN 客户端)采用相同的路由时,问题就出现了。使用 dd-wrt 上运行的 VPN 客户端,dd-wrt 自己的 VPN 客户端将无法连接到 dd-wrt 上运行的 VPN 服务器。要使其工作,请参见下文。
- 这只能通过 PBR 实现 - 即您在 dd-wrt 上运行 VPN 客户端,但将路由器本身从该客户端上取下,并仅通过在 dd-wrt 上运行的该 VPN 客户端路由特定客户端。
通过使用子网掩码进行一些调整,可以将所有 LAN 和 VPN IP 包含在 PBR 策略中,以便所有内容(路由器本身除外)都通过远程 VPN 服务器路由。
关键是在 PBR 中包含 dd-wrt 的 VPN 客户端的虚拟 IP。在 dd-wrt 上配置 VPN 服务器时,有一个字段用于指定客户端的网络和网络掩码。
如果您在客户端进程的 PBR 策略中使用此网络 IP 和网络掩码,您的(dd-wrt 的)VPN 客户端将能够连接到在 dd-wrt 上运行的 VPN 服务器,并依次通过远程 VPN 服务器路由到该服务器。 dd-wrt 作为客户端连接。