VirtualBox 設置 → 網絡 → 連接方式:**橋接網卡**,選擇 Mac 物理網卡(Wi-Fi 或以太網)。使虛擬機獲取局域網獨立 IP(如 192.168.1.100)。
# 管理員運行 PowerShell
New-NetFirewallRule -DisplayName "Oracle 1521" -Direction Inbound -LocalPort 1521 -Protocol TCP -Action Allow
或圖形界面:控制面板 → Windows Defender 防火牆 → 高級設置 → 入站規則 → 新建規則 → 端口 → TCP 1521。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) # 關鍵:HOST=0.0.0.0 監聽所有介面
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
修改後重啟監聽:lsnrctl stop && lsnrctl start
虛擬機內用 sqlplus system/password@//localhost:1521/orcl 測試本地連接正常。
192.168.1.100)| 現象 | 原因 | 解決 |
|---|---|---|
| 連接超時 | 防火牆攔截/監聽未綁定 0.0.0.0 | 檢查步驟 2、3 |
| ORA-12514 | 服務名錯誤/實例未註冊 | lsnrctl status 查看實際服務名 |
| 無法 ping 通虛擬機 IP | 網絡模式非橋接/虛擬機無 IP | 改橋接、重啟網絡 |
若必須用 NAT:VirtualBox → 設置 → 網絡 → NAT → 端口轉發:宿主 1521 → 客體 1521。Mac 連 localhost:1521 即可。但橋接模式更穩定、通用。