OpenVPN:如何从服务器端为客户端分配特定的网络掩码?

OpenVPN:如何从服务器端为客户端分配特定的网络掩码?

我有一个OpenVPN服务器运行Ubuntu Linux v14
这是是否配置对于连接的客户端:

luis@Zarzamoro:/etc/openvpn$ sudo ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:192.168.211.141  P-t-P:192.168.211.142  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我想要网络掩码任何连接客户端的255.255.255.0,而不是255.255.255.255

当然,我可以将其更改为客户端通过多种方式,例如:

# ifconfig tun0 netmask 255.255.255.0 up

...一些脚本/etc/network/if-up.d/等等。

但我想这么做从服务器,如果可能的话。
这是:任何连接的客户端将会收到(来自 OpenVPN 服务器)类似如下的内容:

luis@Zarzamoro:/etc/openvpn$ sudo ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:192.168.211.141  P-t-P:192.168.211.142  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

这能做到吗?

对双方都适用的答案Windows 和 Linux 客户端是首选。

答案1

更改topology 范围/etc/openvpn/server.conf(或任何地方):

# Network topology:
topology subnet

并指定 IP 地址池(包括网络掩码) 在同一个文件中(注释仅显示示例数字,因此请用您的数字替换):

# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
#server 10.8.0.0 255.255.255.0
server 192.168.211.0 255.255.255.0

顺便重启服务器:

$ sudo /etc/init.d/openvpn restart

就这些了。

补充要点:

  • 根据手册页默认的拓扑模式是net30,所以需要更改。
  • 根据同一手册页,拓扑子网模式works only on OpenVPN v2.1 or higher

相关内容