Windows OpenVPN的安装之桥接模式

书接上回,前面一篇文章说了如何配置 OpenVPN 为路由模式,期间查资料以及遇到的各种问题,让我从晚上 9 点搞到凌晨 4 点才完全搞定。

之所以没有一开始搞桥接模式,一方面是 OpenVPN 默认推荐的是路由模式,一方面是网上查的中文资料,一大堆文章讲桥接模式都讲得非常复杂,包括需要用命令给 Windows 系统设置路由表什么的。把我吓到了。

今天根据官方文档测试了一下桥接模式,结果10分钟就搞完了,非常简单。

根据 https://open.net/community-resources/ethernet-bridging/ 这篇文章。这是官方文档。

桥接模式的大概网络结构:


1. OpenVPN 服务器就是一台局域网内的电脑,它的网卡连接局域网,获得局域网的 IP 地址 192.168.1.123;
2. 外网的电脑作为 OpenVPN 的客户端连接到这台服务器,获得内网的 192.168.1.x 的 IP 地址;因此可以直接和内网其它也是 192.168.1.x 的电脑进行互通了。因此,内网其它电脑不再需要安装 OPenVPN 成为 OpeenVPN 的客户端。而路由模式下,如果外网的电脑要访问内网的电脑,就必须内网电脑也是 OpenVPN 的客户端才行。

再次强调一下桥接模式的网络结构:

1. 作为让外网访问的内部局域网,仅仅需要一台电脑作为 OpenVPN 的服务器,让外网的 OpenVPN 客户端连接。内网的其它电脑不需要安装 OpenVPN;

2. 外网电脑安装 OpenVPN 的客户端,连接上内网的那台 OpenVPN 服务器后,就可以使用内网的局域网 IP 地址,访问内网任意一台电脑。

Windows 底下做桥接模式,看起来不复杂。也无需搞什么路由表之类的(Linux 底下可能需要)。

所以,以下描述的安装配置步骤,仅仅针对作为 OpenVPN 的服务器的 Windows 电脑。

大概步骤:


1. 在 Windows 里面设置网卡的桥接。
2. 修改 OpenVPN 服务器的配置文件,修改为支持桥接模式。
3. 修改客户端的配置文件,修改为桥接模式。

效果:


1. 我的内网是 192.168.1.x 段。
2. 我安装 OpenVPN 作为服务器的电脑是 192.168.1.123;
3. 所有设置好以后,我的远程电脑用 OpenVPN 客户端的模式,从外网连接 OpenVPN 服务器。然后,我的远程电脑的 OpenVPN 的虚拟网卡,拿到办公室局域网的 192.168.1.x 的 IP;
3.1. 这里必须注意,远程电脑本身可能也是在一个局域网里面,这个局域网的地址不能是 192.168.1.x 避免冲突。我没测试如果是,会怎样。
4. 现在我的远程电脑可以 ping 通办公室里面其它的地址为 192.168.1.x 的电脑,并且远程桌面也能访问到。
5. 总结:这种模式下,办公室局域网只需要一台电脑安装 OpenVPN 作为服务器使用。其它电脑都不需要安装 OpenVPN 作为 VPN 客户端获得 10.8.0.x 的 IP 地址,通过 10.8.0.x 网段来互联了。仅仅是远程需要接入办公室的电脑需要安装 OpenVPN 作为 VPN 客户端接入。

服务器端的具体操作:


A. Windows 的设置


