为 OVH 服务器 Proxmox VE 配置 IPv4 和 IPv6

编辑于:2026年01月09日

为 OVH 服务器 Proxmox VE 配置 IPv4 和 IPv6

OVH 后台虽仅显示单个IPv6(/128),实则分配了/64子网,可用地址高达2⁶⁴ 个,详见:测试 OVH 独立服务器 IPv6 的 IP 地址到底有多少个?。基于此,在 Proxmox VE 中配置路由模式,即可实现虚拟机共享 IPv4 出口,并分配独立的 IPv6 地址。

⚠️提醒:

有些 AI 会告诉你:OVH 不能使用虚拟机生成的 MAC 地址。实际上过滤仅针对 IPv4,IPv6 不受此限。若需为虚拟机配置独立 IPv4,必须购买附加 IP(Failover IP)并绑定虚拟 MAC。鉴于本文仅聚焦于 “共享 IPv4 + 独立 IPv6” 方案,独立 IPv4 的相关设置此处不做展开。

1. 查看服务器网络配置

OVH IPv4 IPv6

如图所示,从 OVH 后台看到这台服务器网络配置为:

IPv4
地址:54.38.122.125
网关:54.38.122.254

IPv6
地址:2607:5300:313:3d22::1/128(实际为/64)
网关:2607:5300:0203:3dff:00ff:00ff:00ff:00ff

那么共享 IPv4 的出口就是54.38.122.125,独立 IPv6 可以设置为2607:5300:313:3d22::22607:5300:313:3d22::3等。具体有那些可用,你可以直接问 AI “子网 64 IPv6 2607:5300:313:3d22::1 可用的IP有多少,请给出10个示例

2. Proxmox VE 网络设置

以使用 Proxmox VE 创建 Win 虚拟机为例,以下是完整的操作步骤:

2.1 备份原文件(极度推荐)

在修改前,先备份一下,万一改错了还能救回来。

cp /etc/network/interfaces /etc/network/interfaces.bak

2.2 打开文件

使用nano编辑器打开配置:

nano /etc/network/interfaces

2.3 编辑内容

  • ⭕移动光标:使用键盘上的上下左右箭头。
  • ⭕删除内容:使用BackspaceDelete键。
  • ⭕清空全屏:如果你想把旧的全部删掉粘贴新的,可以一直按Ctrl + K(剪切当前行)直到清空。
  • ⭕粘贴:在 SSH 客户端(如 PuTTY, PowerShell)中,通常点击鼠标右键就是粘贴。

以上是 nano 编辑器操作时的常用命令,请参考如下配置进行修改默认网卡和新建网卡。

# ---系统默认网卡设置 ---
auto vmbr0
iface vmbr0 inet static
    # 你的宿主机 IPv4 (保持默认)
    address 54.38.122.125/24
    # 你的宿主机 IPv4 网关 (保持默认)
    gateway 54.38.122.254
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    # 物理网卡 MAC 地址 (保持默认)
    hwaddress AA:BB:CC:DD:EE:FF
    # [新增] 强制开启 IPv4 转发,确保 NAT 100% 可用
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward

iface vmbr0 inet6 static
    # 宿主机自用 IPv6,默认为 128 改为 64
    address 2607:5300:313:3d22::1/64
    # OVH 官方 IPv6 网关 (保持默认)
    gateway 2607:5300:0203:3dff:00ff:00ff:00ff:00ff
    # [Forwarding: 确保宿主机能转发包]
    # all: 覆盖当前所有接口
    post-up echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
    # default: 确保未来新建的接口(如 tap/veth)也默认开启
    post-up echo 1 > /proc/sys/net/ipv6/conf/default/forwarding

    # [NDP Proxy: 确保宿主机能代答]
    # all: 确保内核全局允许该行为
    post-up echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp
    # default: 确保未来接口继承该行为
    post-up echo 1 > /proc/sys/net/ipv6/conf/default/proxy_ndp
    # vmbr0: 明确在外网口开启(最重要的一行)
    post-up echo 1 > /proc/sys/net/ipv6/conf/vmbr0/proxy_ndp

# --- LAN 接口 (虚拟机专用内网) ---
auto vmbr1
iface vmbr1 inet static
    # 内网网关 IPv4
    address 192.168.100.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0

    # [IPv4 NAT] 开启伪装上网,把来自 192.168.100.0/24 的流量,伪装成 vmbr0 的公网 IP 发出去
    post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
    # 关机清理,删除规则
    post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE

    # IPv4 端口映射示例,宿主机 3389 -> Windows 3389 (建议仅在需要远程桌面时开启,同时为了安全,建议更改默认的3389端口)
    # post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.100.2:3389
    # post-up iptables -t nat -A PREROUTING -i vmbr0 -p udp --dport 3389 -j DNAT --to-destination 192.168.100.2:3389

