LINUX.ORG.RU
ФорумAdmin

SSH port forwarding. Как правильно настроить?


0

1

Есть VPS. Система Debian 7 32bit, виртуализация OpenVZ. Нужно пробросить порт с сервера для приёма входящих соединений используя SSH port forwarding. Я за NAT провайдера и входящие соединения мне не доступны.
Хочу перенаправить порт сервера 25000 на порт клиента 50242 на моём домашнем компьютере. И через порт 50242 принимать входящие соединения.
Пытаюсь настроить это через SSH Remote port forwarding

В конфиг /etc/ssh/sshd_config добавил

GatewayPorts yes
AllowTcpForwarding yes

В /etc/sysctl.conf на всякий случай раскомментировал

net.ipv4.ip_forward = 1

Настраиваю Remote port forwarding такой командой

ssh -R 0.0.0.0:25000:127.0.0.1:50242 root@5.153.8.178

Пробовал ещё с параметром -g

-g      Allows remote hosts to connect to local forwarded ports.

ssh -R 0.0.0.0:25000:127.0.0.1:50242 root@5.153.8.178 -g

Проверяю. Порт находится в списке прослушиваемых.

root@vpshost:~# netstat -nlp  | grep 25000
tcp        0      0 0.0.0.0:25000           0.0.0.0:*               LISTEN      2030/1
tcp6       0      0 :::25000                :::*                    LISTEN      2030/1

Проверяю открыт ли порт через http://www.hashemian.com/tools/port-scanner.php
Порт открыт. http://storage8.static.itmages.ru/i/14/0202/h_1391371414_5023069_0a67c8a85f.png

При проверки порта через сервис, в консоле появляется такая строка

root@vpshost:~# connect_to 127.0.0.1 port 50242: failed.

ifconfig

