我正在运行一个OpenVPN服务器,我想分配一个特定的客户端一个静态IP。
这是我的server.conf。 我认为这将configuration虚拟IP池从10.5.24.209到10.5.24.223。
port 443 proto tcp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem auth SHA512 tls-auth ta.key 0 topology subnet server 10.5.24.208 255.255.255.240 #This netmask should span IPs .208-.223. ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 168.xx.xx.xx" keepalive 10 120 cipher AES-256-CBC comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem client-to-client client-config-dir ccd
这是/etc/openvpn/ccd/W7LocalVM ,其中W7LocalVM是我的客户端的公用名。 我不太明白这个指令是干什么的,但我认为第一个IP应该是我的客户端所需的静态IP,第二个IP应该是我的服务器的IP。
ifconfig-push 10.5.24.210 10.5.24.209
但是,当我尝试连接我的客户端与此服务器configuration时,出现以下错误:
Mon Aug 07 14:07:34 2017 Set TAP-Windows TUN subnet mode network/local/netmask = 10.5.24.208/10.5.24.210/10.5.24.209 [SUCCEEDED] Mon Aug 07 14:07:34 2017 MANAGEMENT: Client disconnected Mon Aug 07 14:07:34 2017 ERROR: --ip-win32 dynamic [offset] : offset is outside of --ifconfig subnet Mon Aug 07 14:07:34 2017 Exiting due to fatal error
我以为IP 10.5.24.210将在服务器端定义的子网内,我不明白为什么我得到这个错误。 任何人都可以帮我解决这个问题吗?
这个问题是由于openvpn试图parsing你的ifconfig选项作为一个ip后跟一个子网掩码而产生的。
根据手册页:
– 拓扑模式
…
子网 – 通过使用本地IP地址和子网掩码configurationtun接口,使用子网而不是点对点拓扑,类似于–dev tap和ethernet桥接模式中使用的拓扑。 此模式为每个连接客户端分配一个IP地址,并在Windows上运行。 只有当服务器和客户端是OpenVPN 2.1或更高版本,或OpenVPN 2.0.x已经用–topology指令代码手动修补时才可用。 在Windows上使用时,需要8.2或更高版本的TAP-Win32驱动程序。 在* nix上使用时,要求tun驱动程序支持ifconfig(8)命令,该命令设置子网而不是远程端点IP地址。
这个选项存在于OpenVPN 2.1或更高版本中。
注意:使用–topology子网将–ifconfig参数的解释更改为“address netmask”,不再是“本地远程”。
–ifconfig l rn
设置TUN / TAP适配器参数。 l是本地VPN端点的IP地址。 对于点对点模式下的TUN设备,rn是远程VPN端点的IP地址。 对于TAP设备或与拓扑子网一起使用的TUN设备 , rn是正在创build或连接的虚拟网段的子网掩码 。 对于便于虚拟点对点IP连接的TUN设备(当用于–topology net30或p2p模式时),正确使用–ifconfig是使用两个不是任何现有子网成员的私有IP地址正在使用中。 IP地址可以是连续的,并且应该在远程对等体上颠倒它们的顺序。 在build立VPN之后,通过ping ping,您将ping通VPN。
对于TAP设备,它提供了….
在你的服务器代码里,你把你的拓扑设置为subnet ,然后使用server语句把它推送到客户端。
根据上面的文档,不要使用“local”,“remote”地址来推送你的ifconfig,你需要在“/ etc / openvpn / ccd / W7LocalVM”中添加以下内容:
ifconfig-push 10.5.24.210 255.255.255.252 push route 10.5.24.210 255.255.255.252 # ifconfig 10.5.24.209 255.255.255.252
最后一行可能不需要,但是作为例子,在服务器端ifconfig-push“应该”做什么来使连接正常工作。