2013-03-18 7 views
0

Oracle NoSQL - это база данных, которая должна размещаться в Linux, поэтому у меня виртуальный Ubuntu работает в Oracle VM VirtualBox. Мой главный компьютер работает под управлением Windows 7.SocketTimeoutException подключение к базе данных на виртуальной машине Linux

У меня есть мостовое соединение, и я определенно могу общаться между ними. Когда база данных работает на обеих машинах, я могу подключиться к консоли администратора другой машины, которая работает на порту 5001, через веб-браузер просто отлично. Я могу подключиться таким образом, используя либо IP-адрес машины в нашей сети, либо ее сетевое имя.

С обеих компьютеров я могу подключиться к базе данных этой машины и использовать эту базу данных из java-программы, используя либо IP-адрес, либо имя сети.

С виртуальной машины я могу подключиться к kvstore своего компьютера и использовать его, используя сетевое имя, но получаю исключение socketTimeoutException с использованием IP-адреса. Я считаю, что это связано с ограничением в kvstore.

С моего компьютера я не могу подключиться к kvstore виртуальной машины и использовать ее, используя сетевое имя или IP-адрес. Когда я пытаюсь подключиться с помощью сетевого имени виртуальной машины я получаю следующую трассировку стека:

Exception in thread "main" oracle.kv.FaultException: Could not contact any RepNode at: [pc30129vm:5000] (11.2.2.0.26) 
Fault class name: oracle.kv.KVStoreException 
    at oracle.kv.KVStoreFactory.getStore(KVStoreFactory.java:123) 
    at nosql.Test.main(Test.java:18) 
Caused by: oracle.kv.KVStoreException: Could not contact any RepNode at: [pc30129vm:5000] 
    at oracle.kv.impl.util.TopologyLocator.getInitialTopology(TopologyLocator.java:226) 
    at oracle.kv.impl.util.TopologyLocator.get(TopologyLocator.java:85) 
    at oracle.kv.impl.api.RequestDispatcherImpl.<init>(RequestDispatcherImpl.java:285) 
    at oracle.kv.KVStoreFactory.getStore(KVStoreFactory.java:118) 
    ... 1 more 
Caused by: java.rmi.ConnectIOException: Exception creating connection to: pc30129vm; nested exception is: 
    java.net.SocketTimeoutException: connect timed out 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:632) 
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) 
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) 
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:340) 
    at sun.rmi.registry.RegistryImpl_Stub.list(Unknown Source) 
    at oracle.kv.impl.util.TopologyLocator.getInitialTopology(TopologyLocator.java:175) 
    ... 4 more 
Caused by: java.net.SocketTimeoutException: connect timed out 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 
    at java.net.Socket.connect(Socket.java:579) 
    at oracle.kv.impl.util.registry.ClientSocketFactory.createSocket(ClientSocketFactory.java:300) 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) 
    ... 9 more 

Я попытался запустить Nmap этого порта на виртуальной машине, и это, кажется, возвращаются в порядке. С Nmap команды:

nmap -p 5000 pc30129vm 

Я получаю результат:

Starting Nmap 6.25 (http://nmap.org) at 2013-03-18 14:51 Pacific Daylight Time 

Nmap scan report for pc30129vm (192.168.0.25) 

Host is up (0.0030s latency). 

PORT  STATE SERVICE 

5000/tcp filtered upnp 

MAC Address: 08:00:27:44:A1:10 (Cadmus Computer Systems) 


Nmap done: 1 IP address (1 host up) scanned in 11.74 seconds 

Я просто не могу понять, почему я не могу подключиться и использовать базу данных виртуальной машины. С ноутбуком коллеги, который работает linux, я даже смог подключиться, но по какой-то причине виртуальная машина, похоже, затмевает мои усилия.

+0

Что означает «отфильтрованное» значение в столбце «nmap» STATE? :) –

+0

Я действительно не знаю, но nmap.org говорит мне, что это означает, что Nmap не может определить, открыт ли порт, потому что фильтрация пакетов не позволяет его датчикам добраться до порта. Фильтрация может осуществляться с помощью специального устройства брандмауэра, правил маршрутизатора или программного обеспечения брандмауэра на базе хоста. – CorayThan

+1

Да, у вас, скорее всего, есть межсетевой экран, который не позволяет вам получить доступ к этому порту. Брандмауэр может защищать сервер и отклонять входящие подключения к нему или, возможно, предотвращает исходящие соединения с вашего компьютера - или оба - в худшем случае. –

ответ

1

Комментарии вставленные в ответ:

Вы, скорее всего, брандмауэр в месте, которое не позволяет вам получить доступ к этому порту. Брандмауэр может защищать сервер и отклонять входящие подключения к нему или, возможно, предотвращает исходящие соединения с вашего компьютера - или оба - в худшем случае.

Когда вы действительно можете получить доступ к порту, nmap сообщает «open» в столбце STATE.

Смежные вопросы