openvpn 跨网段组网问题

168 天前
 findwho

目前想要实现 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

1459 次点击
所在节点    宽带症候群
30 条回复
cdlnls
168 天前
这个就是配置路由的问题,
可以试试给 192.168.2.200 这个客户端推送一个路由
push "route 192.168.10.0 255.255.255.0"

然后给路由器配置:
iroute 192.168.10.0 255.255.255.0
ik
168 天前
需要打通内网一边的 openvpn 也需要开启转发和写路由
findwho
168 天前
@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 刚试好就被封了。
ik
168 天前
@findwho #3 这个配置上之后,重新连接客户端,ping 192.168.2.200 能通吗?
ik
168 天前
哦 看反了, 路由器应该已经有路由指向了
findwho
168 天前
@ik 我的 4G 路由器不在手边,需要明天再试了,不过我现在在服务器上 ping 192.168.2.200 是不通的
blackeeper
168 天前
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
cdlnls
168 天前
@findwho
这位老哥 @blackeeper 是正解
findwho
168 天前
@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 这边。
blackeeper
168 天前
不可以这么理解,我上面那个是暴露 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 )
findwho
168 天前
@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
ochatokori
168 天前
要在 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
blackeeper
168 天前
@findwho
你的 openVPN 服务器开启了 ip 转发没有?命令如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
findwho
168 天前
@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 不同,那就是客户端要增加路由表
findwho
168 天前
@blackeeper 这个肯定开了啊。之前用 pptp 协议的时候,是能用的啊。就是被封了。
findwho
168 天前
这个是路由表
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
blackeeper
168 天前
@findwho openVPN 服务的路由表没问题,加了 openVPN 配置,你的 client1 ,client2 要重连一下 openVPN 。
如果还不通的,可以贴一下 client1 ,client2 的路由表
findwho
168 天前
客户端已经重新连接过,按道理应该是服务器先能 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
findwho
168 天前
那个 4g 路由器只要一推路由设置,我就没法进入后台,使用无线或者有线都不行,在联系客服帮我看一下。所以贴不了 client1 的路由。
blackeeper
168 天前
@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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/994308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX