Назад | Перейти на главную страницу

Почему я не могу подключиться по Telnet к локальному порту, на котором есть служба прослушивания?

Я подозреваю, что это либо очень простой вопрос, либо очень сложный.

У меня есть безголовый сервер под управлением Ubuntu 10.04, в который я могу использовать ssh. Имею полный root-доступ к системе. Я пытаюсь настроить туннель ssh, чтобы позволить мне подключаться к системе через vnc (но это не мой вопрос.

У меня vnc работает на порту 5903, вот вывод netstat для этого:


Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5903            0.0.0.0:*               LISTEN      7173/Xtightvnc
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      
465/sshd

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


# telnet localhost 5903
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection timed out

Я могу подключиться по telnet к порту 22 (в качестве проверки)


~# telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7

Я пытался открыть любые возможные порты с помощью ufw (вероятно, коряво)


# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 5903                       ALLOW IN    Anywhere
[ 2] 22                         ALLOW IN    Anywhere

Что еще может блокировать это соединение локально?

Спасибо,

Редактировать:

Единственная ссылка на порт 5903 в iptable -L -n следующая:


Chain ufw-user-input (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:5903
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:5903
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:8080

Я могу опубликовать весь вывод, если это будет полезно.

И hosts.allow, и hosts.deny содержат только комментарии.

Re-Edit: Некоторые другие вопросы указали мне на nmap, поэтому я провел сканирование портов с помощью этой утилиты:


# nmap -v -sT localhost -p1-65535

Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-09 09:58 PST
NSE: Loaded 0 scripts for scanning.
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Initiating Connect Scan at 09:58
Scanning localhost (127.0.0.1) [65535 ports]
Discovered open port 22/tcp on 127.0.0.1
Connect Scan Timing: About 18.56% done; ETC: 10:01 (0:02:16 remaining)
Connect Scan Timing: About 44.35% done; ETC: 10:00 (0:01:17 remaining)
Completed Connect Scan at 10:00, 112.36s elapsed (65535 total ports)
Host localhost (127.0.0.1) is up (0.00s latency).
Interesting ports on localhost (127.0.0.1):
Not shown: 65533 filtered ports
PORT   STATE  SERVICE
22/tcp open   ssh
80/tcp closed http

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 112.43 seconds
           Raw packets sent: 0 (0B) | Rcvd: 0 (0B)

Думаю, это показывает, что 5903 как-то заблокирован. Что я почти знал. Остается вопрос, что его блокирует и как изменить.

Повторно отредактировать:

Чтобы проверить предложенный ответ Пола Латропа, я сначала проверил свой IP-адрес с помощью ifconfig:


eth0      Link encap:Ethernet  HWaddr 02:16:3e:42:28:8f
          inet addr:10.0.10.3  Bcast:10.0.10.255  Mask:255.255.255.0

Затем попытался подключиться по телнету к 5903 с этого адреса:


# telnet 10.0.10.3 5903
Trying 10.0.10.3...
telnet: Unable to connect to remote host: Connection timed out

Не повезло.

Повторное повторное повторное редактирование:

Хорошо, я думаю, что я немного изолировал его от vncserver, а не от брандмауэра, черт возьми. Я отключил vncserver, и netcat прослушал порт 5903. Затем мой vnc-клиент смог установить соединение и сесть и дождаться ответа. Похоже, я должен преследовать проблему с vnc. По крайней мере, это прогресс Спасибо за помощь

Хорошо, я думаю, что я немного изолировал его от vncserver, а не от брандмауэра, черт возьми. Я отключил vncserver, и netcat прослушал порт 5903. Затем мой vnc-клиент смог установить соединение и сесть и дождаться ответа. Похоже, я должен преследовать проблему с vnc. По крайней мере, это прогресс Спасибо за помощь

Скорее всего, ваш VNC-сервер не привязан к интерфейсу обратной связи. Я также сталкивался с этим с некоторыми демонами Java, они утверждают, что слушают 0.0.0.0, который интуитивно должен включать loopback, но на самом деле они привязаны только к «внешним» сетевым интерфейсам. Пытаться: telnet <LOCAL_IP> 5904; если он подключается, то ваш VNC-сервер не привязан к интерфейсу обратной связи.