我在 Redhat linux(客户操作系统)上的 vmware player 上启动并运行了 oracle 数据库实例。此虚拟机在 windows 7 计算机(主机操作系统)上运行。我能够使用在 windows7 计算机上运行的 sql developer 连接到在 vm 上运行的数据库实例。
但是当我尝试从我的 mac os 连接到该数据库实例时,在 mac os 上运行的 sql developer 无法连接到该数据库实例。
但是,我可以从我的 mac os ping 我的 windows7 ip 地址,
我能够从 Mac 电脑远程登录 Windows7 电脑上的 80 端口。
但是我无法从 mac os telnet 端口 1521。
有人能帮我配置我的 macos 和 windows7 计算机以连接到在 vmware player 上运行的数据库实例吗?
提前感谢你的帮助
编辑 1:以下是来自 redhat linux 虚拟机实例的 netstat -an |grep 1521 的输出
[ora112@localhost ~]$ netstat -an|grep 1521
tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:1521 127.0.0.1:41677 ESTABLISHED
tcp 0 0 127.0.0.1:41677 127.0.0.1:1521 ESTABLISHED
unix 2 [ ACC ] STREAM LISTENING 17671 /var/tmp/.oracle/sEXTPROC1521
以下输出来自 windows7 pc
$ netstat -an|grep 1521
TCP 127.0.0.1:1521 0.0.0.0:0 LISTENING
TCP [::1]:1521 [::]:0 LISTENING
windows7电脑ip配置
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::94b0:30a1:5c95:2e75%12
IPv4 Address. . . . . . . . . . . : 192.168.1.23
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
macos 电脑上的 IP 配置
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether e4:ce:8f:32:37:f6
inet6 fe80::e6ce:8fff:fe32:37f6%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.19 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect
status: active
我的 vmware 实例上的 ip 配置
[ora112@localhost ~]$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:C4:D3:5C
inet addr:192.168.15.133 Bcast:192.168.15.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1938 errors:0 dropped:0 overruns:0 frame:0
TX packets:1222 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:219505 (214.3 KiB) TX bytes:163937 (160.0 KiB)
答案1
检查您在客户机中使用的网络配置。您可能更愿意使用桥接模式来让客户机使用其自己的 IP 地址。
检查您的客户机上的防火墙没有阻塞,并检查 Oracle 侦听器以确保它已绑定到 IP 地址。
答案2
我认为问题在于您在 Windows7 PC 上使用内部网络(仅主机或类似的东西),例如 192.168.56.0/24 子网,而您的正常本地子网是 192.168.178.0/24。
因此,您需要做的是在 Windows7 PC 上针对此特定端口到虚拟机到数据库实例的流量重定向/转发。在 Windows 上执行此操作对我来说似乎是一项相当困难的工作,因为没有与 netfilter/iptables 等 unix 工具相媲美的工具。我唯一的想法是试试使用 netsh,但情况很可能会变得更糟。
一个更简单的方法是桥接现有的网络接口(也许您的 windows7-pc 上有多个?)。