OpenWRT + OpenVPN 客户端从 LAN 转发到 VPN 不起作用

OpenWRT + OpenVPN 客户端从 LAN 转发到 VPN 不起作用

我有带 Backfire 10.03.1-rc3(arch:brcm 2.6 内核)的 OpenWRT 路由器

我已经设置了一个 OpenVPN 客户端,将我的路由器与工作场所局域网连接起来,并且它运行良好,我可以从路由器连接到工作场所的网络(几个)。

我的 OpenVPN 客户端 uci-config 如下所示:

config 'openvpn' 'stream_client'
    option 'nobind' '1'
    option 'float' '1'
    option 'client' '1'
    option 'reneg_sec' '0'
    option 'management' '127.0.0.1 31194'
    option 'explicit_exit_notify' '1'
    option 'verb' '3'
    option 'persist_tun' '1'
    option 'persist_key' '1'
    list 'remote' 'remote.address.cutted'
    option 'ca' '/lib/uci/upload/cbid.openvpn.stream_client.ca'
    option 'key' '/lib/uci/upload/cbid.openvpn.stream_client.key'
    option 'cert' '/lib/uci/upload/cbid.openvpn.stream_client.cert'
    option 'enable' '1'
    option 'dev' 'tun1'

我已将“STREAM_VPN”区域设置为允许进/出流量,并添加了区域到区域 lan<->vpn 和 vpn<->lan 的规则

config 'zone'
    option 'name' 'stream_vpn'
    option 'network' 'stream_vpn'
    option 'input' 'ACCEPT'
    option 'output' 'ACCEPT'
    option 'forward' 'REJECT'

config 'forwarding'
    option 'src' 'lan'
    option 'dest' 'stream_vpn'

config 'forwarding'
    option 'src' 'stream_vpn'
    option 'dest' 'lan'

以及接口配置:

config 'interface' 'stream_vpn'
    option 'proto' 'none'
    option 'ifname' 'tun1'
    option 'defaultroute' '0'
    option 'peerdns' '0'

现在,从我的路由器一切运行正常,问题是我无法从局域网内的计算机连接到由 vpn 连接提供的网络中的主机 :/

我错过了什么或者我做错了什么?

并且如何在连接到 VPN 时强制使用指定的 DNS?(我知道服务器应该使用 PUSH DNS 选项,但 PUSH 只是路由)

答案1

您很可能没有设置 openvpn 客户端路由。http://openvpn.net/index.php/open-source/documentation/howto.html#scope“使用路由 VPN(dev tun)时在客户端包括多台机器”部分应该解决这个确切的情况。

答案2

添加option masq '1'config 'zone'

option 'name' 'stream_vpn'
option 'network' 'stream_vpn'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option masq '1' # IMPORTANT!!!

答案3

我不知道你的回答是否对@canni 有帮助,但它对我有帮助。

iroute必须按每个用户使用。

然后内核和 OpenVPN 都将知道路由,并且两个 LAN 中的每个主机都可以通过 VPN 进行通信。

答案4

您可以尝试多种配置设置。
但只需在服务器设置中添加以下设置即可实现神奇的效果:

client-to-client

相关内容