我在公司 Lab 里的一台物理机上跑了最新的 PVE 8.3 ,主要是为了跑 CI/CD ,测试环境需要随时创建一系列 runner VM 。这是大背景。 公司是大内网,10.x.x.x 的,IT 也不管这些内部机器的 DNS 解析啥的。我就在这个 PVE 上自己先建了个 VM 用来跑 PowerDNS 服务,然后配到了 PVE 的 SDN 里,现在已经可以在创建 vm 时自动把这个 vm 的域名登记到 powerDNS 里,这些 vm 用了 192.168....的地址,然后 vm 里也可以联网出去更新系统啥的。VM 本身是用了 SNAT 访问大内网(当然也就能访问互联网)。
现在主要的问题是公司大内网的机器访问这些 SNAT 的 runner 不方便,不能直接 ssh 进去,不知道这种情况各位大拿是怎么解决的?
有个思路是在 PVE 这个主机上直接配 iptable 的规则,类似这样: iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 30022 -j DNAT --to-destination 192.168.200.10:22
![]() |
1
starryloki 7 天前
1. 找 IT 加静态路由指向 PVE
2. 端口映射 |
2
yinmin 7 天前 via iPhone
客户机手工加路由: route add 192.168.0.0/16 [pve 大内网 ip]
或者别这么折腾,虚拟机桥接网络直接用大内网 ip10.x.x.x |
![]() |
3
guanzhangzhang 7 天前
|
![]() |
4
snoopygao 7 天前
PVE 部署了 SDN ,不提供一对一映射吗
|
![]() |
5
kyrre OP @snoopygao 目前这个版本的 SDN 还比较弱,只有 SNAT 。
@guanzhangzhang 能展开说说么?或者给个链接我研究一下。 @starryloki @yinmin 我目前就用 iptables 这个方式加了 DNAT 规则,稍微傻了点,只能说凑活着用 |
![]() |
6
smileawei 6 天前
PVE 的网络 新建一个网络 选择一个物理网卡 进行桥接。这样和 PVE 宿主机的网卡就在一个二层了。
|
![]() |
7
blackeeper 6 天前
你这个其实是要去除 DNAT ,把 192.168.0.0/16 作为独立的 VM 网段,只需要在路由器上加一条静态路由把去往 192.168.0.0/16 的网络下一跳是这个 PVE IP ,然后 PVE 上把 nat 网络改为 host-only 模式
|