我正在尝试设置一个 OpenVPN tun 来连接两个局域网
开放的 vpn 连接已启动并正常工作,但我的路由或 nat 或其他东西存在问题。
我需要的是一个示例,说明在服务器和客户端上,一个有效的、路由的 openvpn 设置在什么样子。主要是路由表、Nat 转换、防火墙等。
我的 OpenVPN 客户端可以访问服务器端的网络,但我的服务器甚至无法 ping 通我的 OpenVpn 客户端的eth0
我的服务器路由:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.3.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 192.168.4.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
我的客户路由:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.64.64.64 0.0.0.0 UG 0 0 0 3g-wan 10.8.0.0 10.8.0.9 255.255.255.255 UGH 0 0 0 tun0 10.8.0.9 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 3g-wan 192.168.1.0 10.8.0.9 255.255.255.0 UG 0 0 0 tun0 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
这是由 openvpn 使用以下命令自动设置的:
push "route 192.168.1.0 255.255.255.0"
路由 192.168.3.0 255.255.255.0
路由 192.168.4.0 255.255.255.0
以及客户端配置目录中的 iroute 命令
如果有人能建议我需要检查的东西,我会非常感激 Alex
编辑1#
OpenVPN服务器配置:
port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/mom_server.crt
key /etc/openvpn/keys/mom_server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
client-to-client
route 192.168.3.0 255.255.255.0
push "route 192.168.3.0 255.255.255.0"
route 192.168.4.0 255.255.255.0
push "route 192.168.4.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
chroot /etc/openvpn
group nogroup
daemon
persist-key
persist-tun
status openvpn-status.log
verb 3
在 /etc/openvpn/ccd/flexo_client 中
iroute 192.168.3.0 255.255.255.0
iroute 192.168.4.0 255.255.255.0
编辑2#
我已经完成了这项工作,请参阅此处以获取解决方案:
答案1
OP 将答案发布在论坛
使用此服务器配置:
port 1194
proto udp
dev tun
topology subnet
mode server
tls-server
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt # flexo_client,10.8.0.4
client-config-dir ccd
client-to-client
#ifconfig 10.8.0.1 255.255.255.0
route 192.168.3.0 255.255.255.0 10.8.0.4
route 192.168.4.0 255.255.255.0 10.8.0.4
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/mom_server.crt
key /etc/openvpn/keys/mom_server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
keepalive 10 120i
comp-lzo
user nobody
chroot /etc/openvpn
group nogroup
daemon
persist-key
persist-tun
status openvpn-status.log
verb 3
使用此 /etc/openvpn/ccd/flexo_client
push "route 192.168.1.0 255.255.255.0 10.8.0.1"
iroute 192.168.3.0 255.255.255.0
iroute 192.168.4.0 255.255.255.0
以及这个客户端配置:
config openvpn 'flexo_client'
option nobind '1'
option float '1'
option client '1'
option comp_lzo '1'
option dev 'tun0'
option verb '3'
option persist_tun '1'
option persist_key '1'
option remote_cert_tls 'server'
option remote 'x.x.x.x'
option proto 'udp'
option resolv_retry 'infinite'
option ca '/etc/openvpn/ca.crt'
option cert '/etc/openvpn/flexo_client.crt'
option key '/etc/openvpn/flexo_client.key'
option ns_cert_type 'server'
option topology 'subnet'
option enable '1'
有关使用的更多信息OpenVPN 和 iroute可以在 backreference.org 上找到
答案2
我遇到过类似的问题,我最初能够从服务器连接到客户端,但一段时间不活动后,我失去了这种能力。我正在使用
静态密钥、p2p 拓扑、udp 协议和 TUN
我已经通过添加解决了这个问题
keepalive 20 120
发送给服务器和客户端。这将导致每 20 秒发送一次 ping,如果 120 秒内没有收到回复,则认为连接已断开。