如何配置openwrt openvpn网桥

如何配置openwrt openvpn网桥

我正在尝试使用我的 openwrt 路由器连接到我的家庭网络,我可以连接到 vpn 服务器,但我需要转发或桥接 vpn,以便通过路由器的所有内容(通过有线交换机或 wifi)然后通过 vpn 路由。更简单的是客户端 ---> 路由器(vpn 客户端)---> vpn 服务器。

我是否可以使用它访问家庭网络上的资源并不重要,因为它通过我的家庭网络进行隧道传输,所以我似乎在使用我的家庭 IP 地址。我也不确定是否使用 tap 或 tun。任何帮助都将不胜感激。

顺便说一下,我使用所有命令行,因为我有一个 4mb 闪存路由器,所以我必须构建一个没有 GUI 的自定义图像,这样我才能适合 openvpn。

我设置了一些防火墙规则来尝试转发流量,但我认为我可能需要的可能是一座桥,因为我目前正在使用 Tap。我的 openvpn 配置文件中也有 redirect-gateway-def1。我想我问的是如何为我的目的创建一座桥。我当前的 etc/config/firewall 文件包含与 vpn 相关的这些行。

config zone
option name 'VPN_client1'
option masq '1'
option input 'ACCEPT'
option forward 'REJECT'
option output 'ACCEPT'
list network 'VPN_client1'

config forwarding
option dest 'lan'
option src 'VPN_client1'

config forwarding
option dest 'VPN_client1'
option src 'lan'

从连接到路由器的计算机可以 ping 通路由器,就是这样。顺便说一句,这个问题是由 serverfault 发起的,所以我在这里发布它。

顺便说一下,我的 openvpn 服务器正在使用 tun 在我家路由器上的 ddwrt 上运行。

答案1

所以,据我了解,您已经有一个启动并正在运行的 OpenVPN 服务器。

至于 和tuntap服务器和客户端都需要使用相同的配置。如果不需要以太网桥接,请使用tun,因为它引入的开销较少。

首先,我们将更新您的网络配置以包含 VPN 接口:

config interface 'vpn'
        option ifname 'tun0'
        option proto 'none'

这是将 VPN 连接集成到 OpenWrt 网络系统所必需的。当然,如果你使用tap,则必须将接口更改为tap0

接下来,可选择从中删除以下几行/etc/config/firewall

config forwarding
        option src              lan
        option dest             wan

这可确保没有 LAN 流量通过常规互联网上行链路离开路由器。当然,这不是必需的。

在同一个文件中,添加一个新的区域并配置转发:

config zone
        option name             vpn
        list   network          'vpn'
        option input            REJECT
        option output           ACCEPT
        option forward          REJECT
        option masq             1

config forwarding
        option src              lan
        option dest             vpn

使用MASQUERADEtun可使此配置变得简单,因为 VPN 服务器不需要了解路由器客户端,我们也不需要桥接,从而减少了开销。该forwarding部分允许 LAN 流量通过 VPN 连接进行路由。

接下来是您的 VPN 配置。有一些事情需要注意。

由于我们明确指定了期望 VPN 连接使用的接口,因此我们必须在 VPN 配置中执行相同的操作:

dev tun0

看起来你已经有了,但对于其他人来说,我们需要再次通过 VPN 连接重定向流量。OpenVPN 已经为此提供了一个很好的选择:

redirect-gateway def1

此选项还可确保您的 VPN 服务器仍然可以访问。

如果您的 OpenVPN 配置包含以下行,请将其删除:

persist-tun

完成这些更改后,重新启动路由器。请记住:如果您删除了该forwarding部分,您现在将无法访问互联网。

现在,启动 OpenVPN:

/etc/init.d/openvpn start

如果现在一切正常,您可以永久启用 OpenVPN:

/etc/init.d/openvpn enable

但请记住:OpenVPN 依靠日期和时间是否正确来检查证书是否有效。您的路由器可能没有实时时钟,这意味着它每次都从 1970 年 1 月 1 日开始。然后它依靠互联网 NTP 服务器来获取当前日期和时间。这意味着 OpenVPN 不会在完成此操作之前连接,因为您的证书在 1970 年 1 月 1 日无效。

相关内容