我试图让我的D-Link DSR-250n路由器连接到我的OpenVPN服务器。 为了使服务器正常运行,我遵循了本指南 ,并且可以使用Windows的OpenVPN客户端和Android OpenVPN客户端成功build立客户端连接并parsing名称。 这是我的server.conf
configuration:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1" keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log verb 3 push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" push "dhcp-option DNS 10.8.0.1"
我已经将证书添加到DSR-250n,确保协议(UDP),encryption和algorithm正确,并将其指向VPN(没有其他configuration选项)。 它连接似乎没有问题,路由器日志报告没有错误。 build立连接后,我可以从连接到DSR-250n路由器的计算机ping VPN服务器IP,也可以顺利地连接到VPN服务器。 一旦路由器连接,我似乎无法做的事情是使用它的内置工具或从任何路由器连接的计算机上parsing路由器的名称。 在所有的VPN服务器,路由器和本地计算机上,我都对Google DNS服务器8.8.8.8,8.8.8.4进行了硬编码。
所以我有连接到服务器和一个看似良好的VPN连接,允许我SSH到服务器本身 – 一旦在那里,我可以跟踪路由名称没有问题。
我试过了:
DSR-250n具有DNS代理function,可以让连接的计算机使用路由器的IP作为DNS – 我已经打开和closures了这个function,没有改变。 我没有真正改变上面的服务器configuration,因为我不知道从哪里开始。
任何帮助感激!
编辑1 – 更新的信息。 当来自路由器的VPN客户端连接处于活动状态时,我具有以下连接:
从路由器:
从通过DHCP连接到路由器的计算机上:
这里是路由器本身的IP4路由表,当我将路由器作为客户端连接到OpenVPN服务器时:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.8.0.1 10.8.0.9 255.255.255.255 UGH 0 0 0 tun1 xxxx (VPN server public IP) 99.231.136.1 255.255.255.255 UGH 0 0 0 eth1 10.8.0.9 0.0.0.0 255.255.255.255 UH 0 0 0 tun1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 bdg1 99.231.136.0 0.0.0.0 255.255.254.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 10.8.0.9 128.0.0.0 UG 0 0 0 tun1 128.0.0.0 10.8.0.9 128.0.0.0 UG 0 0 0 tun1 0.0.0.0 99.231.136.1 0.0.0.0 UG 0 0 0 eth1
我的印象是,你似乎没有遵循你链接到该信的指令的dnsmasq部分,你也可能有一个可能的路由问题。
如果除了在ovpn服务器configuration中除去google dns硬编码,会发生什么? 根据你的描述和你给出的链接,下面是关于dns的一些额外的推理:
我记得与dnsmasq使用resolv.conf,因为我总是在静态公共地址,没有dynamic分配的DNS:ES。 链接中的指令似乎是基于解决方法来获取DHCP分配的DNS地址。 当你正在对准谷歌DNS地址,而不是dynamic分配的,我会特别注意这一部分。 在通过另一个后端DNS代理链接客户端之前,通过dnsmasq进行双重解决。 如果你遵循这个指南,确保你了解每一步做什么,因为你可能需要稍微改变dnsmasq config程序来简化和摆动。
此外,由于解决scheme是围绕dnsmasq明确devise所有dns查询和转发它们,您的硬编码谷歌dns地址作为主要和次要parsing器与dnsmasq地址作为第三parsing器在ovpn服务器configuration(我假设你正在做在编写的过程中,尽可能使用相同的编码方式,甚至可以在客户端进行硬编码),但通过dnsmasq在通过vpn进行连接时,可能会出现双dns超时。
这当然不是最佳的,除了在dnsmasq指南中为ovpn服务器指定的外部parsing器configuration外,您应该除去对google dns的引用。 当你有它的工作,你可以添加谷歌DNS地址在您的客户端机器的DNS客户端再次。 当你连接的时候,它们应该暂时用openvpn中的代替。
此外,考虑dlink路由器在其dynamicDNS客户端中不接受三个DNS服务器地址的可能性,也考虑硬编码地址和让它们同时dynamic分配给dlink之间的冲突的可能性。 也许它不能很好地处理这样的configuration? 我没有访问您的dlink模型,并不真的希望阅读它的文档,但只是指出一些可能的错误来源。
所以我真的得到你需要简化dns部分的印象:
如果在默认路由所指示的path旁边的ovpn服务器上还有其他networking,并且您需要依靠这些networking进行到Internet的最后一站,则需要使用“推送”路由xxx0 255.255将这些路由推送到dlink。 255.0“'指令。 只是为了排除这一点。
为了使vpnnetworking上的客户端相互访问,请在ovpn服务器configuration中使用“客户端到客户端”指令。
此外,你的dlink路由器路由表看起来有点奇怪。 我可能是错误的,因为DLINK可能以一种陌生的方式呈现其路由表(对我来说)。 看起来,我将它与我可以访问的工作ovpn客户端进行比较的方式是,您已将内部networking连接到子网10.8.0.0/24上的dlink和vpn隧道networking,同时configuration了路由而不是桥接VPN。 这会在路由部门造成麻烦。
如上所述,我不确定dlink是如何呈现自己的路由表的明智的,所以关于你的networking的其他细节(尤其是如何规划内部ip子网和关键的服务器ip地址,如ovpn服务器地址,dnsmasq地址,内部VPNnetworking空间,内部客户端子网是没有VPN)将使它更容易帮助你的那部分。 混淆你认为必要的,但要使其具有代表性和一致性。
我希望这是一些帮助。