在配置VPN时使用双网卡(例如一张内网卡、一张外网卡)是一种常见的网络架构,可以增强安全性或实现流量分离,以下是关键点、配置步骤及注意事项:
常见应用场景
- 内外网隔离
内网卡连接公司/内部网络,外网卡连接互联网,避免直接暴露内网。
- VPN服务器部署
外网卡接收VPN客户端连接,内网卡访问内部资源(如数据库、文件服务器)。
- 流量分流
通过策略路由将VPN流量与非VPN流量分开处理。
配置步骤(以Linux为例)
确认网卡信息
ip aifconfig
记录网卡名称(如 eth0、eth1)及分配的IP地址。
启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward # 永久生效(添加到 /etc/sysctl.conf) sysctl -w net.ipv4.ip_forward=1
配置防火墙规则(iptables)
假设:
eth0:外网卡(VPN客户端连接)eth1:内网卡(访问内网资源)
# 允许VPN流量进入(如OpenVPN默认端口1194) iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT # 允许内网卡通信 iptables -A INPUT -i eth1 -j ACCEPT # NAT转发:将VPN流量通过内网卡路由到内网 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE # 保存规则(根据系统选择) iptables-save > /etc/iptables.rules
配置VPN服务(以OpenVPN为例
编辑配置文件 /etc/openvpn/server.conf:
# 指定外网卡监听 proto udp port 1194 dev tun # VPN子网和内网路由 server 10.8.0.0 255.255.255.0 push "route 192.168.1.0 255.255.255.0" # 推送内网路由给客户端
启动服务
systemctl start openvpn@server systemctl enable openvpn@server
Windows双网卡VPN配置
-
网卡优先级调整
- 进入
控制面板 > 网络和共享中心 > 更改适配器设置。 - 按
Alt键调出菜单,选择 高级 > 高级设置,调整网卡顺序(优先内网卡)。
- 进入
-
路由表配置
- 手动添加路由,确保VPN流量走外网卡:
route add 0.0.0.0 mask 0.0.0.0 外网网关 metric 1 route add 内网网段 mask 255.255.255.0 内网网关 metric 2
- 手动添加路由,确保VPN流量走外网卡:
注意事项
-
安全策略
- 严格限制内网卡的访问权限(如防火墙仅允许必要端口)。
- 禁用外网卡的IP转发(除非必要)。
-
路由冲突
- 避免内外网子网重叠(如都使用
168.1.0/24)。
- 避免内外网子网重叠(如都使用
-
VPN协议选择
推荐使用安全协议(如OpenVPN with TLS或WireGuard)。
-
多网卡绑定(可选)
- 如需高可用性,可配置网卡绑定(bonding)模式(如
mode=1主备冗余)。
- 如需高可用性,可配置网卡绑定(bonding)模式(如
故障排查
-
VPN客户端无法连接
- 检查外网卡防火墙是否放行端口。
- 使用
tcpdump抓包分析:tcpdump -i eth0 udp port 1194
-
内网无法访问
- 检查路由表:
ip route或route print(Windows)。 - 验证NAT规则是否正确:
iptables -t nat -L -n -v
- 检查路由表:
通过合理配置双网卡,可以实现VPN流量的安全隔离和高效转发,根据实际需求调整防火墙、路由及VPN服务参数即可。


