• 如何在Windows上配置OpenVPN,使客户端能够访问服务器端内网其他主机?


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 EdDimon17 2024-04-17 14:17 采纳率: 0% 浏览 4 首页/ 运维 / 如何在Windows上配置OpenVPN,使客户端能够访问服务器端内网其他主机? 网络windows网络安全 最近在研究OPENVPN,其实基本的创建CA和DH还有证书都能保证服务器和客户端的基本链接,我的环境无论是服务器(server 2019)还是客户端都是Windows的,但是我发现我根据网络上TUN的所有教程都试了一下,还是无法实现VPN客户端访问VPN服务器下面的其他网络设备。我的VPN服务器和TOMCAT都是华为的弹性容器,问一下各位能告诉我我是配置错什么了吗?如果需要我也可以私发你我的华为公网IP地址,请帮我看看,谢谢 需要声明的是我的安全组策略是全部开发的 下面是我OPENVPN的配置文件 服务器 port 1194 # TCP or UDP server? proto tcp dev tun ca ca.crt cert servervpn.crt key servervpn.key # This file should be kept secret dh dh.pem topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.20.0 255.255.255.0" route 192.168.20.0 255.255.255.0 192.168.10.11 client-to-client keepalive 10 120 tls-auth ta.key 0 # This file is secret cipher AES-256-CBC persist-key persist-tun status openvpn-status.log verb 3 explicit-exit-notify 1 客户端 client dev tun proto tcp remote 124.70.XXX.XXX 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert clientvpn.crt key clientvpn.key remote-cert-tls server tls-auth ta.key 1 cipher AES-256-CBC verb 3 ;mute 20 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    4条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-17 14:19
      关注

      引自免费微信小程序:皆我百晓生

      为了帮助您解决OpenVPN配置问题,我们首先需要确保服务器和客户端的OpenVPN配置正确,并且检查网络路由是否设置得当。以下是针对您提供的信息进行调整后的服务器与客户端配置文件以及一些可能的排查步骤。

      服务器端(server.conf)配置文件

      port 1194
      proto tcp
      dev tun
      
      ca ca.crt
      cert servervpn.crt
      key servervpn.key
      
      dh dh.pem
      
      topology subnet
      server 10.8.0.0 255.255.255.0
      
      ifconfig-pool-persist ipp.txt
      push "route 192.168.20.0 255.255.255.0"
      
      client-to-client
      
      keepalive 10 120
      
      tls-auth ta.key 0
      cipher AES-256-CBC
      auth SHA256
      
      persist-key
      persist-tun
      
      status openvpn-status.log
      verb 3
      
      explicit-exit-notify 1
      

      客户端(client.conf)配置文件

      client
      dev tun
      
      proto tcp
      
      remote 124.70.XXX.XXX 1194
      
      resolv-retry infinite
      
      nobind
      
      persist-key
      persist-tun
      
      ca ca.crt
      cert clientvpn.crt
      key clientvpn.key
      
      remote-cert-tls server
      
      tls-auth ta.key 1
      auth SHA256
      
      cipher AES-256-CBC
      
      verb 3
      

      接下来,我们需要检查几个关键点:

      1. 路由设置:

        • 在服务器端,route指令应该只出现在server.conf中,而不是在push选项里。
        • 确保客户端和服务器上的路由表正确地指向内部网络。
      2. 安全组规则:

        • 检查服务器的安全组规则,确保所有必要的端口(例如1194)都开放,并允许来自客户端IP范围的通信。
      3. Windows客户端路由:

        • 在Windows客户端上,确保在OpenVPN连接建立后,动态路由被正确添加到路由表中。
      4. 防火墙设置:

        • 双方都需要检查本地防火墙设置,确保OpenVPN使用的端口(通常是UDP 1194或TCP 1194)没有被阻止。
      5. 测试:

        • 使用ping命令从客户端尝试ping服务器端的LAN IP(例如192.168.10.11),以及TOMCAT服务器的LAN IP(例如192.168.20.245)。
      6. 日志分析:

        • 分析OpenVPN的日志文件(位于openvpn-status.log)查找任何错误或警告。
      7. 诊断工具:

        • 使用traceroute或tracert命令来追踪数据包从客户端到服务器的路径,查看是否有任何中断。

      如果您已经完成上述步骤但仍然存在问题,您可以提供详细的日志输出,这样我可以更深入地帮助您分析问题。同时,确保在配置过程中,使用正确的证书和密钥,因为它们对于OpenVPN的正常工作至关重要。

      展开全部

      评论 编辑记录
    • 码农阿豪 Java领域优质创作者 2024-04-17 14:19
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      根据提交者提供的信息,可以得出以下结论:
      1. 检查OpenVPN的配置文件,尤其是路由部分,是否正确;
      2. 检查Windows的防火墙设置和安全组策略是否正确;
      3. 检查华为弹性容器的配置,确保VPN服务器和其他网络设备都处于同一子网内。 关于第一个问题,建议检查以下内容:
      4. 服务器配置文件中的路由是否正确设置,尤其是ifconfig-pool-persist和push route命令;
      5. 客户端配置文件中是否正确指定了远程服务器的地址和端口;
      6. 是否开启了客户端到客户端的通信,即是否启用了client-to-client选项;
      7. 是否正确指定了TLS身份验证,包括证书和密钥;
      8. 是否正确指定了加密算法和压缩选项。 以下是一个示例OpenVPN配置文件,可以作为参考: # 服务器配置文件 port 1194 proto tcp ca ca.crt cert server.crt key server.key dh dh.pem dev tun server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 tls-auth ta.key 0 cipher AES-256-CBC persist-key persist-tun comp-lzo user nobody group nobody status openvpn-status.log verb 3 push "route 192.168.1.0 255.255.255.0" push "dhcp-option DNS 8.8.8.8" # 客户端配置文件 client dev tun proto tcp remote vpn.example.com 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key cipher AES-256-CBC tls-auth ta.key 1 comp-lzo verb 3 请注意,这仅是示例配置文件,具体配置应该根据实际情况进行调整。 关于第二个问题,建议检查以下内容:
      9. 是否在服务器和客户端的防火墙中开放了OpenVPN端口,一般是UDP端口1194或TCP端口443;
      10. 是否允许OpenVPN流量通过Windows防火墙,可以添加适当的入站规则;
      11. 是否开启了不必要的防火墙功能,例如IPS、IDS等,可能会阻止OpenVPN流量通过。 以下是一个示例入站规则,可以作为参考: 名称:OpenVPN 操作:允许 协议:UDP 本地端口:1194 远程IP地址:任意 远程端口:任意 请注意,具体规则应根据实际情况进行调整。 关于第三个问题,建议检查以下内容:
      12. VPN服务器和其他网络设备是否具有相同的子网掩码和默认网关;
      13. 是否存在可能阻止VPN客户端访问其他网络设备的网络障碍物,例如路由器、交换机等;
      14. 如果使用了特殊的网络配置,例如VLAN、负载均衡等,则需要确保OpenVPN能够正确处理它们。 以下是一个示例网络拓扑图,可以作为参考: Internet | +-- Router (192.168.1.1) | | | +-- Switch | | | +-- VPN Server (192.168.1.2) | +-- Web Server (192.168.1.3) | +-- Database Server (192.168.1.4) | +-- VPN Client (10.8.0.6) 请注意,具体拓扑图应根据实际情况进行调整。
      评论
    • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-17 14:20
      关注

      下午好🌅🌅🌅
      本答案参考ChatGPT-3.5

      根据你提供的配置文件和网络情况,有几个可能导致客户端无法访问服务器下面的其他网络设备的问题:

      1. 路由配置错误:在服务器配置文件中,可以看到一行配置 route 192.168.20.0 255.255.255.0 192.168.10.11,它的作用是告诉客户端通过 VPN 访问目标网络时,应该通过 VPN 服务器 IP(192.168.10.11)来访问。请确保 192.168.10.11 是 VPN 服务器的正确 IP 地址,并且服务器上有到 192.168.20.0/24 网络的路由。

      2. 客户端路由问题:在客户端的路由表中,是否正确添加了到 VPN 服务器和其他目标网络的路由规则?使用命令 route print 查看客户端的当前路由表,并确保正确添加了到服务器和其他目标网络的路由规则。

      3. 防火墙和安全组策略限制:在服务器和客户端上都要检查防火墙和安全组策略,确保允许 OpenVPN 使用的端口(默认是 1194)通过,并且没有其他限制访问的规则。

      4. OpenVPN 配置文件:再次检查你的 OpenVPN 配置文件,确保所有的路径和文件名都是正确的,并且没有遗漏或错误的配置项。另外,将客户端配置文件的 proto 改为 tcp-client,能够与服务器的 proto tcp 对应。

      解决方案:

      1. 检查并修复路由配置问题:

        • 检查服务器配置文件中的 route 配置项,确保目标网络的地址和子网掩码正确,目标网关是服务器的 IP 地址。
        • 确保服务器上已经配置了到目标网络的正确的路由。
      2. 检查并修复客户端路由问题:

        • 使用命令 route print 检查客户端的当前路由表,并确保已正确添加到服务器和目标网络的路由规则。
        • 如果没有正确的路由规则,可以使用 route add 命令手动添加路由。
      3. 检查并修复防火墙和安全组策略限制:

        • 确保服务器和客户端的防火墙和安全组策略允许 OpenVPN 使用的端口通过。
        • 可以尝试暂时禁用防火墙和安全组策略,然后重新测试连接,如果能够正常访问,说明是防火墙或安全组策略的问题。
      4. 检查并修复 OpenVPN 配置文件:

        • 仔细检查配置文件中的路径和文件名,确保它们都是正确的,并且没有遗漏或错误的配置项。
        • 确保客户端配置文件的 prototcp-client

      请根据以上步骤逐一检查和修复问题,并测试客户端是否能够成功访问服务器下面的其他网络设备。如果问题仍然存在,请提供详细的错误信息或日志,以便更好地帮助你解决问题。

      展开全部

      评论
    • GISer Liu 2024-04-17 14:46
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      根据你提供的配置文件,看起来OpenVPN的基本设置是正确的。但是,要实现VPN客户端访问VPN服务器下面的其他网络设备,可能需要进一步调整你的路由设置。
      你的配置中已经包含了一些路由设置,比如:
      plaintextCopy code

      route 192.168.20.0 255.255.255.0 192.168.10.11
      

      这条路由规则告诉客户端,当访问192.168.20.0/24 网络时,将流量发送到服务器的内部 IP
      地址192.168.10.11。但是,这只是告诉客户端如何到达目标网络,还需要确保目标网络知道如何将响应流量返回到VPN客户端。
      在你的情况下,需要确保以下几点:

      1. VPN服务器的路由设置 :确保VPN服务器知道如何将流量转发到VPN客户端。你可以在服务器上添加类似以下的路由设置:
        plaintextCopy code
        route 10.8.0.0 255.255.255.0
        
        这条规则告诉服务器,当收到来自VPN客户端的流量时,应该通过VPN接口(TUN设备)转发到10.8.0.0/24 网络。
      2. 目标设备的路由设置 :确保内网中的其他设备知道如何将响应流量返回到VPN客户端。你需要在内网路由器或者主机上添加路由规则,指示当访问VPN客户端所在的子网时,流量应该发送到VPN服务器。
      3. 防火墙设置 :确保VPN服务器和目标设备的防火墙允许VPN流量通过。特别是,确保VPN服务器和目标设备不会阻止来自VPN客户端的流量。
      4. 网络地址转换(NAT) :如果VPN服务器位于内网后面,并且使用了NAT,则需要确保NAT正确地转发VPN流量。
        如果你已经检查过以上所有设置,并且仍然无法访问VPN服务器下的其他网络设备,可能需要进一步检查网络配置和日志,以确定问题所在。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      评论
      EdDimon17 2024-04-18 11:40

      plaintextCopy code
      route 10.8.0.0 255.255.255.0
      是添加到哪里呀?server.ovpn吗?

      回复
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    【Android】settings命令幕后-----cmd命令
    【AIGC】FaceChain:发挥生成式内容的无限可能性
    MySQL索引与事务
    [源码解析] TensorFlow 分布式之 ParameterServerStrategy V2
    Kubernetes CNI 插件之Fabric
    xml转换成txt (VOC转换为YOLO)
    文心一言 VS 讯飞星火 VS chatgpt (108)-- 算法导论10.1 6题
    微服务架构的黄金法则:拆分、重构、扩展
    AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-常服(附高清图下载)
    Python150题day05
  • 原文地址:https://ask.csdn.net/questions/8089966