Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Доброго времени суток

Нужна база данных, доступная удаленно. Зарегистрировал домен на сайте dyndns.com.
Локально подключается к базе данных через SQL Developer, а удаленно (через Интернет) не хочет.
Выдает: Сбой подключения (Telnet), Ошибка ввода-вывода (SQL Developer).
Читал про USE_SHARED_SOCKET. Пробовал добавлять в реестр, изменений нет.
Подскажите, что может быть?
23 фев 14, 17:14    [15615092]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
firewall локально?
адрес инетовский слушает?
lsntctl status

если за NAT то еще и проброс портов за него
Проверить:
удаленно
telnet dyndns 1521
Если ничего не сказал и висит курсор и как то реагирует - соединение нормально

p.s. Я бы очканул базу в инет выставлять
лучше через vpn
23 фев 14, 19:15    [15615425]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Firewall отключил
Удаленный рабочий стол работает
Адрес пингуется
Telnet domain.dyndns.com 1521 выдает сбой подключения
На маршрутизаторе настроил виртуальный сервер и сервис dyndns для обновления информации о ip (динамический адрес)
23 фев 14, 20:31    [15615692]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
Sagitarrius
Firewall отключил
Удаленный рабочий стол работает
Адрес пингуется
Telnet domain.dyndns.com 1521 выдает сбой подключения
На маршрутизаторе настроил виртуальный сервер и сервис dyndns
для обновления информации о ip (динамический адрес)

телнет запускал снаружи?
тelnet domain.dyndns.com 1521 выдает сбой подключения
Для виртуального сервер настроил 1521 как public порт?

Судя по терминологии у тебя DLINK?
Там связка внешний_ip:внешний_port <-> внутренний_ip:внутренний_порт
Давай на примере (реальные ip светить не советую)

Сервер oracle (внутренний)
ip 192.168.1.33
порт 1521

Маршрутизатор:
Внешний 99.99.99.45 (меняется время от времени)
DNS: superoracle.dyndns.com

Виртуальный сервер
------------------------------
private_ip: 192.168.1.33
privat_port: 1521
public_port:11888

Тогда:
internal_tns=(DESCRIPTION=
 (ADDRESS=
        (PROTOCOL=TCP)(HOST=192.168.1.33)(PORT=1521))
        (CONNECT_DATA=(SID=emrep))
 )

public_tns=(DESCRIPTION=
 (ADDRESS=
        (PROTOCOL=TCP)(HOST=superoracle.dyndns.com)(PORT=11888))
        (CONNECT_DATA=(SID=emrep))
 )


p.s. на dlink была дырища в прошивке размером с атлантический океан
поищи dlink botnet
например: Ботнет Чак Норрис поражает маршрутизаторы
Или это: Червь создает ботнет из домашних модемов и роутеров
Еще раз рекомендую рассмотреть VPN
24 фев 14, 00:13    [15616679]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Vadim Lejnin
Sagitarrius
Firewall отключил
Удаленный рабочий стол работает
Адрес пингуется
Telnet domain.dyndns.com 1521 выдает сбой подключения
На маршрутизаторе настроил виртуальный сервер и сервис dyndns
для обновления информации о ip (динамический адрес)

телнет запускал снаружи?
тelnet domain.dyndns.com 1521 выдает сбой подключения
Для виртуального сервер настроил 1521 как public порт?

Судя по терминологии у тебя DLINK?
Там связка внешний_ip:внешний_port <-> внутренний_ip:внутренний_порт
Давай на примере (реальные ip светить не советую)

Сервер oracle (внутренний)
ip 192.168.1.33
порт 1521

Маршрутизатор:
Внешний 99.99.99.45 (меняется время от времени)
DNS: superoracle.dyndns.com

Виртуальный сервер
------------------------------
private_ip: 192.168.1.33
privat_port: 1521
public_port:11888

Тогда:
internal_tns=(DESCRIPTION=
 (ADDRESS=
        (PROTOCOL=TCP)(HOST=192.168.1.33)(PORT=1521))
        (CONNECT_DATA=(SID=emrep))
 )

public_tns=(DESCRIPTION=
 (ADDRESS=
        (PROTOCOL=TCP)(HOST=superoracle.dyndns.com)(PORT=11888))
        (CONNECT_DATA=(SID=emrep))
 )


