我正在建立一个 OpenVPN 网络。这个想法是连接到 VPN 的服务器获得一个固定的 IP,而客户端(使用服务器的服务)获得 dhcp ip。
- 服务器应该获得一个IP
10.10.0.1 - 10.10.0.254
- 客户端应该获得一个IP
10.10.1.1 - 10.10.255.254
我当前的设置如下所示:
- OpenVPN 服务器 10.10.0.1
- 应用程序服务器 10.10.0.20 <- 通过 ccd 静态
- 客户端 10.10.1.2 <- DHCP
我实现了我的客户获得正确范围内的 DHCP 地址。他们还能够 ping OpenVPN 服务器,反之亦然。
我还能够为服务器配置客户端特定配置,以便它们获得静态 IP,但由于某种原因,它们无法 ping OpenVPN 服务器,我也无法从 OpenVPN 服务器 ping 客户端。
有人可以帮我找出我配置错误的地方吗?
OpenVPN 配置文件
OpenVPN 服务器配置:
port 3194
proto udp
dev tun
mode server
ca server_cert/ca.crt
cert server_cert/ovpn-server.crt
key server_cert/ovpn-server.key # This file should be kept secret
dh server_cert/dh.pem
tls-server
cipher AES-256-CBC
ifconfig 10.10.0.1 255.255.0.0
ifconfig-pool 10.10.1.1 10.10.255.254
route 10.10.0.0 255.255.0.0
push "route-gateway 10.10.0.1 255.255.0.0"
push "route 10.10.0.0 255.255.0.0"
ifconfig-pool-persist ipp.txt
client-config-dir ccd
client-to-client
duplicate-cn
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 6
explicit-exit-notify 1
我的应用程序服务器的客户端特定配置:
ifconfig-push 10.10.0.20 10.10.0.1
我的 client.conf(在应用服务器上使用)
client
dev tun
proto udp
port 3194
remote vpn.domain.com 3194
nobind
cipher AES-256-CBC
ca keys/ca.crt
cert /etc/openvpn/keys/ngin-web01.crt
key /etc/openvpn/keys/ngin-web01.key
log-append /var/log/openvpn.log
verb 6
路线
OpenVPN 服务器 (10.10.0.1):
root@ovpn-srv01:/home/axxmin# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.20.1 0.0.0.0 UG 0 0 0 ens18
10.10.0.0 255.255.0.0 255.255.0.0 UG 0 0 0 tun0
10.128.20.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
255.255.0.0 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
root@ovpn-srv01:/home/axxmin# routel
target gateway source proto scope dev tbl
10.10.0.0/ 16 255.255.0.0 tun0
255.255.0.0 10.10.0.1 kernel link tun0
10.10.0.1 local 10.10.0.1 kernel host tun0 local
default 10.128.20.1 static ens18
10.128.20.0/ 24 10.128.20.6 kernel link ens18
10.128.20.0 broadcast 10.128.20.6 kernel link ens18 local
10.128.20.6 local 10.128.20.6 kernel host ens18 local
10.128.20.255 broadcast 10.128.20.6 kernel link ens18 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
::1 kernel lo
fe80::/ 64 kernel ens18
fe80::/ 64 kernel tun0
::1 local kernel lo local
fe80::1083:7fff:fedd:70c0 local kernel ens18 local
fe80::b24c:97a4:281:de41 local kernel tun0 local
ff00::/ 8 ens18 local
ff00::/ 8 tun0 local
应用服务器 (10.10.0.20)
root@ovpn-srv01:/home/axxmin# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.20.1 0.0.0.0 UG 0 0 0 ens18
10.10.0.0 255.255.0.0 255.255.0.0 UG 0 0 0 tun0
10.128.20.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
255.255.0.0 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
root@ovpn-srv01:/home/axxmin# routel
target gateway source proto scope dev tbl
10.10.0.0/ 16 255.255.0.0 tun0
255.255.0.0 10.10.0.1 kernel link tun0
10.10.0.1 local 10.10.0.1 kernel host tun0 local
default 10.128.20.1 static ens18
10.128.20.0/ 24 10.128.20.6 kernel link ens18
10.128.20.0 broadcast 10.128.20.6 kernel link ens18 local
10.128.20.6 local 10.128.20.6 kernel host ens18 local
10.128.20.255 broadcast 10.128.20.6 kernel link ens18 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
::1 kernel lo
fe80::/ 64 kernel ens18
fe80::/ 64 kernel tun0
::1 local kernel lo local
fe80::1083:7fff:fedd:70c0 local kernel ens18 local
fe80::b24c:97a4:281:de41 local kernel tun0 local
ff00::/ 8 ens18 local
ff00::/ 8 tun0 local
客户端(10.10.1.2):
root@client-device:/home/pi# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.60.1 0.0.0.0 UG 202 0 0 eth0
10.10.0.0 10.10.1.1 255.255.0.0 UG 0 0 0 tun0
10.10.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.128.60.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
root@client-device:/home/pi# routel
target gateway source proto scope dev tbl
10.10.0.0/ 16 10.10.1.1 tun0
10.10.1.1 10.10.1.2 kernel link tun0
10.10.1.2 local 10.10.1.2 kernel host tun0 local
default 10.128.60.1 10.128.60.33 dhcp eth0
10.128.60.0/ 24 10.128.60.33 dhcp link eth0
10.128.60.0 broadcast 10.128.60.33 kernel link eth0 local
10.128.60.33 local 10.128.60.33 kernel host eth0 local
10.128.60.255 broadcast 10.128.60.33 kernel link eth0 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
::1 kernel lo
fe80::/ 64 kernel eth0
fe80::/ 64 kernel tun0
::1 local kernel lo local
fe80::20d4:6b14:ff16:e230 local kernel tun0 local
fe80::65cf:ce3:fc9f:20fa local kernel eth0 local
ff00::/ 8 eth0 local
ff00::/ 8 tun0 local
由于您没有在服务器配置文件中指定拓扑,因此 Openvpn 在
net30
默认模式下工作。在这种模式下,每个客户端都将被分配一个来自 /30 子网的 IP,子网中的另一个可用 IP 将被分配给该隧道的 p2p 地址。ifconfig
该模式下和命令的参数route
是“local-ip peer-ip”,而不是“local-ip netmask”。为了使您的配置工作,您需要包括
行在您的服务器配置中,因此
ifconfig
androute
命令将大部分都可以。唯一的例外是客户端的静态地址分配,应该是而且您不需要推送编辑/更正:您确实需要传播路线,仅当您route 10.10.0.0 255.255.0.0
命令,因为网络掩码和 IPifconfig-push
已经设置了该路由。server
在配置中使用该指令时它才会自动发生。我的错。您可能还需要更改
ifconfig-pool
指令,原因有两个。首先,10.10.1.1
地址不应该是池的一部分,因为它是 VPN 服务器的 IP。其次,由于您不使用默认的 /24 网络掩码,因此最好也指定它: