OpenV**手动指定路由规则

OpenV**手动指定路由规则

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

文章介绍了如何手动配置OpenVPN路由规则,解决默认将所有流量指向VPN网关导致本地网络和国内网站访问不便的问题。通过添加`route-nopull`取消远端路由,再指定IP、网段或域名走VPN网关,并提及`max-routes`参数和macOS使用CLI的注意事项。

🔎

延伸解读

route-nopull 的作用与风险

route-nopull 会取消从服务端拉取的所有路由,包括默认路由和特定网段路由。这意味着客户端将不再自动获得访问内网所需的路由,必须手动添加所有需要的路由。如果遗漏某些网段,可能导致无法访问内网资源。因此,使用 route-nopull 时需仔细规划需要走 VPN 的网段,并确保配置完整。

域名路由的注意事项

通过域名配置路由时,需要启用 allow-pull-fqdn,允许客户端从服务端拉取 DNS 名称。但域名路由依赖于 DNS 解析,如果 DNS 解析失败或域名对应的 IP 变化,可能导致路由失效。此外,域名路由可能不如 IP 路由稳定,建议在关键场景下优先使用 IP 或网段路由。

macOS 使用 CLI 的注意事项

在 macOS 上,建议使用 CLI 版本而非 GUI,因为 GUI 可能无法正确应用某些配置。使用 CLI 时,需要安装 openv** 并通过 sudo 运行,同时可能需要设置 --script-security 2 以允许某些脚本执行。此外,CLI 方式需要手动管理配置文件路径,并注意权限问题。

Q&A

OpenVPN默认将所有流量指向VPN网关会带来什么问题?

默认情况下,OpenVPN会临时修改本地路由表,将所有流量都指向v**_gateway,导致本地规则被覆盖,甚至无法打开部分国内网站,带来不便。

如何配置OpenVPN只让指定网段走VPN网关?

在配置文件中添加route-nopull取消pull路由,然后使用route命令指定网段,例如:route 10.0.0.0 255.255.255.0 v**_gateway。如果路由数量超过100条,需要设置max-routes 1000。

OpenVPN中如何通过域名指定路由?

在配置文件中添加route-nopull和allow-pull-fqdn,然后使用route命令指定域名,例如:route www.iots.vip 255.255.255.255 v**_gateway。

OpenVPN中route-nopull和allow-pull-fqdn分别有什么作用?

route-nopull用于取消从服务端pull路由规则,改为手动配置;allow-pull-fqdn允许客户端从服务端pull DNS记录,以便在route命令中使用域名/FQDN。

OpenVPN中IP/网段路由和域名路由可以同时使用吗?

可以,IP/网段路由与域名/FQDN路由不冲突,可以共存。

在macOS上使用OpenVPN手动配置路由时有什么注意事项?

建议使用CLI版本,通过brew install openv**安装,连接时需要使用sudo,例如:sudo openv** --config config.ov** --script-security 2。

🏷️

标签

➡️

继续阅读