p.s. на dlink была дырища в прошивке размером с атлантический океан
поищи dlink botnet
например: Ботнет Чак Норрис поражает маршрутизаторы
Или это: Червь создает ботнет из домашних модемов и роутеров
Еще раз рекомендую рассмотреть VPN


У меня маршрутизатор Tenda W268R
Из настроек виртуального сервера можно указать только диапозон портов и локальный ip.
Telnet запускал с другого компьютера через интернет.
24 фев 14, 05:32    [15616971]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Похоже таких настроек как public ip на этом маршрутизаторе нет.
24 фев 14, 07:19    [15617013]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
SQL Developer локально на сервере или в интранете?

на сервере вывод
lsnrctl status

Показывает local_ip
который вы забили в virtual серер

проверить Работает ли USER_SHARED_SOCK
можно так:
Зайти SQL Developer
далее: Win+R -> CMD.exe -> Окно CMD.exe
C:\> netstat -an | find /i "1521"

Active Connections

  Proto  Local Address          Foreign Address        State
...
 TCP    127.0.0.1:1521        127.0.0.1:1521        ESTABLISHED
---


Если работает, то порты должны быть одинаковы

Если USE_SHARED_SOCKET работает, то
это вопрос не к этому форуму.
24 фев 14, 13:22    [15619084]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Сейчас еду домой с работы. Как приеду буду пробовать и сразу напишу результат.
24 фев 14, 16:36    [15620825]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
lsnrctl показывает:
<HOST:127.0.0.1><PORT=1521>
<COMPNAME><PORT=5500>
24 фев 14, 17:28    [15621237]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
netstat показывает:
127.0.0.1:1521 0.0.0.0:0 Listening
127.0.0.1:1521 127.0.0.1:49169 Established
127.0.0.1:1521 127.0.0.1:49689 Established
127.0.0.1:49169 127.0.0.1:1521 Established
127.0.0.1:49689 127.0.0.1:1521 Established
24 фев 14, 17:35    [15621278]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
Sagitarrius
lsnrctl показывает:
<HOST:127.0.0.1><PORT=1521>
<COMPNAME><PORT=5500>


private_ip = COMPNAME
private_port 5500
именно этот порт на виртуальном сервере и надо открывать
проверка снаружи:
telnet superoracle.dyndns.com 5500
Только обедится что в private_ip у тебя отобразится тот де адрес что и
COMPNAME
Внутри сети:
ping COMPNAME


Ну и COMPNAME настроить статический адрес на роутере.
24 фев 14, 23:18    [15623031]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
Э... что 5500 точно порт DB?
а не XDB например :)
Вывод listener.ora приведи весь (ip и имена закрыть)
У тебя похоже listener только localhost слушает :)
24 фев 14, 23:22    [15623043]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Vadim Lejnin
Sagitarrius
lsnrctl показывает:
<HOST:127.0.0.1><PORT=1521>
<COMPNAME><PORT=5500>


private_ip = COMPNAME
private_port 5500
именно этот порт на виртуальном сервере и надо открывать
проверка снаружи:
telnet superoracle.dyndns.com 5500
Только обедится что в private_ip у тебя отобразится тот де адрес что и
COMPNAME
Внутри сети:
ping COMPNAME


Ну и COMPNAME настроить статический адрес на роутере.


COMPNAME не пингуется в локальной сети.
Пока играл с настройками на роутере раскрыл все порты ip на котором стоит БД. снаружи telnet на 1521 сбой подключения.
На роутере не смог найти где нужно указывать private ip адрес. Private ip - это чей адрес должен быть? Локальный ip адрес хоста, на котором стоит БД?
25 фев 14, 06:02    [15623407]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Думал пока настраиваю удаленный доступ раскрою порты, как получится открыть доступ, закрою лишние порты, чтобы не думать что проблема в том, что какой-то порт не доступен.
25 фев 14, 06:05    [15623409]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Картинка с другого сайта.
25 фев 14, 07:41    [15623454]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
Sagitarrius
Vadim Lejnin
пропущено...


private_ip = COMPNAME
private_port 5500
именно этот порт на виртуальном сервере и надо открывать
проверка снаружи:
telnet superoracle.dyndns.com 5500
Только обедится что в private_ip у тебя отобразится тот де адрес что и
COMPNAME
Внутри сети:
ping COMPNAME


