当前位置: 首页 > 知识库问答 >
问题:

openvpn - 通过OpenVPN从外网访问内网服务,但无法ping通内网IP地址?

东郭元魁
2024-06-19

我在公网服务器上搭建了openvpn-server,在内网的机器192.168.0.106上通过openvpn-client连接上,并且获取到了分配地址:10.8.0.6。
在外网的机器通过openvpn-client连接openvpn-server上,ping 10.8.0.6 是有应答的,说明隧道创建成功了。但是我通过 ping 192.168.0.106 无法应答,这是什么原因?
这是我内网192.168.0.106的路由表信息:
1718701968735.png
我在openvpn-server也配置了 client-to-client 跟 push "192.168.0.0 255.255.255.0"

我想在外网的机器上连接内网的服务该怎么解决这个问题?

共有3个答案

姜彬郁
2024-06-19

可以如下尝试:

  1. 在ccd文件夹中,添加客户端对应的路由。比如内网的机器106对应的名称为 test,则需要在ccd下建立test文件,内容为:iroute 192.168.0.0 255.255.255.0,这样openvpn service在接收到请求地址为 192.168.0.0/24时,才知道把数据转给 test.

push "192.168.0.0 255.255.255.0" 的作用是向客户端推送路由,但它并不能决定数据达到service后service如何进行转发,而ccd中的文件作用则是设置数据达到service后的转发。

田文景
2024-06-19

你可以参考我的配置

’’’
root@opsv:/etc/openvpn/ccd# cat wrt
ifconfig-push 10.10.0.10 255.255.255.0
iroute 192.168.15.0 255.255.255.0
iroute 192.168.104.0 255.255.255.0
iroute 172.29.0.0 255.255.0.0
push "route 172.16.109.0 255.255.255.0"
’’’

这是名字叫做wrt客户端的配置。
第一行ifconfig-push 用来推送ip给这个客户端
第二行iroute 申明 这个客户端有这个网段的路由
最后一行push,给客户端推送一条路由


所以要实现你的需求,你需要配置一下iroute指定客户端所在的网段(iroute 192.168.0.106 255.255.255.255)

这样其他的客户端就能知道192.168.0.106应该发给哪个客户端了。

令狐功
2024-06-19

有其他解决方案吗?

 类似资料:
  • 本文向大家介绍Python获取网段内ping通IP的方法,包括了Python获取网段内ping通IP的方法的使用技巧和注意事项,需要的朋友参考一下 问题描述 在某些问题背景下,需要确认是否多台终端在线,也就是会使用我们牛逼的ping这个命令,做一些的ping操作,如果需要确认的设备比较少,也还能承受。倘若,在手中维护的设备很多。那么这无疑会变成一个恼人的问题。脚本的作用就凸显了。另外,我们需要使用

  • Spring Boot项目本地和内网可以访问,并且服务器本身可以通过外网访问,为什么Spring项目外网无法访问? application.yml中相关配置如下 服务器本机通过localhost:8080和服务器局域网ip:8080均可访问,相同局域网内的设备也可以通过服务器的局域网ip访问 服务器为Windows Server,上面有几个IIS配置的静态网页 除此之外,尝试将端口修改为其他端口,

  • 互联网上连接的每台设备都有一个IP地址,该IP地址唯一地标识该设备。 IP地址可以分为外网和内网两种类型。 可以从Internet上的任何位置访问外网IP地址, 而只能在内网(LAN)中访问专用IP地址。 现在,如果您想将本地Web服务器中的某些内容开放给内网之外的朋友,他们是在局域网外,并且不能通过外网访问内网的web服务器,那么,如何将本地web服务暴露给内网之外的朋友呢? 在这种情况是可以使

  • 在微服务体系结构中,有一种称为API网关的常见模式。 我知道所有来自API网关外部的通信都被用作单个入口点。 但是我也希望从微服务到微服务的内部通信是通过API网关进行的?我的意思是,这比建立点对点连接要容易得多。 那么,是什么反对将API网关也用于整个内部通信呢?

  • 这是我的docker-compose.yml代码: 下面是我的traefik.toml代码:

  • 问题内容: 我在Mac OS X上使用自制软件设置了jenkins,它 可以通过主机正常工作,或者无法通过主机名/ ipaddress访问jenkins实例: 即使从本地计算机(詹金斯主机本身)也无法访问这两个链接。同时执行命令并正常工作。 问题答案: 事实证明,启动代理配置为仅侦听127.0.0.1(或localhost)。要修复该詹金斯经纪人的plist: 并修改为而不是

  • 我是的新手,虽然我阅读了基本文档,并尝试部署一个简单的Spring BootAPI,但我可能缺少很多东西 我已经将API部署为.jar文件,然后安装并使用以下命令推送它: 然后使用docker命令启动API: 当我访问localhost:7777/hello时,我得到了所需的响应 这是我的 根据这个应答的命令,发布这个命令以获取 因此,我使用运行它,得到了这个错误 如果我设法获得,我是否能够访问它