You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统下OpenVPN客户端通过VLAN分离以太网端口实现网络共享的配置协助

Ubuntu系统下OpenVPN客户端通过VLAN分离以太网端口实现网络共享的配置协助

嘿,我来一步步帮你搞定这个配置!咱们分阶段来,确保每一步都清晰可操作,遇到问题随时停住查细节就行。

一、前期准备与环境确认

首先得搞清楚你的Ubuntu系统里的硬件和软件状态:

  • 确认以太网端口名称:打开终端执行 ip link show,找到你的物理以太网接口(比如 enp0s3、eth0 这类),记下来后面要用。
  • 安装OpenVPN客户端:如果还没装,执行 sudo apt update && sudo apt install openvpn -y。
  • 准备好你的OpenVPN客户端配置文件(.ovpn格式),比如从VPN服务商那里获取的配置。

二、配置VLAN分离以太网端口

我们需要给物理以太网口创建一个VLAN子接口,用来专门对接要共享VPN的设备:

  1. 创建VLAN子接口(这里以VLAN ID 10、物理口为enp0s3为例,你可以改成自己的ID和接口名):
    sudo ip link add link enp0s3 name enp0s3.10 type vlan id 10
    
  2. 启用这个VLAN子接口:
    sudo ip link set enp0s3.10 up
    
  3. 给VLAN子接口设置静态IP(选一个和你本地主网络不冲突的网段,比如192.168.10.1/24):
    sudo ip addr add 192.168.10.1/24 dev enp0s3.10
    
  4. 为了重启后自动恢复这个配置,你可以编辑 /etc/netplan/00-installer-config.yaml(或者你对应的netplan配置文件),添加以下内容:
    network:
      ethernets:
        enp0s3:
          dhcp4: true
      vlans:
        enp0s3.10:
          id: 10
          link: enp0s3
          addresses: [192.168.10.1/24]
      version: 2
    
    然后执行 sudo netplan apply 生效配置。

三、配置OpenVPN客户端并绑定路由

接下来确保OpenVPN连接后,VLAN子接口的流量能通过VPN隧道走:

  1. 把你的OpenVPN配置文件(比如client.ovpn)复制到/etc/openvpn/client/目录下:
    sudo cp ~/Downloads/client.ovpn /etc/openvpn/client/client.conf
    
  2. 启动并设置开机自启OpenVPN客户端服务:
    sudo systemctl start openvpn@client
    sudo systemctl enable openvpn@client
    
  3. 检查OpenVPN连接状态,确认tun0接口(VPN隧道接口)已创建:
    ip link show tun0
    
    如果看到tun0状态是UP,说明连接成功。

四、设置网络共享(NAT转发)

现在需要让Ubuntu扮演路由器的角色,把VLAN子接口的流量通过VPN隧道转发出去:

  1. 开启IPv4转发功能:
    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    
    为了重启后保持开启,编辑/etc/sysctl.conf,找到net.ipv4.ip_forward=1这一行,去掉前面的注释符#,然后执行:
    sudo sysctl -p
    
  2. 配置iptables的NAT规则,让VLAN网段的流量通过tun0接口做地址转换:
    sudo iptables -t nat -A POSTROUTING -o tun0 -s 192.168.10.0/24 -j MASQUERADE
    
  3. 保存iptables规则,避免重启后失效:
    sudo apt install iptables-persistent -y
    
    安装时会弹出提示,选择Yes保存当前的iptables规则。

五、配置DHCP服务(让设备自动获取IP)

为了让连接到VLAN端口的设备能自动获取IP和DNS,我们用dnsmasq做轻量DHCP服务器:

  1. 安装dnsmasq:
    sudo apt install dnsmasq -y
    
  2. 编辑/etc/dnsmasq.conf,添加以下配置(记得替换成你自己的VLAN接口和网段):
    # 只在VLAN子接口上提供DHCP服务
    interface=enp0s3.10
    # 分配IP的范围和租期
    dhcp-range=192.168.10.10,192.168.10.50,255.255.255.0,24h
    # 网关地址(就是VLAN子接口的IP)
    dhcp-option=3,192.168.10.1
    # DNS服务器地址(可以用公共DNS或者VPN提供的DNS)
    dhcp-option=6,8.8.8.8,8.8.4.4
    
  3. 重启dnsmasq服务:
    sudo systemctl restart dnsmasq
    sudo systemctl enable dnsmasq
    

六、验证配置是否生效

现在可以拿一台设备连接到你的VLAN以太网端口(注意要配置对应VLAN ID的标签,或者如果你的交换机是access模式,直接插线就行),然后:

  • 检查设备是否获取到192.168.10.0/24网段的IP
  • 尝试ping公共IP(比如8.8.8.8),看是否能通
  • 尝试访问需要通过VPN才能访问的资源,确认是否正常

常见故障排查

如果遇到问题,可以从这几个方向查:

  • 检查VLAN子接口状态:ip addr show enp0s3.10,确认IP正确且接口UP
  • 检查OpenVPN连接:sudo systemctl status openvpn@client,看是否有报错
  • 检查iptables规则:sudo iptables -t nat -L,确认POSTROUTING规则存在
  • 检查DHCP服务:sudo systemctl status dnsmasq,或者用dnsmasq --test检查配置文件语法

如果还有具体的报错或者现象,随时告诉我细节,我再帮你调整!

备注:内容来源于stack exchange,提问作者Master

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 09:12:57