很多公司,尤其是跨国大公司,会要求员工连接 VPN(或者到办公室)来进入到一个 10 段的大内网。在这个内网内方能访问各种公司内部的资源,比如 GitLab、Confluence、Jira 之类的。
这种情况下就是做了私有 DNS 解析,这个解析记录并不会发布到公网上,就像你家路由器对于主机名为 home 这台设备的解析一样,只有进入了你家的网络才有。
在使用 Cloudflare Zero Trust 的情况下,我们也可以做到私有 DNS 解析,并且完全免费!使用 Cloudflare Zero Trust,零成本的创建你的工作网络环境,如此简单!
设置 DNS 服务器
既然要设置私有 DNS 解析,那么毫无疑问需要设置一个由我们掌控的 DNS 服务器。简单起见,这里我直接在路由器上设置解析。如果你使用的也是 LEDE/OpenWRT,那么在 网络 – DHCP/DNS,最下面 「自定义域名挟持」中填入你的域名和解析到的 IP 地址。当然这个 IPv4 地址也可以写到公网 IP,只不过这样有些搞笑
添加保存之后,刷新一下本地的 DNS 缓存,就应该发现已经能 ping 通了
注册 WARP
具体可以参考这篇文章《使用 Cloudflare Zero Trust 创建大内网》,简单的说就是配置 Cloudflared Tunnel、创建 WARP 设备注册权限、创建 WARP Profile、选择 Split Tunnel 的模式,然后下载 WARP 认证连接。这里 WARP 就相当于公司给你安装的 VPN 了。
再提一下 include 和 exclude 这两种 Split Tunnel 的区别:
- Include:类似于 WireGuard 的
allowIP=192.168.7.0/24
, 其他非指定网段的流量会直接从你的网络出去,不走 Cloudflare,可以理解成非全局 VPN。此时你需要去 include 的规则中添加你的192.168.7.0/24
- Exclude:所有流量都要走 Cloudflare,类似全局 VPN。此时你需要去 exclude 的规则中删除你的
192.168.7.0/24
无论你是选择 include 还是 exclude,确保连接 WARP 后,能够 ping 通内网的 IP 就可以进行下一步了。
配置 DNS fallback
在 Zero Trust 网页上,进入到 Profile 配置页面,下拉能找到 Local Domain Fallback
点击 Manage,左侧添加域名、DNS 服务器和备注。这个 DNS 服务器就是上面配置好的那个。
测试
内网测试
我现在连到了家里的网络,因此肯定能解析 samba.dmesg.app
这个域名的,此处没有任何问题
外网测试
手机开个热点,电脑连接上
连接 WARP!
私有解析完成!
总结
感谢 Cloudflare 为我们提供了这么好用的网络服务。小公司可以直接用 Cloudflare Zero Trust 组建自己的内网了,然后用 Firewall Policies 进行适当的权限控制。