OpenVPN服务器不能ping客户端

我已经在Debian服务器上设置了OpenVPN。 客户端可以连接,客户端可以ping和访问服务器上的资源(Samba共享和内部网)。

但是,服务器无法ping客户端 – 它只是超时。

Client OpenVPN assigned IP: 10.67.15.26 ↓ UDP on 1194 Internet ↓ Router port-forwards 1194 to server ↓ Server LAN IP: 10.67.5.1 

服务器OpenVPNconfiguration(相关位)

 port 1194 proto udp dev tun server 10.67.15.0 255.255.255.0 push "route 10.67.5.0 255.255.255.0" 

服务器路由

 Destination Gateway Genmask Flags Metric Ref Use Iface 10.67.15.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.67.15.0 10.67.15.2 255.255.255.0 UG 0 0 0 tun0 10.67.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 10.67.5.254 0.0.0.0 UG 0 0 0 eth1 

服务器防火墙

我暂时禁用了服务器的防火墙,所有的链路策略都是接受的,所有的转发标志都被设置了:

 1 : /proc/sys/net/ipv4/conf/all/forwarding 1 : /proc/sys/net/ipv4/conf/default/forwarding 1 : /proc/sys/net/ipv4/conf/lo/forwarding 1 : /proc/sys/net/ipv4/conf/eth1/forwarding 1 : /proc/sys/net/ipv4/conf/tun0/forwarding 1 : /proc/sys/net/ipv4/ip_forward 

testing用例:

客户端: ping 10.67.5.1和其他资源一样工作。

服务器: ping 10.67.15.26次。

通过比较两个不同的客户,我能够识别和修复2个问题。

问题1:路由

出于某种原因(我不知道我是否已经解决了这个问题),服务器的路由表一直在忘记进出其LAN的路由(10.67.5.0/24)。 这导致所有出站LANstream量通过其主要网关,不会路由到OpenVPN LAN(10.67.15.0/24)。 这导致了去往局域网的OpenVPNnetworking的stream量在主要网关处出现故障; 因此ping被发送,但答复被放弃了。

编辑: 不幸的是,我不知道是什么导致这条路线被丢弃。 你可以看到它在上面的路由表中。 我尝试添加一个路由命令到/ etc / network / interfaces中,但是最后我得到了两个重复的,相同的路由,所以我又把它取出来了。 这是我的fwbuilderconfiguration,导致这个路由被删除:当设置eth1适配器我已经给了一个/ 32networking掩码(即主机),而不是/ 24(局域网)。

通过testing一个Debian客户端,我能够找出这个问题,之后,它工作,但Windows 7客户端没有。

问题2:Windows 7防火墙/configuration

Windows设置有两个问题。

Windows必须为TAP适配器设置“工作”专用configuration文件

这个部分的信贷去卡拉维

在“networking和共享中心”中,您应该看到(至less)2个“活动networking”。 我有无线networking,然后是“不明身份的networking”。 后者是OpenVPN的TAP设备,它有一个公园长椅的图标,这意味着它被视为公共,不信任。 为了能够改变这个,你需要添加一个适配器的默认网关。

以pipe理员身份启动DOS / Cygwinterminal。 (开始Orb>searchCMD>右键单击它>以pipe理员身份运行)。

然后做route print -4 。 你会看到一个接口列表。 每行以一个数字开始,在右侧你会看到名字。 确定TAP-Win32适配器的接口号。 我的17岁。

现在添加路线:

 route -p add 0.0.0.0 mask 0.0.0.0 1.2.3.4 metric 500 if 17 

其中1.2.3.4需要成为OpenVPN网关的IP(显示在前面命令的输出中的“网关”列中),17需要成为TAP接口号。 -p选项使路由永久。 我没有这样做,testing。 这确实假定客户端的OpenVPN网关IP不会在连接之间改变

一旦你这样做,一个对话框应该popup并要求你分类新的networking。 select工作

在这一点上,我能够从我的公司LAN发送stream量到客户端(使用netcat进行testing),但ping仍然没有得到答复。

告诉Windows允许ping(ICMPv4)

启动宝珠>高级安全Windows防火墙然后去入站规则和新规则…

  • 自定义规则
  • 所有程序
  • 协议:ICMPv4
  • 允许连接
  • 适用于私人资料
  • 命名它。

最后ping返回。