# --- IPv6 路由与白名单管理区域 ---
iface vmbr1 inet6 static
    # [修改] 虚拟机用的 IPv6 网关地址
    address 2607:5300:313:3d22::2/64

    # ================= 虚拟机列表 (在此处添加) =================

    # [虚拟机 A - Windows]
    # IP: 2607:5300:313:3d22::3
    # 1. 告诉 OVH:该 IP 在我这 (NDP Proxy)
    post-up ip -6 neigh add proxy 2607:5300:313:3d22::3 dev vmbr0
    # 2. 告诉 内核:该 IP 往 vmbr1 走 (Routing)
    post-up ip -6 route add 2607:5300:313:3d22::3/128 dev vmbr1

# 加载 SDN 配置 (保留此行在文件末尾)
# Proxmox VE 系统自带的配置文件,用于支持“软件定义网络”(Software Defined Network)功能
source /etc/network/interfaces.d/*

2.4 保存与退出(关键步骤)

修改完成后,请按以下组合键:

  • ⭕1. 保存 (Write Out): 按 Ctrl+O (是字母 O,不是零)。
  • ⭕2. 确认文件名:屏幕底部会出现文件名提示,按Enter(回车) 确认。
  • ⭕3. 退出 (Exit):按Ctrl+X离开编辑器。

2.5 应用更改

Proxmox 环境下,应用网络配置最安全、推荐的命令是:

ifreload -a

如果没有报错,说明配置生效了。如果有错误,它通常会提示且不会应用错误配置,防止失联。如果网络通畅,我们接下来可以在 Windows 虚拟机里配置 IP 了。

3. Windows 虚拟机

由于宿主机采用的是路由模式 (Routing),Windows 虚拟机不能自动获取 IP,必须手动填写静态 IP

win 系统控制面板设置静态IP地址

请登录 Windows 虚拟机,打开控制面板 -> 网络和共享中心 -> 更改适配器设置,右键点击网卡选择属性

3.1 配置 IPv4 (用于 NAT 上网)

双击Internet 协议版本 4 (TCP/IPv4),选择使用下面的 IP 地址:

  • ⭕IP 地址:192.168.100.2 (或者是您想设定的 2~254 之间的任意数字)
  • ⭕子网掩码:255.255.255.0
  • ⭕默认网关:192.168.100.1 (重要:这是宿主机 vmbr1 的地址)
  • ⭕首选 DNS:8.8.8.8 (Google)
  • ⭕备用 DNS:1.1.1.1 (Cloudflare)

3.2 配置 IPv6 (用于独立公网 IP)

双击Internet 协议版本 6 (TCP/IPv6),选择使用下面的 IPv6 地址:

这里必须严格对应您在宿主机/etc/network/interfacespost-up路由部分写好的那个 IP。

  • ⭕IPv6 地址:2607:5300:313:3d22::3 (这就是刚才生成的那个复杂 IP,必须与宿主机配置一致)
  • ⭕子网前缀长度:64
  • ⭕默认网关:2607:5300:313:3d22::2 (极度重要:这里绝对不能填 OVH 的官方网关...ff:ff,必须填宿主机 vmbr1 的 IPv6 地址)
  • ⭕首选 DNS:2001:4860:4860::8888 (Google IPv6 DNS)
  • ⭕备用 DNS:2606:4700:4700::1111 (Cloudflare IPv6 DNS)

3.3注意事项

win 10/11系统设置静态IP地址

对于 Windows 10/11 系统不要使用现代设置面板(如上图)进行配置,请务必按照教程演示的步骤通过控制面板入口进行设置。因为这个面板在处理复杂的静态 IPv6 配置时非常脆弱,经常因为格式校验或底层驱动未响应而无法保存,提示网络错误。

3.4 验证连通性

配置完成后点击确定保存。打开 Windows 的 CMD (命令提示符),依次测试:

💡测试 IPv4 (NAT):

ping 8.8.8.8

如果通了,说明宿主机的 iptables MASQUERADE 也就是 NAT 伪装生效了

💡测试 IPv6 (公网直连):

ping -6 google.com

如果通了,说明宿主机的 IPv6 转发 (forwarding) 和 NDP 代理 (proxy_ndp) 以及路由 (route add) 全部成功。

4.其它网络方案

4.1 桥接模式

因为 OVH 并不过滤 IPv6 的 MAC 地址,所以想要实现为每个虚拟机分配独立 IPv6 会有更简单的操作方案:

只需要将宿主机默认网络配置中的 IPv6 子网数由128改为64,其它不用任何修改。然后在 WIN 系统手动设置网络,IPv6 填写2607:5300:313:3d22::3 子网前缀长度64网关为后台默认的2607:5300:0203:3dff:00ff:00ff:00ff:00ff DNS:2001:4860:4860::8888,虚拟机就可以上网了。

这个方案的优点是操作非常简单,缺点也很明显:你的虚拟机会直接接收到 OVH 物理网络上的所有广播包,如果该机房网段有人中毒发包,你的虚拟机防火墙会一直处于繁忙状态。

特性 桥接模式 (Bridged) 路由模式 (Routed)
闲置 IP (::3) 处理 请求会被广播给所有虚拟机 请求被宿主机拦截/忽略
抗扫描能力 差。全网段扫描会引起“广播风暴”,消耗虚拟机 CPU 强。扫描流量止步于宿主机
隔离性 差。虚拟机处于“公网丛林”中 好。虚拟机处于“私有房间”里
对 OVH 的影响 产生大量未知 MAC 的噪音 只有唯一的物理 MAC 在通信

4.2 使用 WARP 代理

核心目标:

Windows 虚拟机对外访问 IPv4 网站时,隐藏宿主机真实 IP(走 Cloudflare WARP);访问 IPv6 资源时,走直连(利用 OVH 公网 IPv6 带宽)。

实现方式:

PVE 宿主机做 NAT 网关 + LXC 容器做透明代理 + Win 虚拟机添加两个网卡 + Clash Verge 做智能分流。

网络拓扑:

[ Windows VM ]
   |-- 网卡1 (IPv6): 直连公网 (vmbr0) ----> [ 极速访问 IPv6 资源 ]
   |-- 网卡2 (IPv4): 内网互联 (vmbr1)
          |
          v
   [ PVE 宿主机 (vmbr1 网关) ]
          |
          v
   [ LXC 容器 (Docker WARP) ]
          | (SOCKS5 隧道)
          v
   [ Cloudflare 网络 ] -------------------> [ 隐身访问 IPv4 资源 ]

配置文件:

auto vmbr0
iface vmbr0 inet static
        address 54.38.122.125/24
        gateway 54.38.122.254
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        hwaddress A4:BF:01:1F:EF:F0

iface vmbr0 inet6 static
        address 2607:5300:313:3d22::1/64
        gateway 2001:41d0:403:1eff:ff:ff:ff:ff

source /etc/network/interfaces.d/*

# --- [Internal NAT Bridge] ---
auto vmbr1
iface vmbr1 inet static
    address 192.168.100.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    # 1. 开启内核转发功能 (允许宿主机做路由器)
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    # 2. 开启 NAT (伪装): 把来自 192.168.100.0/24 的流量,伪装成 vmbr0 的公网 IP 发出去
    post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
    # 3. (关机清理) 删除规则
    post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE

4.3 使用其它VPS端口转发

可的通过另一台 VPS 使用 iptables 内核级的做转发出口

5.问题排查

5.1 无法连接

窗口 1:监听宿主机外网口 (看看包来了没)

#3389为默认远程桌面端口,本次使用网卡 vmbr0
tcpdump -n -i vmbr0 port 3389
  • ⭕现象: 当你发起远程连接时,应该能看到你的真实 IP 发来的 SYN 包。
  • ⭕如果没反应: 说明连宿主机大门都没进,检查 OVH 后台防火墙或你本地网络。

窗口 2:监听宿主机内网口 (看看包转发给 VM 了没)

#3389为默认远程桌面端口,本次使用网卡 vmbr1
tcpdump -n -i vmbr1 port 3389
  • ⭕现象 A (有包但没回音):屏幕一直在滚动,说明宿主机帮你转发了,是 Windows 没回。
  • ⭕可能原因:Windows 网关填错了(没填 192.168.100.1),或者 Windows 防火墙虽然放行了 IPv6 但限制了 IPv4 来源。
  • ⭕现象 B (完全静默):窗口 1 有包,但窗口 2 没反应。
  • ⭕可能原因:宿主机丢包了。这就是典型的 FORWARD 链被拒绝或者 PVE 防火墙干扰。

相关推荐

暂无评论