openvpn 已连接,但直到服务器 ping 客户端后才起作用

openvpn 已连接,但直到服务器 ping 客户端后才起作用

我正在尝试使用 openvpn 配置从 Windows 7 客户端计算机到 Linux 主机的连接。我使用传统路由模式的 openvpn 并使用 Tap 设备,我使用的配置基本上是过去在 Linux-Linux 连接中运行良好的配置。在服务器上我有:

lport 1198
dev tap
ifconfig 192.168.0.16 255.255.255.240
secret bubble.key
ping 10
verb 3
mute 10
route 192.168.2.0 255.255.255.0 192.168.0.17

在客户端我有:

remote [my server's public ip address]
rport 1198
dev tap
ifconfig 192.168.0.17 255.255.255.240
secret bubble.key
ping 10
ping-restart 120
verb 3
mute 10

我的问题是每次重新启动客户端时,它最初都无法连接服务器。但是,当我从服务器向客户端发送 ping 时,一切都开始正常工作。除了在服务器上运行 ping 进程外,我不确定如何让它工作...

更多信息:怀疑存在 ARP 问题,我一直在研究 ARP 设置。Linux 主机具有以下网络信息:

tap1      Link encap:Ethernet  HWaddr 00:ff:55:4d:06:47
          inet addr:192.168.0.16  Bcast:192.168.0.31  Mask:255.255.255.240
          inet6 addr: fe80::2ff:55ff:fe4d:647/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45508 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45318 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:3375338 (3.2 MiB)  TX bytes:3561021 (3.3 MiB)

但 Windows 机器似乎为其选择了一个错误的物理地址:

$ arp -a

Interface: 192.168.0.17 --- 0xf
  Internet Address      Physical Address      Type
  192.168.0.16          00-ff-51-1e-af-f3     dynamic
  192.168.0.31          ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.252           01-00-5e-00-00-fc     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

当它从远端收到数据包时,它会被更正。但是,每次我运行“arp -d 192.168.0.16”时,物理地址都会恢复为相同的错误地址。我不确定它从哪里得到它。有什么想法吗?

更新:从“tap”切换到“tun”可以解决问题,但我仍然想了解为什么它在“tap”模式下不能正常工作。

答案1

您好,我了解到在服务器上所有级别的接口上启用 promisc 模式有助于加快此过程 - 但是我也注意到了这个错误 - 它实际上会随着时间的推移而起作用 - 尝试通过 tap 从 windows ping 多个地址,它们将一个接一个地被发现,但这需要时间,更快的方法是从服务器 ping,但这并不总是可行的。我正在寻找其他实际手动更新 arp 表的解决方案 - 但它似乎是 TAP 驱动程序或 windows ARP 更新中的错误。奇怪的是,建立连接后它工作正常。(我使用的是 TCP - 可能有更多的问题,但它更稳定 - 我的下载速度为 45 mbit,上传速度为 50 mbit,我想这已经足够了)

相关内容