目前想要实现 192.168.2.200 这台电脑能够访问 192.168.10.2 这台设备。 openvpn 服务器已经搭好,客户机也能正常连接,目前就是 192.168.2.200 无法访问 192.168.10.2 , 在服务器上也无法 ping 通 192.168.10.2 尝试增加路由表 route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.8.0.2 也不起作用。 改用 pptp 倒是成功了,不过 1 小时不到就封了端口。 麻烦各位大佬指点一二,成功了请第一个提供正确指导的喝杯咖啡,略表心意。
服务器配置如下: (尝试 push route ,不成功,openvpn 官网的教程也看了一些,不是特别理解) local server
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA256
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
push "block-ipv6"
push "ifconfig-ipv6 fddd:1194:1194:1194::2/64 fddd:1194:1194:1194::1"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4" push "block-outside-dns"
#push "route 192.168.2.0 255.255.255.0"
keepalive 10 120
cipher AES-128-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify
client-to-client
#client-config-dir /etc/openvpn/ccd
#route 192.168.2.0 255.255.255.0
1
cdlnls 362 天前
这个就是配置路由的问题,
可以试试给 192.168.2.200 这个客户端推送一个路由 push "route 192.168.10.0 255.255.255.0" 然后给路由器配置: iroute 192.168.10.0 255.255.255.0 |
2
ik 362 天前 via iPhone
需要打通内网一边的 openvpn 也需要开启转发和写路由
|
3
findwho OP |
5
ik 362 天前 via iPhone
哦 看反了, 路由器应该已经有路由指向了
|
7
blackeeper 362 天前 1
1 ,服务器配置要增加这些:
client-config-dir /etc/openvpn/ccd route 192.168.10.0 255.255.255.0 push "route 192.168.10.0 255.255.255.0" 2 ,然后增加一个文件:/etc/openvpn/ccd/<4G 路由器的 openvpn 证书名称> iroute 192.168.10.0 255.255.255.0 |
8
cdlnls 362 天前
|
9
findwho OP @blackeeper
我可以不可这么理解,假如 服务器增加 client-config-dir /etc/openvpn/ccd route 192.168.2.0 255.255.255.0 push "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 这边。 |
10
blackeeper 362 天前
不可以这么理解,我上面那个是暴露 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 ) |
11
findwho OP @blackeeper 谢谢大佬
ccd more client1 ( client1 就是 4G 路由器) iroute 192.168.10.0 255.255.255.0 server.conf(也增加了这几行) client-config-dir /etc/openvpn/ccd route 192.168.10.0 255.255.255.0 push "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 |
12
ochatokori 361 天前 via Android
要在 192.168.10.1 和 192.168.2.200 上加路由表
192.168.10.1 route add -net 192.168.2.0/24 gw 10.8.0.3 192.169.2.200 route add -net 192.168.10.0/24 gw 10.8.0.2 |
13
blackeeper 361 天前
@findwho
你的 openVPN 服务器开启了 ip 转发没有?命令如下: echo 1 > /proc/sys/net/ipv4/ip_forward echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf |
14
findwho OP @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 不同,那就是客户端要增加路由表 |
15
findwho OP @blackeeper 这个肯定开了啊。之前用 pptp 协议的时候,是能用的啊。就是被封了。
|
16
findwho OP 这个是路由表
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 XX.XX.XX.1 0.0.0.0 UG 0 0 0 eth0 10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 XX.XX.XX.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.10.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 |
17
blackeeper 361 天前
@findwho openVPN 服务的路由表没问题,加了 openVPN 配置,你的 client1 ,client2 要重连一下 openVPN 。
如果还不通的,可以贴一下 client1 ,client2 的路由表 |
18
findwho OP 客户端已经重新连接过,按道理应该是服务器先能 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 |
19
findwho OP 那个 4g 路由器只要一推路由设置,我就没法进入后台,使用无线或者有线都不行,在联系客服帮我看一下。所以贴不了 client1 的路由。
|
20
blackeeper 361 天前
@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.1 route DELETE 192.168.10.0 MASK 255.255.255.0 192.168.2.210 route DELETE 192.168.10.200 MASK 255.255.255.0 192.168.2.210 route DELETE 192.168.10.255 MASK 255.255.255.0 192.168.2.210 route -p DELETE 192.168.10.0 MASK 255.255.255.0 192.168.2.210 |
21
ochatokori 361 天前 via Android
@findwho 服务器想要 ping 通 192.168.10.0 段就要在服务器上添加到 192.168.10.0 段的路由,网关为 10.8.0.2
思路就是 openvpn 客户端想要 ping 通另外的客户端的段,就要在自身添加到目标段网关为另外客户端的 openvpn 地址,openvpn 客户端下面的设备不用管 |
22
findwho OP @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 后会出现两个。 |
23
findwho OP @ochatokori 192.168.10.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 服务器有这条路由,是你说的意思嘛?
我尝试把 tun0 换为 eth0 不成功。 |
24
findwho OP @blackeeper 大佬,我想了解一下,是不是按道理先要在服务器上 ping 通 192.168.10.0 这个网段。现在服务器都 ping 不通,是不是可能路由器那边的问题??
|
25
blackeeper 361 天前
@findwho 是的,有可能是路由器那个禁止了 ping ,你可以在 openVPN 服务器上 ping 192.168.10.2
|
26
findwho OP @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" 服务器只要用这个设置,连接路由器就没法上网。所以服务器把这个禁掉了。 |
27
findwho OP 我还怀疑过路由器这部分设置有问题。不过昨天都正常的。
![26d7f5cc3e41f7fb87e60f6dabb8c6bf.jpeg]( https://i.mji.rip/2023/11/23/26d7f5cc3e41f7fb87e60f6dabb8c6bf.jpeg) 里面的端口 tuno,tun1 不知道啥意思,( tun0 有点像 openvpn 生成的端口) |
28
cdlnls 361 天前
假如现在 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 这个机器上抓到了包,就往原路上跟着一步一步查,就能知道问题在哪里了。 --- 其实我的网络和你差不太多,方案也是一样的,这样配置按理说其实没什么问题的。 |
29
findwho OP @cdlnls 我不太会抓包,下午是厂家的远程给我弄,额,还是 ping 不同。他也抓包看了,说 ping 192.168.10.1 的时候,服务器没有包出来。
ping -> tun0 ->openvpn server -> eth0 ----------- 路由器 eth1--openvpnclient-->tun0 说 tun0 是有数据的,没有具体说哪里没了。路由器抓包是没看到包的。(但是昨天我用 pptp 没问题的啊) 服务器的路由,iptables 他都检查了。。。路由器也看了,还没找到原因。(看日志说我另外一台客户端用的证书一样,让我停掉再 ping ,还是一样。。。) @blackeeper 给下联系方式,给大佬点杯咖啡。辛苦大佬了。 明天可能还要继续。 |
30
blackeeper 361 天前
@findwho 微信即 ID ,你这个还没搞定么,可以远程的话,我远程给你弄
|
31
Timk 160 天前
不好意思这么长时间还挖坟 请问楼主最后是怎么解决的
我这也出现相同的问题了 有数据包到达服务器的 tun0 接口 但是 tun0 接口不回复报文 必须要是 VPN 的地址才可以 |