PVE网络NAT配置+外部访问内部虚拟机服务配置

最近买了一个mini主机,放在公司,装了PVE系统,辅助开发,打包和学习使用。新电脑上网需要向公司运维备案电脑的mac地址,于是就向运维报备了MAC地址。默认PVE是只创建了一个网桥(交换机),内部的虚拟机相当于直连了公司的网络,这样每创建一个虚拟机都要找网管去备案,还要占用公司一个固定的ip地址资源,这样还是挺麻烦的。但是它的优势也非常明显,它与我的工作主机同在一个局域网,我访问虚拟机的时候就非常方便。

本着多一事不如少一事的原则,pve内部使用nat方式更好一些,这样我可以随意的创建和删除虚拟机,但就是工作主机访问内部虚拟机会麻烦一点,需要转一个端口转发,完整的配置如下:

PVE的网络配置:

  • ip地址: 192.168.32.250
  • 子网掩码:255.255.255.0
  • 网关: 192.168.32.254

虚拟机内部网络:

10.10.10.0/24

工作主机:

192.168.32.109

bash 复制代码
auto lo
iface lo inet loopback

iface enp2s0 inet manual

#系统默认创建的交换机,保持不动
auto vmbr0
iface vmbr0 inet static
        address 192.168.32.250/24
        gateway 192.168.32.254
        bridge-ports enp2s0 #该虚拟交换机与真实的物理网口进行绑定
        bridge-stp off
        bridge-fd 0

#再创建一个虚拟路由器(网关)
auto vmbr1          
iface vmbr1 inet static
        address  10.10.10.1
        netmask  255.255.255.0
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward #打开IP转发
        post-up echo 1 > /proc/sys/net/ipv4/conf/eno1/proxy_arp #代理 ARP 允许一个主机在一个子网上代表另一个主机响应 ARP 请求,ARP 是一种用于将 IP 地址解析为 MAC(Media Access Control)地址的协议
        #转发IPv4流量到虚拟机,使虚拟机与外网联通。
        #SNAT 内网转外网,当内部虚拟器需要访问外网时走这条规则
        post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE # -A添加规则
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE # -D删除规则
        #DNAT 外网转内网,当外部访问内部虚拟机的服务器时走这条规则
        post-up iptables -t nat -A PREROUTING -i vmbr0 -d 192.168.32.250 -p tcp --dport 8080 -j DNAT --to 10.10.10.100:80 # -A添加规则
        post-down iptables -t nat -D PREROUTING -i vmbr0 -d 192.168.32.250 -p tcp --dport 8080 -j DNAT --to 10.10.10.100:80 # -D删除规则

经过上面的配置,我就可以\

  • 在虚拟机里访问外部网络
  • 在ip是192.168.32.109的工作主机上通过http://192.168.32.250:8080 访问pve内部虚拟机10.10.10.100:80上面的服务了
相关推荐
志栋智能16 分钟前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡37 分钟前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery44 分钟前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB1 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧1 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery1 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo2 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺2 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
前端精髓2 小时前
调用大模型API
运维·服务器·microsoft
跨境小彭3 小时前
Temu 全托管模式下,SKU 利润核算的实践复盘
大数据·运维·人工智能·自动化·temu