Ну и COMPNAME настроить статический адрес на роутере.


COMPNAME не пингуется в локальной сети.
Пока играл с настройками на роутере раскрыл все порты ip на котором стоит БД. снаружи telnet на 1521 сбой подключения.
На роутере не смог найти где нужно указывать private ip адрес. Private ip - это чей адрес должен быть? Локальный ip адрес хоста, на котором стоит БД?


Мессир, 5500 - это скорее всего WEBDB,
у Вас Сервер SQL*NET Listener, TNS протокол принимает только по IP адресу
127.0.0.1.
Это внутренний адрес компьютора, так назваемый LOCALHOST
К Вашей Oracle Database, с помощью Oracle клиента нельзя подключиться ни с какой машины кроме собственно сервера.

Вам нужно:
1) Настроить статический адрес для Вашего сервера Oracle
2) Настроить Listener чтобы он обслуживал этот адрес (поиск по ключевым словам:
listener.ora
lsnrctl
3) разобраться как работает "Виртуальный сервер", где какой IP и какой порт.

Информации достаточно, осталось подумать.

OFFTOP
В общем случае:
Проброс IP портов за NAT (Network Address Translation) работает так:

any ip -> public_ip:public_port -> router -> private_ip:private_port -> server

private_ip - это INTRAnet (внутренний) адрес сервера
случае oracle)

Его текущее значение можно посмотреть :
-> CMD.exe

ipconfig

Но если комп получает динамический адрес по DHCP то это значение может измениться в любой момент.
Для сервера Oracle на сервере DHCP нужно настроить Статический адрес DHCP
Или просто Статический адрес. Обязательно нужно согласовывать с админами сети
25 фев 14, 08:54    [15623584]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Возможно ли настроить Сервер SQL*NET Listener так, чтобы TNS протокол принимал по локальному ip, прописанному в настройках виртуального сервера? И необходимо ли это в данном случае, ведь пинг проходит на этот сервер, удаленный рабочий стол сервера отображается снаружи, только сбой при подключении к порту 1521, видимо этот порт открыт для внутреннего подключения, а для внешнего там используются другие порты или они отключены.
25 фев 14, 11:20    [15624334]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Попробовал снаружи просканировать порты программой Port Scanner. Результат: открыты только следующие порты: 25, 80, 135, 110, 139 и 445. Порт 1521 закрыт.
25 фев 14, 11:36    [15624472]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
Sagitarrius
Возможно ли настроить Сервер SQL*NET Listener так, чтобы TNS протокол принимал по локальному ip, прописанному в настройках виртуального сервера?

Можно, поиск по listener.ora
      
..
(ADDRESS = (PROTOCOL = TCP)(HOST = <IP адрес сервера Oracle> )(PORT = 1521))
..

не забыть перегрузиться

Sagitarrius
И необходимо ли это в данном случае, ведь пинг проходит на этот сервер,
удаленный рабочий стол сервера отображается снаружи, только сбой при подключении к порту 1521, видимо этот порт открыт для внутреннего подключения, а для внешнего там используются другие порты или они отключены.


Прочитайте что такое протокл IP - это не тема данного форума
Настройки Вашего маршрутизатора (по русски): Руководство пользователя
Глава 7.2 Настройка статического IP
Глава 8.1 настройка перенаправления порта


За сим обсуждение заканчиваю, бо сказано все что необходимо и даже больше
Удачи
25 фев 14, 12:01    [15624670]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Огромное спасибо Вам за помощь. Многое стало яснее. Единственное так и не понял как настроить USE_SHARED_SOCKET. В реестре Windows нет "обратной связи", то есть я вношу какие-либо изменения, а как проверить изменения не всегда очевидно.
25 фев 14, 12:41    [15624927]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к удаленной базе данных  [new]
Sagitarrius
Member

Откуда:
Сообщений: 26
Vadim Lejnin, Я указал как Вы и писали выше, локальный ip адрес вместо localhost в listener.ora и tnsnames.ora. Заработало. Спасибо, без Вашей помощи не разобрался бы. Все отлично работает. Теперь буду думать как настроить роутер, файрвол, антивирус и прочее, так чтобы мне доступ к базе не ограничивался.
25 фев 14, 13:02    [15625129]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить