首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VMware NAT 模式 CentOS 互通但無法上網:網關、DNS、主機虛擬網卡排查指南

     編輯:程式設計疑難解答

現象:兩台 CentOS (NAT) 互 ping 通,但無法 ping 通宿主機、外網 (如 8.8.8.8)。

排查順序 (由近及遠)

  1. ping 網關:`ping 192.168.x.2` (VMnet8 預設網關)。不通 → 虛擬網卡/NAT 服務異常。
  2. 檢查 `/etc/sysconfig/network-scripts/ifcfg-ens33`**

BOOTPROTO=static
IPADDR=192.168.100.10   # 同網段 192.168.100.0/24
NETMASK=255.255.255.0
GATEWAY=192.168.100.2   # 必須 = VMnet8 網關
DNS1=8.8.8.8
DNS2=114.114.114.114
  • 兩台 VM **IP 最後一段不可重複**,網關、DNS 完全一致。
  1. 宿主機 VMnet8 虛擬網卡:
    – 控制台 → 網路連線 → VMware Network Adapter VMnet8 → IPv4 → 固定 IP (如 192.168.100.1) / 子網路遮罩 255.255.255.0。**不要設定網關**。
    – VMware 虛擬網路編輯器 → NAT 設定 → 閘道 IP = 192.168.100.2,子網路 IP = 192.168.100.0/24。
  1. NAT 服務與防火牆:
    – 服務 `VMware NAT Service` 必須運行。
    – 宿主機防火牆允許 `vmnat.exe`、`vmnetdhcp.exe` 出入。
    – CentOS `firewall-cmd --add-service=dhcpv6-client --permanent` 等必要規則。
  1. 改用橋接模式驗證**

若 NAT 總是有問題,直接改 **Bridged (橋接)**:VM 直接獲取實體路由器 DHCP IP,與宿主機平級,上網零配置,最省事。

常見誤區

  • 以為 VMnet8 IP 要設在 CentOS `GATEWAY` → **錯**,VMnet8 IP 是宿主機側介面,CentOS 閘道指向 **NAT 服務虛擬 IP (通常 .2)**。
  • 兩台 CentOS 設同一 IP → IP 衝突,互 ping 可能通 (ARP 快取) 但上網極不穩。
  • DNS 未設或設錯 → ping IP 通但域名解析失敗,誤以為斷網。

一鍵驗證腳本 (在 CentOS 執行)


#!/bin/bash
GW=$(ip route | awk '/default/ {print $3}')
echo "Gateway: $GW"
ping -c2 -W1 $GW >/dev/null && echo "GW 可達" || echo "GW 不可達"
ping -c2 -W1 8.8.8.8 >/dev/null && echo "外網 IP 可達" || echo "外網 IP 不可達"
ping -c2 -W1 www.baidu.com >/dev/null && echo "DNS 正常" || echo "DNS 異常"
cat /etc/resolv.conf

按順序檢查網關 → 虛擬網卡 → NAT 服務 → DNS,或直接改橋接模式,即可解決「內網互通但無法上網」的經典 NAT 問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved