找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 86|回复: 0

openvpn 跨网段组网问题

[复制链接]

766

主题

0

回帖

2326

积分

管理员

积分
2326
发表于 2023-12-4 11:42:10 | 显示全部楼层 |阅读模式


这个就是配置路由的问题,可以试试给 192.168.2.200 这个客户端推送一个路由 push "route 192.168.10.0 255.255.255.0"然后给路由器配置:iroute 192.168.10.0 255.255.255.0
需要打通内网一边的 openvpn 也需要开启转发和写路由
@cdlnls 好的,我测试下。我之前尝试在 server.conf 下 push "route 192.168.10.0 255.255.255.0"push "route 192.168.2.0 255.255.255.0"然后似乎不行。@ik 应该不需要,之前用 pptp 试过。路由器这边可以不需要设置。只是 pptp 刚试好就被封了。
@findwho #3 这个配置上之后,重新连接客户端,ping 192.168.2.200 能通吗?
哦 看反了, 路由器应该已经有路由指向了
@ik 我的 4G 路由器不在手边,需要明天再试了,不过我现在在服务器上 ping 192.168.2.200 是不通的
1 ,服务器配置要增加这些:client-config-dir /etc/openvpn/ccdroute 192.168.10.0 255.255.255.0push "route 192.168.10.0 255.255.255.0"2 ,然后增加一个文件:/etc/openvpn/ccd/<4G 路由器的 openvpn 证书名称>iroute 192.168.10.0 255.255.255.0
@findwho 这位老哥 @blackeeper 是正解
@blackeeper 我可以不可这么理解,假如服务器增加client-config-dir /etc/openvpn/ccdroute 192.168.2.0 255.255.255.0push "route 192.168.2.0 255.255.255.0"然后增加一个文件:/etc/openvpn/ccd/<client2(192.168.2.200 的电脑)>iroute 192.168.10.0 255.255.255.0服务器就能够 ping 通 192.168.2.200 ?因为 4G 路由器这边没法测试,只能测 192.168.2.200 这边。
不可以这么理解,我上面那个是暴露 192.168.10.0/24 的网络。以下是路由 192.168.2.0/24 的网络。正确的是:client-config-dir /etc/openvpn/ccd #这条是开启 client 配置项route 192.168.2.0 255.255.255.0 #这条是开启 openVPN 的允许的路由条目push "route 192.168.2.0 255.255.255.0" #这条是推送给 client1 的路由,告诉 client1 访问 client2 的网络要走 openVPN然后增加一个文件:/etc/openvpn/ccd/<client2(192.168.2.200 的电脑)>iroute 192.168.2.0 255.255.255.0 #这条表明 192.168.2.0 是 client2 的内部网络上面都是单向的网络,如果你想两个网段互通,网段内客户端无感知互相访问,把这两个配置加起来就可以了。由于 client2 不是网关就需要要在路由器加一条路由 192.168.10.0/24 下一跳:client2 ( 192.168.2.200 )
@blackeeper 谢谢大佬 ccd more client1 ( client1 就是 4G 路由器)iroute 192.168.10.0 255.255.255.0server.conf(也增加了这几行)client-config-dir /etc/openvpn/ccdroute 192.168.10.0 255.255.255.0push "route 192.168.10.0 255.255.255.0"openvpn 的路由表也看到这一条192.168.10.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0但是目前 vps 和 192.168.2.200 上面都无法 ping 通 192.168.10.1 这个网段192.168.2.200 ( 10.8.0.3 )上面是可以正常 ping 通 10.8.0.2
要在 192.168.10.1 和 192.168.2.200 上加路由表192.168.10.1route add -net 192.168.2.0/24 gw 10.8.0.3192.169.2.200route add -net 192.168.10.0/24 gw 10.8.0.2
@findwho 你的 openVPN 服务器开启了 ip 转发没有?命令如下:echo 1 > /proc/sys/net/ipv4/ip_forwardecho "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
@ochatokori C:\Windows\System32>route add -p 192.168.10.0 mask 255.255.255.0 10.8.0.2 操作完成!目前在服务器上都没法 ping 通 192.168.10.0 这个网段,应该不是这个问题吧。假如服务器能 ping 通,在 192.168.2.200 上 ping 不同,那就是客户端要增加路由表
@blackeeper 这个肯定开了啊。之前用 pptp 协议的时候,是能用的啊。就是被封了。
这个是路由表Destination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 XX.XX.XX.1 0.0.0.0 UG 0 0 0 eth010.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0XX.XX.XX.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0192.168.10.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
@findwho openVPN 服务的路由表没问题,加了 openVPN 配置,你的 client1 ,client2 要重连一下 openVPN 。如果还不通的,可以贴一下 client1 ,client2 的路由表
客户端已经重新连接过,按道理应该是服务器先能 ping 通吧。活动路由clinet2 目前地址 192.168.2.210 )网络目标 网络掩码 网关 接口 跃点数 0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.210 281 0.0.0.0 128.0.0.0 10.8.0.1 10.8.0.3 257 10.8.0.0 255.255.255.0 在链路上 10.8.0.3 257 10.8.0.3 255.255.255.255 在链路上 10.8.0.3 257 10.8.0.255 255.255.255.255 在链路上 10.8.0.3 257 XX.XX.XX.XX 255.255.255.255 192.168.2.1 192.168.2.210 281 127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331 127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331 127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331 128.0.0.0 128.0.0.0 10.8.0.1 10.8.0.3 257 169.254.0.0 255.255.0.0 在链路上 169.254.214.184 291 169.254.214.184 255.255.255.255 在链路上 169.254.214.184 291 169.254.255.255 255.255.255.255 在链路上 169.254.214.184 291 192.168.2.0 255.255.255.0 在链路上 192.168.2.210 281 192.168.2.210 255.255.255.255 在链路上 192.168.2.210 281 192.168.2.255 255.255.255.255 在链路上 192.168.2.210 281 192.168.10.0 255.255.255.0 在链路上 192.168.2.210 281 192.168.10.0 255.255.255.0 10.8.0.2 10.8.0.3 2 192.168.10.200 255.255.255.255 在链路上 192.168.2.210 281 192.168.10.255 255.255.255.255 在链路上 192.168.2.210 281 224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331 224.0.0.0 240.0.0.0 在链路上 169.254.214.184 291 224.0.0.0 240.0.0.0 在链路上 10.8.0.3 257 224.0.0.0 240.0.0.0 在链路上 192.168.2.210 281 255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331 255.255.255.255 255.255.255.255 在链路上 169.254.214.184 291 255.255.255.255 255.255.255.255 在链路上 10.8.0.3 257 255.255.255.255 255.255.255.255 在链路上 192.168.2.210 281===========================================================================永久路由: 网络地址 网络掩码 网关地址 跃点数 0.0.0.0 0.0.0.0 192.168.2.1 默认 192.168.10.0 255.255.255.0 10.8.0.2 1
那个 4g 路由器只要一推路由设置,我就没法进入后台,使用无线或者有线都不行,在联系客服帮我看一下。所以贴不了 client1 的路由。
@findwho 1 ,有几个比较怪的路由,不知道是你手动添加的,还是啥,要删除0.0.0.0 128.0.0.0 10.8.0.1 10.8.0.3 257 #这个很怪,要删除192.168.10.0 255.255.255.0 在链路上 192.168.2.210 281 #这个路由就 client1 的路由给抢走了,要删除192.168.10.0 255.255.255.0 10.8.0.2 10.8.0.3 2 #这个是 client1 没问题192.168.10.200 255.255.255.255 在链路上 192.168.2.210 281 #这个路由就 client1 的路由给抢走了,要删除192.168.10.255 255.255.255.255 在链路上 192.168.2.210 281 #这个路由就 client1 的路由给抢走了,要删除2 ,永久路由: 这个要删掉,上面已经有了,不需要重复添加。192.168.10.0 255.255.255.0 10.8.0.2 1删除命令:route DELETE 0.0.0.0 MASK 128.0.0.0 10.8.0.1route DELETE 192.168.10.0 MASK 255.255.255.0 192.168.2.210route DELETE 192.168.10.200 MASK 255.255.255.0 192.168.2.210route DELETE 192.168.10.255 MASK 255.255.255.0 192.168.2.210route -p DELETE 192.168.10.0 MASK 255.255.255.0 192.168.2.210
@findwho 服务器想要 ping 通 192.168.10.0 段就要在服务器上添加到 192.168.10.0 段的路由,网关为 10.8.0.2思路就是 openvpn 客户端想要 ping 通另外的客户端的段,就要在自身添加到目标段网关为另外客户端的 openvpn 地址,openvpn 客户端下面的设备不用管
@blackeeper 我的系统是 win11,这些奇怪路由不是我加的。我加的都是经过 10.8.0.0 这个网关的。 0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.210 281 10.8.0.0 255.255.255.0 在链路上 10.8.0.3 257 10.8.0.3 255.255.255.255 在链路上 10.8.0.3 257 10.8.0.255 255.255.255.255 在链路上 10.8.0.3 257 XX.XX.XX.XX 255.255.255.255 192.168.2.1 192.168.2.210 281 127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331 127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331 127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331 128.0.0.0 128.0.0.0 10.8.0.1 10.8.0.3 257 169.254.0.0 255.255.0.0 在链路上 169.254.214.184 291 169.254.214.184 255.255.255.255 在链路上 169.254.214.184 291 169.254.255.255 255.255.255.255 在链路上 169.254.214.184 291 192.168.2.0 255.255.255.0 在链路上 192.168.2.210 281 192.168.2.210 255.255.255.255 在链路上 192.168.2.210 281 192.168.2.255 255.255.255.255 在链路上 192.168.2.210 281 192.168.10.0 255.255.255.0 10.8.0.2 10.8.0.3 2 224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331 224.0.0.0 240.0.0.0 在链路上 169.254.214.184 291 224.0.0.0 240.0.0.0 在链路上 10.8.0.3 257 224.0.0.0 240.0.0.0 在链路上 192.168.2.210 281 255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331 255.255.255.255 255.255.255.255 在链路上 169.254.214.184 291 255.255.255.255 255.255.255.255 在链路上 10.8.0.3 257 255.255.255.255 255.255.255.255 在链路上 192.168.2.210 281===========================================================================永久路由: 网络地址 网络掩码 网关地址 跃点数 0.0.0.0 0.0.0.0 192.168.2.1 默认 192.168.10.0 255.255.255.0 10.8.0.2 1========================================================================这个是最新的路由。有 2 个 192.168.10.0 是因为执行 route add -p 192.168.10.0 mask 255.255.255.0 10.8.0.2 后会出现两个。
@ochatokori 192.168.10.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 服务器有这条路由,是你说的意思嘛?我尝试把 tun0 换为 eth0 不成功。
@blackeeper 大佬,我想了解一下,是不是按道理先要在服务器上 ping 通 192.168.10.0 这个网段。现在服务器都 ping 不通,是不是可能路由器那边的问题??
@findwho 是的,有可能是路由器那个禁止了 ping ,你可以在 openVPN 服务器上 ping 192.168.10.2
@blackeeper 服务器 ping 不通的。路由器应该没有禁用,昨天我用 pptp vpn 测试是成功的。从 192.168.2.200 这个电脑可以正常访问 192.168.10.2,能 ping 通,能访问。只是 pptp 昨天被封端口了。我感觉路由器是有点问题,因为连接 vpn 后,不推路由还好,一推就 wlan ,lan 都没法访问 192.168.10.1.也 ping 不同。之前这个设置也是push "redirect-gateway def1 ipv6 bypass-dhcp"服务器只要用这个设置,连接路由器就没法上网。所以服务器把这个禁掉了。
我还怀疑过路由器这部分设置有问题。不过昨天都正常的。![26d7f5cc3e41f7fb87e60f6dabb8c6bf.jpeg]( https://i.mji.rip/2023/11/23/26d7f5cc3e41f7fb87e60f6dabb8c6bf.jpeg)里面的端口 tuno,tun1 不知道啥意思,( tun0 有点像 openvpn 生成的端口)
假如现在 server 的配置文件里面有:route 192.168.10.0 255.255.255.0 和 route 192.168.2.0 255.255.255.0在没有其他的情况下,这两个配置会在 openvpn 服务器上添加两个路由指向 openvpn 的虚拟网关(不会有任何作用,因为 openvpn 不知道下一跳在哪里)只有当你给 192.168.2.200 这个客户端推送了 iroute 192.168.10.0 255.255.255.0 之后,这里相当于告诉 openvpn 服务器,这个客户端拥有这个网段 192.168.10.0 ,所以只有有了这个配置之后,openvpn 服务端才会把到达网关的数据包发送给这个客户端。所以,如果你要达到你的目的,路由器上必须要有 iroute 这个配置,也就是:iroute 192.168.10.0 255.255.255.0 ,它会告诉 openvpn 服务器,它这里有 192.168.10.0 这个网段。你可以这样 debug 。1. 首先,在 openvpn 服务器上 ping 一下 10.8.0.2 ,这个肯定是能通的。2. 再在 openvpn 服务器上 ping192.168.10.1 ,这个如果不通,在 openvpn 服务器上抓包,只抓接口 tun0 的包,看包是不是去了 10.8.0.2 这个地址。如果没有包就加 route ,如果包下一跳没有到 10.8.0.2 ,那就路由器上加 iroute 。3. 如果上一步,你看到包到了路由器,但是没有回包,你就登录路由器,用 tcpdump 抓包,看路由器有没有收到你的包,还是和上面一样。4. 再在路由器上 ping 192.168.10.2 ,继续抓包,继续看数据包,如果到了路由器中断了,那就检查防火墙配置(我看了你贴的路由器配置,都是接受,按理说没问题)。5. 如果最终,你在 192.168.10.2 这个机器上抓到了包,就往原路上跟着一步一步查,就能知道问题在哪里了。---其实我的网络和你差不太多,方案也是一样的,这样配置按理说其实没什么问题的。
@cdlnls 我不太会抓包,下午是厂家的远程给我弄,额,还是 ping 不同。他也抓包看了,说 ping 192.168.10.1 的时候,服务器没有包出来。ping -> tun0 ->openvpn server -> eth0 ----------- 路由器 eth1--openvpnclient-->tun0说 tun0 是有数据的,没有具体说哪里没了。路由器抓包是没看到包的。(但是昨天我用 pptp 没问题的啊)服务器的路由,iptables 他都检查了。。。路由器也看了,还没找到原因。(看日志说我另外一台客户端用的证书一样,让我停掉再 ping ,还是一样。。。)@blackeeper 给下联系方式,给大佬点杯咖啡。辛苦大佬了。明天可能还要继续。
@findwho 微信即 ID ,你这个还没搞定么,可以远程的话,我远程给你弄
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|中国鲜于璜碑

GMT+8, 2024-5-14 13:42 , Processed in 0.167191 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表