root@vpshost:~# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10347 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10347 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3933543 (3.7 MiB)  TX bytes:3933543 (3.7 MiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:177128 errors:0 dropped:0 overruns:0 frame:0
          TX packets:195190 errors:0 dropped:4252 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:52353491 (49.9 MiB)  TX bytes:69291054 (66.0 MiB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:5.153.8.178  P-t-P:5.153.8.178  Bcast:5.153.8.178  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

Прописываю порт 50242 в uTorrent как «Порт входящих соединений». Но входящие соединения всё равно не работают.

Как назначить проброшенный порт приложению которое должно работать через него?


А белый берется по впн? И я что-то не совсем понял, что на сервере, и что на гостях, какие айпишники.

leg0las ★★★★★
()
Ответ на: комментарий от leg0las

Я за NAT провайдера. IP у меня «серый», порты для входящих соединений закрыты. У VPS «белый» статический IP. Я со своего домашнего компьютера пытаюсь настроить Remote port forwarding и таким способом открыть входящие соединения. VPNа нет, я подключаюсь к VPS через putty, затем ввожу такую команду

ssh -R 0.0.0.0:25000:127.0.0.1:50242 root@5.153.8.178

Sergo
() автор топика

Прописываю порт 50242 в uTorrent как «Порт входящих соединений». Но входящие соединения всё равно не работают.

Укажи как socks5 proxy.

UPD: дочитал про входящие. Тебе нужно форвардить как входящий так и исходящий траф непосредственно с сервера.

ssh -R out_port:127.1:out_port -A -D socks5_port me@server

invokercd ★★★★
()
Ответ на: комментарий от invokercd

Попробовал вот так. Но в правильности не уверен.

ssh -R 25000:127.0.0.1:25000 -A -D 50242 root@5.153.8.178

Прослушиваемые порты после этой команды:

root@vpshost:~# netstat -nlp  | grep 25000
tcp        0      0 0.0.0.0:25000           0.0.0.0:*               LISTEN      19969/1
tcp6       0      0 :::25000                :::*                    LISTEN      19969/1
root@vpshost:~# netstat -nlp  | grep 50242
tcp        0      0 127.0.0.1:50242         0.0.0.0:*               LISTEN      19968/ssh
tcp6       0      0 ::1:50242               :::*                    LISTEN      19968/ssh


В uTorrent вписал порт 50242. Но входящие соединения не открылись.

Sergo
() автор топика
Ответ на: комментарий от Sergo

Входящие должны идти по 25000 (man ssh > Remote forwarding)

root@vpshost/:~# netstat -nlp | grep 50242

откуда взялся 5042 на сервере при -D? Он должен открываться на локалхосте (где будет висеть в виде socks проки, которую нужно указать для исходящих соединений).

invokercd ★★★★
()
Ответ на: комментарий от invokercd

Почему порт 50242 появляется на сервере на интерфейсе lo не понятно. Попробовал ещё раз, после ввода

ssh -R 25000:127.0.0.1:25000 -A -D 50242 root@5.153.8.178

всё то же самое как было.

Попробовал в uTorrent указать порт 25000 для входящих соединений, но пока входящих соединений нет.

Попробовал ещё вариант в uTorrent указать порт 25000 для входящих соединений вместе с включением «Прокси-сервер» Тип Socks5, Прокси 127.0.0.1, Порт 50242. Подключиться через прокси не получается «Proxy connect error». Прокси не работает на порте 50242.

Sergo
() автор топика
Ответ на: комментарий от invokercd

Я всегда через Putty подключался к серверу. Подключаюсь через Putty к серверу и затем ввожу команду.
Попробовал подключиться как в руководстве по ссылке через Putty.

После этого, в прослушиваемых портах на сервере ничего не изменилось

root@vpshost:~# netstat -nlp  | grep 23456
root@vpshost:~#

На 127.0.0.1:23456 Socks5 прокси заработал. Если его указать как Socks5 в uTorrent, то подключение через него устанавливается. Но это получилось просто соединение через Socks5 прокси. Порты не открылись.

Sergo
() автор топика
Ответ на: комментарий от invokercd

Проверил ещё раз. Прописал порт 23456 как «Порт входящих соединений» и он же как порт для прокси в uTorrent. Порты не открылись. В uTorrent галка зелёная не появилась и если проверить на трекере, то порт определяется как закрытый. Вот скриншот, мой клиент выделен коричневым.

http://storage7.static.itmages.ru/i/14/0212/h_1392208091_9446904_1acc88ef68.png

На сервере в прослушиваемых портах, порта 23456 нет

root@vpshost:~# netstat -nlp  | grep 23456
root@vpshost:~#

Если проверить порт 23456 на сервере, то порт закрыт.

SSH Remote port forwarding не сложный способ, всего одна команда. Но у меня так и не получилось открыть входящие соединения.

Sergo
() автор топика
Ответ на: комментарий от Sergo

Попробовал ещё с одинаковыми портами

ssh -R 25000:127.0.0.1:25000 root@5.153.8.178

Прослушиваемые порты после этой команды на сервере:

root@vpshost:~# netstat -nlp  | grep 25000
tcp        0      0 0.0.0.0:25000           0.0.0.0:*               LISTEN      4021/1
tcp6       0      0 :::25000                :::*                    LISTEN      4021/1

При проверке на моём компьютере в Windows 7, куда я пытаюсь пробросить порты с сервера, после ввода команды

netstat -ano | find "25000"

Видно что порты пробросились на интерфейс 0.0.0.0

Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\Admin>netstat -ano | find "25000"
  TCP    0.0.0.0:25000          0.0.0.0:0              LISTENING       8068
  TCP    [::]:25000             [::]:0                 LISTENING       8068
  UDP    0.0.0.0:25000          *:*                                    8068
  UDP    [::]:25000             *:*                                    8068

C:\Users\Admin>

Как настроить так, чтобы uTorrent работал через интерфейс на который проброшен порт 25000.

Sergo
() автор топика
Ответ на: комментарий от invokercd

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

Sergo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.