OpenVPN + OpenWrt:服务器看不到客户端网络中的设备

OpenVPN + OpenWrt:服务器看不到客户端网络中的设备

我有一个 OpenVPN 服务器。我想从那里访问客户端网络上的可用资源。客户端网络由基于 OpenWrt 的路由器管理;它充当 OpenVPN 客户端。

服务器的网络掩码为 192.168.3.0/24,OpenWrt 路由器上的本地网络为 192.168.1.0/24,因此应该不会发生冲突。

连接成功,我可以从服务器 ( ) ping 我的路由器,也可以从路由器ping 192.168.1.1向后ping 我的路由器。ping 192.168.3.1

但由于某种原因,客户端网络中的所有设备都无法从服务器上访问。

OpenVPN:服务器配置

port 1194
proto udp4
dev tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
client-config-dir ccd
route 192.168.1.0 255.255.255.0
push "route 192.168.3.0 255.255.255.0"

ccd/客户端 iroute 192.168.1.0 255.255.255.0

OpenVPN:客户端配置(/etc/config/openvpn)

package openvpn

config openvpn 'client'

        option enabled 1
        option client '1'
        option dev 'tun'
        option proto 'udp4'
        list remote 'myvpnserver 1194'
        option resolv_retry 'infinite'
        option nobind '1'
        option persist_key '1'
        option persist_tun '1'
        option user 'nobody'
        option ca '/etc/openvpn/ca.crt'
        option cert '/etc/openvpn/client.crt'
        option key '/etc/openvpn/client.key'
        option remote_cert_tls 'server'
        option cipher 'AES-256-CBC'
        option verb '3'
        option status /etc/openvpn/openvpn-status.log
        option log /var/log/openvpn.log

我在路由器上添加了相应的接口和防火墙规则(根据官方手册):

/etc/config/网络

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

/etc/config/防火墙

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

config forwarding
        option dest 'lan'
        option src 'vpn'

config forwarding
        option dest 'vpn'
        option src 'lan'

客户端日志

 TUN/TAP device tun0 opened
 TUN/TAP TX queue length set to 100
 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
 /sbin/ifconfig tun0 10.8.0.6 pointopoint 10.8.0.5 mtu 1500
 /sbin/route add -net 192.168.3.0 netmask 255.255.255.0 gw 10.8.0.5
 /sbin/route add -net 10.8.0.1 netmask 255.255.255.255 gw 10.8.0.5
 UID set to nobody
 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
 Initialization Sequence Completed

服务器日志

MULTI: Learn: 192.168.1.219 -> client/83.220.239.243:21301 # 192.168.1.219 is one of the devices connected to the client network (to the router)
MULTI: Learn: 192.168.1.1 -> client/83.220.239.243:21301 # 192.168.1.1 is the router

当我分别尝试 ping 192.168.1.219 和 192.168.1.1 时出现了这些记录。

我已在服务器和客户端上启用 IP 转发,如下所示本文建议。

我也尝试使用此命令来禁用路由器上的防火墙:/etc/init.d/firewall stop,但它也没有帮助。

tracert 192.168.1.219在服务器上做了:

1    34 ms    39 ms    34 ms  10.8.0.6
2     *        *        *     Request timed out.

10.8.0.6 是VPN网络内路由器的IP地址。

我做错了什么?任何建议都将不胜感激。

答案1

首先,ping 路由器上其他接口的 IP 可能会产生误报。许多路由器在流量流向路由器的任何接口时都有不同的规则(例如“本地”流量)。

您的 VPN 客户端上的路由信息​​似乎不正确,并且/或者您没有这些客户端的网关。您的 VPN 客户端的路由表中发生了非常奇怪的事情。例如,此路由没有任何意义:

/sbin/route 添加 -net 10.8.0.1 网络掩码 255.255.255.255 gw 1​​0.8.0.5

/32 网络掩码无效。这是一条不通向任何机器的路由。最小有效掩码为 /30(255.255.255.252)。此外,您的 VPN 客户端似乎为您的网关选择了错误的 IP;您说路由器的 IP 是 10.8.0.6。最后,您的网关的 IP 位于 OpenVPN 服务器的 DHCP 池中。连接几个客户端后,10.8.0.6 将租给 VPN 客户端,然后您就会遇到麻烦。

花一些时间阅读 openvpn 参考文档可能是明智之举: https://openvpn.net/community-resources/reference-manual-for-openvpn-2-0/

相关内容