我正在为我的服务器生成 OpenVPN 配置。我希望客户端能够访问我的服务器的路由器(即 192.168.1.1)以及本地网络,因此我推送了此路由:
192.168.1.1/24
然后在我的 Windows OpenVPN 客户端(官方客户端)上导入 OVPN 文件。
在我的 Windows 上,它可以正常工作。在其他 Windows 上(从我父亲的电脑),它可以连接,但我无法访问 192.168.1.1。我最终访问的是本地路由器,而不是远程路由器。
OpenVPN 论坛上有人说我不应该添加192.168.1.1/24
。为什么?那我该怎么做?
答案1
正如 @Hauke Laging 所提到的,您可以将另一个子网/IP(家用路由器较少使用)映射到192.168.1.0/24
/ 192.168.1.1
。例如:
push "route 10.0.9.0 255.255.255.0"
push "client-nat dnat 192.168.1.0 255.255.255.0 10.0.9.0"
或者
push "route 10.11.12.13"
push "client-nat dnat 192.168.1.1 255.255.255.255 10.11.12.13"
然后您就可以通过VPN 客户端上的/192.168.1.0/24
访问192.168.1.1
所连接的服务器了。10.0.9.0/24
10.11.12.13
也可以使用iptables 中的DNAT
或来完成此操作NETMAP
。假设您所说的“访问路由器”是指其 Web UI,您甚至可以直接$server_vpn_ip:80
对 进行DNAT 操作192.168.1.1:80
,前提是 前者尚未被占用。
(注意:假设服务器已经进行 IP 转发和伪装。)
答案2
他们告诉你不要使用,192.168.1.1/24
因为几乎所有家用路由器都默认使用该子网。只需将其更改为192.168.2.0/24
- 这应该可以解决你的问题。
答案3
避免在 VPN 子网中使用常用的专用网络
这既涉及分配给远程端 VPN 客户端的子网,也涉及需要使用 VPN 访问的所有网络。如果客户端直接连接到本地网络并且该网络具有重叠子网,则该网络优先。
我列出了一些你应该避免使用的子网2017 年的答案:
Techspot 有常见默认路由器 IP 地址列表这有助于解决此问题。通常家用路由器使用
/24
子网。如今,手机经常用于共享网络连接,因此我们也必须考虑这些范围。根据列表,我们可以推断出我们应该避免:
192.168.0.0/19
- 大多数路由器似乎都使用上述其中一些192.168.31.255
。10.0.0.0/24
也被广泛使用,并且Apple使用了10.0.1.0/24
。192.168.100.0/24
被摩托罗拉、中兴、华为和汤姆逊所采用。- 摩托罗拉(此外)还使用
192.168.62.0/24
和192.168.102.0/24
。192.168.123.0/24
由 LevelOne、Repotec、Sitecom 和 US Robotics 使用(不太常见)- 一些 D-Links 有
10.1.1.0/24
和10.90.90.0/24
。
OpenVPN 建议和默认设置
OpenVPN 发表了一篇文章对私有子网进行编号:
虽然这些网络块中的地址通常应该用于 VPN 配置,但选择能够最大程度降低 IP 地址或子网冲突概率的地址非常重要。需要避免的冲突类型包括:
- VPN 上使用相同 LAN 子网编号的不同站点发生冲突,或者
- 来自使用与您的 VPN 子网冲突的私有子网的站点的远程访问连接。
最好的解决方案是避免使用
10.0.0.0/24
或192.168.0.0/24
作为私有 LAN 网络地址。相反,使用在 WiFi 咖啡馆、机场或酒店中使用可能性较低的地址,因为您可能希望从这些地方进行远程连接。最佳候选者是位于巨大网络块中间的子网10.0.0.0/8
(例如10.66.77.0/24
)。
对于客户端子网,OpenVPN 默认为10.8.0.0/24
。从OpenVPN中的拓扑:
子网拓扑是当前推荐的拓扑;出于与 2.0.9 时代配置向后兼容的原因,它不是 OpenVPN 2.3 的默认拓扑。当 Windows 下没有运行 OpenVPN 2.0.9 的旧/过时客户端时,使用子网拓扑是安全的,并且是推荐的。