我正在尝试使用 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,我想这已经足够了)