在现代企业网络架构中,Ubuntu服务器常被用作远程访问、数据传输和虚拟化平台的核心节点,当用户需要通过VPN连接访问远程私有网络时,往往还希望将特定流量定向到该私有网络(例如访问内网数据库或文件共享),这就要求我们在Ubuntu系统中同时配置VPN(如OpenVPN或WireGuard)和静态路由,本文将详细介绍如何在Ubuntu系统中完成这一关键配置,确保网络连通性与安全性并存。
我们以OpenVPN为例进行说明,假设你已成功安装并启动了OpenVPN客户端,且配置文件(如client.ovpn)已正确放置于/etc/openvpn/目录下,使用以下命令启动服务:
sudo openvpn --config /etc/openvpn/client.ovpn
OpenVPN会创建一个虚拟接口(通常是tun0),并分配一个IP地址,你可以通过ip addr show tun0查看其状态,但问题来了:默认情况下,所有流量都会经过这个隧道,这可能不是我们想要的——比如你想让公司内部IP段(如192.168.100.0/24)走VPN,而公网流量仍走本地网卡(如eth0)。
这时就需要添加静态路由,静态路由的作用是告诉系统“如果目标地址属于某个网段,请通过指定网关转发”,在Ubuntu中,我们可以使用ip route add命令手动添加路由规则,若你的OpenVPN服务器分配的子网为192.168.100.0/24,且它通过8.0.1(OpenVPN服务器IP)可达,则执行:
sudo ip route add 192.168.100.0/24 via 10.8.0.1 dev tun0
这样,任何发往192.168.100.0/24的数据包都会被发送到tun0接口,从而通过VPN隧道传输。
更进一步,为了使路由在重启后依然生效,你需要将静态路由写入系统配置文件,Ubuntu通常使用/etc/network/interfaces或/etc/netplan/*.yaml来管理网络配置,如果你使用的是Netplan(Ubuntu 18.04及以上版本默认),可在对应的YAML文件中添加:
network:
version: 2
ethernets:
eth0:
dhcp4: true
tunnels:
tun0:
mode: sit
local: <your-local-ip>
remote: <openvpn-server-ip>
addresses: [<tun0-ip>]
routes:
- to: 192.168.100.0/24
via: 10.8.0.1
注意:Netplan对Tunnel支持有限,推荐直接使用/etc/rc.local或systemd服务脚本,在系统启动时自动执行ip route add命令,确保持久性。
还需考虑防火墙策略,确保iptables或ufw允许通过tun0接口的流量,并设置SNAT/NAT规则(如有需要)。
sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o tun0 -j MASQUERADE
验证配置是否成功:使用ping测试目标内网主机;使用ip route show查看路由表是否包含新增的静态路由;检查日志(journalctl -u openvpn)确认无错误。
在Ubuntu中结合VPN与静态路由,可灵活控制流量走向,适用于混合云、远程办公、多站点互联等场景,掌握这一技能,不仅提升网络部署效率,也增强对Linux网络栈的理解,建议在生产环境前先在测试环境中充分验证,确保稳定可靠。

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN






