DDWRT-OpenVPN 已连接,但无法通信

DDWRT-OpenVPN 已连接,但无法通信

这似乎是一个热门话题,但我找不到任何解决我遇到的相同问题的方法。

设置如下:我在 linksys WRT54GL 上有一个 DD-WRT 路由器(版本 14896)。

我在局域网中有一个文件服务器,在广域网外有一个客户端服务器。我的客户端可以通过广域网端口连接到VPN。它获得IP 192.168.66.6。(省略192.168转发)

从客户端(mac 通过 wan 连接到 vpn)我无法 ping 66.1、66.2、66.5 或内部服务器 54.50 或内部 lan 路由器 54.1。我可以说它确实到达了路由器,因为 ping 会导致 wan 灯闪烁(我将间隔设置为 .01 以确保它

从路由器(ssh 进入路由器)我无法 ping 通客户端 66.6 或路由 66.2,但我可以 ping 通服务器 66.1

为了测试目的,VPN 路由器和客户端都插入另一个 DHCP 路由器,因此从技术上讲它不是通过互联网连接的。该范围是 192.168.1.0/24

这是mac客户端连接时的路由表:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.1.254      UGSc           55        0     en0
default            192.168.66.5       UGScI           0        0    tun0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             63   285476     lo0
169.254            link#4             UCS             0        0     en0
192.168.1          link#4             UCS             3        0     en0
192.168.1.64/32    link#4             UCS             1        0     en0
192.168.1.64       b8:e8:56:44:b7:52  UHLWI           0       25     lo0
192.168.1.65       30:10:e4:4d:ce:28  UHLWI           0        3     en0
192.168.1.69       0:23:12:fa:8:f8    UHLWI           0        0     en0    689
192.168.1.77       98:fc:11:7c:d3:e4  UHLWIi          2    21412     en0   1155
192.168.1.254/32   link#4             UCS             1        0     en0
192.168.1.254      60:fe:20:61:bb:31  UHLWIir        60      752     en0   1200
192.168.54         192.168.66.5       UGSc            0        0    tun0
192.168.66         192.168.66.5       UGSc            0        0    tun0
192.168.66.5       192.168.66.6       UHr             3        0    tun0
192.168.66.5/32    link#13            UCS             0        0    tun0

路由器的路由表

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.254   0.0.0.0         255.255.255.255 UH        0 0          0 vlan1
192.168.66.2    0.0.0.0         255.255.255.255 UH        0 0          0 tun0
192.168.54.0    0.0.0.0         255.255.255.0   U         0 0          0 br0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 vlan1
192.168.66.0    192.168.66.2    255.255.255.0   UG        0 0          0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 br0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 vlan1

我的 openvpn 服务器配置

push "route 192.168.54.0 255.255.255.0"
push "dhcp-option DNS 192.168.66.1"
server 192.168.66.0 255.255.255.0

dev tun0
proto udp
cipher AES-256-CBC
auth SHA512
keepalive 10 120
dh /tmp/openvpn/dh.pem
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem
client-to-client
management localhost 5001

我的防火墙命令:

iptables -I INPUT 1 -p udp --dport 1194 -j ACCEPT
iptables -I FORWARD 1 --source 192.168.66.0/24 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT

除了上面的内容之外,我还尝试添加这些内容

iptables -A INPUT -i tun0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

此外,VPN 路由器上的防火墙也已禁用。我尝试了多种 iptables 规则组合并调整了一些其他设置,但仍然无法解决这个问题。

来自客户端的路由测试:

#: route get 192.168.66.1
route to: 192.168.66.1
destination: 192.168.66.0
gateway: 192.168.66.5
interface: tun0

#: route get 192.168.54.1
route to: 192.168.54.1
destination: 192.168.54.0
mask: 255.255.255.0
gateway: 192.168.66.5
interface: tun0

从 VPN 服务器进行路由测试:

#: ip route get 192.168.66.6
192.168.66.6 via 192.168.66.2 dev tun0  src 192.168.66.1
cache  mtu 1500 advmss 1460

答案1

我不知道这有多大帮助,但使用 DD-WRT OpenVPN GUI 对我来说很好。我还没有让 CLI 工作:

我有一个远程 OpenVPN 服务器,可以很好地与我的 PC 和 Android 手机配合使用。我最近将 dd-wrt ​​放在我的路由器上,一台 D-Link DIR-825 和一台 Netgear r7000;我现在只使用 r7000。我在路由器上有一个 USB 棒,例如,它可以在启动时很好地设置交换文件并将其添加到交换中。

我已经通过剪切粘贴服务器上创建的 .ovpn 文件的元素在路由器中设置了 OpenVPN 客户端。这工作正常。

但是,我想轻松地为不同的服务器使用备用客户端 ovpn 文件,而不必删除/覆盖、剪切和粘贴新信息到路由器中。因此,我在 USB 上放入了几个客户端 ovpn 文件,我知道这些文件在我的 PC 和手机上可以正常工作。

我尝试使用这些备用 ovpn 文件,首先禁用路由器中的 OpenVPN 服务,然后检查我是否仍能通过 ISP 从我的 PC 收到 ping。通过作为路由器的 ssh 登录 shell,我尝试使用 openvpn file.ovpn 启动新的 OVPN 服务。它没有起作用——我的 PC 没有远程 ping。然后我终止了 openvpn 进程,并恢复了对 ISP 的 ping。我还通过浏览器重新启动了 dd-wrt ​​OpenVPN 服务,并恢复了我原来的 OVPN 服务。

因此,一切似乎都运行正常,除了无法通过命令行启动任何备用 OVPN 服务

openvpn file.ovpn

添加 --daemon 没有什么区别:

请注意,当在 GUI 中禁用 OVPN 服务时,中没有文件/tmp/openvncl/。为了遵循 GUI 发出的相同调用(请参阅ps),我将 route-up.sh 和 route-down.sh 从那里复制到我的 sda1 目录中。

然后我跑了

xovpn.sh server

xovpn.sh在哪里/tmp/mnt/sda1/

#!/bin/sh
killall openvpn
/usr/sbin/openvpn --config /tmp/mnt/sda1/$1.ovpn --route-up /tmp/mnt/sda1/route-up.sh --down-pre /tmp/mnt/sda1/route-down.sh --daemon

(本练习的目的是能够简单地使用 CLI 来更改服务器。)

此命令在 下显示正常,ps就像使用 GUI 时一样。但是,我根本无法连接到互联网。我在 3 台服务器上尝试了此操作 - 我自己和两台来自 privatetunnel 的服务器 - 所有这些服务器在我的 PC 和手机上都运行良好。

相关内容