在配置VPN时,子网(Subnet)的设置是关键部分,它决定了VPN客户端可以访问的网络范围以及IP地址的分配方式,以下是关于VPN子网的详细解释和配置建议:
VPN子网的作用
- 客户端IP分配:VPN服务器通常从指定的子网中分配IP地址给客户端(如
8.0.0/24)。 - 访问内部网络:通过路由推送(Push Route),允许客户端访问企业内网的其他子网(如
168.1.0/24)。 - 避免冲突:子网需与客户端本地网络及服务器内网不重叠(避免同时使用
168.1.0/24)。
常见VPN子网配置
OpenVPN示例
# 推送内网路由,允许客户端访问其他子网 push "route 192.168.1.0 255.255.255.0"
IPSec/L2TP
- 在配置文件(如
/etc/ipsec.conf)中定义子网:virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16
WireGuard
-
服务端配置(
wg0.conf):[Interface] Address = 10.0.0.1/24 # 服务器VPN子网 PrivateKey = <server_private_key> [Peer] AllowedIPs = 10.0.0.2/32 # 客户端IP
关键注意事项
-
子网冲突:确保VPN子网不与客户端本地网络(如家庭/公司网络)冲突。
- 避免使用常见的内网网段(如
168.0.0/24)。 - 推荐使用较冷门的子网(如
8.0.0/24或16.0.0/12)。
- 避免使用常见的内网网段(如
-
路由配置:在VPN服务器上启用IP转发,并配置NAT或路由规则:
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-
多子网访问:若需访问多个内网子网,明确推送所有路由:
push "route 192.168.1.0 255.255.255.0" push "route 172.16.0.0 255.255.0.0"
高级场景
-
拆分隧道(Split Tunnel):仅允许客户端访问特定子网,而非全部流量走VPN:
push "route 192.168.1.0 255.255.255.0" push "redirect-gateway def1 bypass-dhcp" # 注释此行以禁用全流量VPN
-
IPv6支持:若需要IPv6,分配双栈地址:
server-ipv6 2001:db8::/64 push "route-ipv6 2001:db8:1::/64"
故障排查
- 客户端无法访问内网:
- 检查服务器路由表和防火墙规则。
- 确认客户端路由是否生效(如
ip route show或route print)。
- IP冲突:更换VPN子网(如改用
10.0.0/24)。
通过合理规划子网和路由,可以确保VPN既安全又高效,根据实际需求选择子网范围,并始终测试连通性!