1. 服务器本身的 IP 是 192.168.1.123,这个 IP 也是出口 NAT 路由器映射的 OpenVPN 的地址。
2. 打开【控制面板】-- 【网络和 Internet】-- 【网络连接】,这里面可以看到很多网卡,包括这台电脑本身连上局域网的网卡,也包括 OpenVPN 安装带来的虚拟网卡。
3. OpenVPN 带来的虚拟网卡在这里有 3 个。选择带【Tap】字样的那个。修改它的名字 -- 在 Windows 11 上,鼠标右键点它,下拉菜单里面有【重命名】,但点了没有反应。但选中一个网卡后,顶上工具栏会显示一排菜单,其中一个是【重命名此连接】,点了这个,有用。这里带 Tap 名字的那个网卡名字比较长而且里面有中文。把它重新命令为 tap-bridge; 不是一定要这个名字,用其它名字也可以,主要是方便配置文件里面使用这个名字。
4. 鼠标同时选中这个 Tap 网卡,以及这台电脑用于局域网连接的网卡,鼠标右键,下拉菜单里面有【桥接】,选择,这样,在这个【网络连接】窗口里面,多了一个网卡图标,名字叫【网桥】。
5. 现在,这个网桥就是这台电脑联网的网卡。鼠标右键点击它,下拉菜单选择【属性】,进去修改它的 IP 地址为固定 IP,这里设置为 192.168.1.123;如果这里不设置,从外网访问过来,出口 NAT 路由器转发不到这里。远程电脑就连接不到这个服务器了。
6. 到此,这个【网桥】的属性里面,可以看到它包含了 OpenVPN 的那个 Tap 的虚拟网卡,以及这台电脑用于联网的物理网卡。如果没有,也可以再次添加。

B. OpenVPN 的设置:

用文本编辑器打开服务器端的配置文件 server.o,做以下修改:
1. dev tap 和 dev tun 两行,之前是注释掉 dev tap 打开 dev tun,现在反过来,打开 dev tap 注释掉 dev tun 使得 OpenVPN Server 工作在桥接模式下。 
2. 找到 dev-node 那一行,打开注释。写成:dev-node open-tap-bridge -- 这里,后面的那个 open-tap-bridge 就是之前在 Windows 底下修改的那个 Tap 网卡的名字。前面我提到修改为 tap-bridge,为了验证这个名字可以随便写,我就把那个网卡的名字改为了 open-tap-bridge,然后写在配置文件的这个位置,测试通过 。
3. 之前设置为路由模式的时候,配置里面有 server 10.8.0.0 255.255.255.0 这个是给路由模式设置虚拟网卡的 IP 地址范围,现在不需要了,注释掉。凡是和 10.8.0.x 的东西都注释掉。
4. 找到 Server-Bridge 行,没有就自己添加:server-bridge 192.168.1.123 255.255.255.0 192.168.1.12 192.168.1.25 -- 这行的意思是这个服务器在 192.168.1.123 上面,它分配 192.168.1.12 - 1.25 之间的 IP 地址给客户端(这个是让 OpenVPN 服务器给客户端分配 IP 地址的情况。也可以采用让内网的 DHCP 服务器给 OpenVPN 客户端分配 IP 地址的方法);总之,这时候 OpenVPN 客户端连接服务器以后,拿到的就是内部局域网的 IP 地址了。

到这里,OpenVPN 服务器端配置文件修改完成。可以右键点击电脑右下角的 OpenVPN 图标,选择【连接】菜单,启动服务器了。

客户端的配置修改:

在外面需要远程访问办公室局域网的电脑,才需要安装 OpenVPN 客户端!


前提:我的客户端电脑在另外一个局域网,IP 地址是 192.168.6.x 而非办公室局域网的 192.168.1.x
用文本编辑器打开客户端的 client.o ,这里只修改一行:之前采用路由模式时,客户端配置文件里面注释掉了 dev tap,打开了 dev tun,现在改为打开 dev tap 注释掉 dev tun,完成。
客户端电脑不需要对 Windows 进行任何网卡或者路由表的修改设置。


至此,在客户端右键点击 OpenVPN 的图标,下拉菜单选择【重新连接】,连接服务器成功。

打开客户端电脑的命令行窗口,执行 ipconfig 命令,可以看到客户端电脑获得了 192.168.1.x 的地址。当然,这台电脑本身的局域网 IP 地址 192.168.6.x 仍然存在。因此在 ipconfig 命令的执行结果里面,可以同时看到 192.168.1.x 和 192.168.6.x 两个 IP 地址(分别绑定在两个网卡上,一个是我这台电脑的 WIFI 无线网卡,一个是 OpenVPN 的虚拟网卡)


在客户端电脑打开远程桌面,输入办公室某台电脑的 192.168.1.x 的 IP 地址,远程桌面连接成功!

结论:


看起来,做桥接模式,比做路由模式的设置,还要简单。之前网上一大堆资料把事情说得太复杂。还是看官方文档来得简单实在。
那为啥官方默认推荐的还是路由模式?原因之一,桥接模式需要发送更多的数据,网络效率更低。

你可能感兴趣的:(桥接模式)