PVE Host 兩張網卡設定 NAT 作法
- 環境 : PVE Host 有兩張網卡
- vmbr0(可與 Internt 連接)
- vmbr1(不直接暴露到 Internet) IP: 10.90.90.0/24
- 目標 : 不對外提供服務的 VM (使用 vmbr1) 要能夠連出去 Internet
選擇一台 PVE Host 當 Gateway
- Exp. pve-76 (vmbr0:61.67.100.123, vmbr1:10.90.90.76) 當 Gateway
設定 NAT 方式
- 啟用 IP 轉發
vi /etc/sysctl.conf: net.ipv4.ip_forward=1 :
- 立即生效
sysctl -p - 安裝 iptables-persistent
apt update apt install iptables-persistent
- 持久化配置
vi /etc/systemd/system/pve-nat.service[Unit] Description=PVE NAT Configuration After=network.target [Service] Type=oneshot ExecStart=/bin/bash -c 'iptables -A FORWARD -i vmbr1 -o vmbr0 -j ACCEPT; iptables -A FORWARD -i vmbr0 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.90.90.0/24 -o vmbr0 -j MASQUERADE' RemainAfterExit=yes [Install] WantedBy=multi-user.target
- 啟用服務:
systemctl enable pve-nat.service systemctl start pve-nat.service
設定使用 vmbr1 的 VM Gateway
Ubuntu VM
- netplan
- 編輯 netplan 設定檔 Exp.
sudo vi /etc/netplan/50-cloud-init.yamlnetwork: version: 2 ethernets: ens18: addresses: - "10.90.90.29/24" nameservers: addresses: - 1.1.1.1 - 8.8.8.8 search: [ichiayi.com] routes: - to: "default" via: "10.90.90.76" - 讓設定檔生效
sudo netplan apply - 查看網路配置
sudo ip route showdefault via 10.90.90.76 dev ens18 proto static 10.90.90.0/24 dev ens18 proto kernel scope link 10.90.90.29 : :
參考網址
- claude.ai (Sonnet 4)