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

Автор Antonio, 10 февраля 2014, 23:22:39

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Antonio

Есть 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
Порт открыт.



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

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 как "Порт входящих соединений". Но входящие соединения всё равно не работают.

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

Yrii

гм, а разве не так?
ssh -R 127.1:50242:5.153.8.178:25000 root@5.153.8.178

запросы на 5.153.8.178:25000 должны попадать на 127.1:50242

Antonio

Попробовал вот так

ssh -R 127.1:50242:5.153.8.178:25000 root@5.153.8.178

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



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


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

Yrii

#3
гым, а а самом клиенте (uTorrent) не надо указать использовать "интерфейс"(скопировал название из deluge :) ) с 5.153.8.178 ? // если там такое есть ибо uTorrent не использую...

на закачку, где много сидов, что-нибудь поставил?  ;D

Antonio

#4
В uTorrent кроме порта для входящих соединений можно указать подключаться через Прокси-сервер, где нужно выбрать тип прокси и порт.



Но если пробовать указывать 5.153.8.178 как прокси, то тогда нужно ещё указать порт. Какой порт указывать? И будут ли через прокси работать входящие соединения?

Цитата: Yrii от 11 февраля 2014, 17:15:51на закачку, где много сидов, что-нибудь поставил?
На не очень популярных трекерах или на старых раздачах где один-два раздающих иногда скачать не получается потому что у всех "серые" IP. Приходится ждать по три и более дней пока кто-то придёт с "белым" IP. Но можно и не дождаться. Поэтому хочу как-то через этот VPS открыть порты для входящих соединений.

И для Skype хотел порты открыть тоже.

Yrii

Цитата: Antonio от 11 февраля 2014, 18:11:22В uTorrent кроме порта для входящих соединений можно указать подключаться через Прокси-сервер, где нужно выбрать тип прокси и порт.
это не то, но SOCKS5 proxy я бы тоже попробовал
поставь deluge и пропиши там интерфейс 5.153.8.178
Цитата: Antonio от 11 февраля 2014, 18:11:22На не очень популярных трекерах или на старых раздачах где один-два раздающих иногда скачать не получается потому что у всех "серые" IP
ну, это не показатель ибо даже с белым ip иногда не качает с серых ip...

2-й вариант попробовать http://dev.deluge-torrent.org/wiki/UserGuide/ThinClient#CreateSSHTunnel

Antonio

#6
Установил Deluge.

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

ssh -R 0.0.0.0:25000:127.0.0.1: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      10495/1
tcp6       0      0 :::25000                :::*                    LISTEN      10495/1
root@vpshost:~# netstat -nlp  | grep 50242
root@vpshost:~#





И после такой команды

ssh -R 127.1:50242:5.153.8.178:25000 root@5.153.8.178

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

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



Прописал интерфейс 5.153.8.178, перезагрузил программу. Входящие и Исходящие порты оставил как и были по умолчанию "Использовать случайные порты".



Активный порт не назначается. Предполагаю потому что программа не находит этот интерфейс на моём компьютере и поэтому порт не может назначить. При такой настройке закачка не начинается.



Пробовал прописать интерфейс 127.0.0.1 Активный порт программа назначает, но закачка не идёт.



Пробовал прописывать Входящие и Исходящие порты, закачка происходит нормально, но порты не открылись. При проверке в программе и в строке состоянии "No Incoming Connections!".



Попробовал 2 вариант.

Там описывается создание Local Port Forwarding.

Начинается с
ЦитироватьOpen up a terminal and enter the following, replacing <server> with the public IP of your server.
Это я предполагаю в руководстве предлагают открыть терминал на моём компьютере?

Попробовал проделать это на сервере. После ввода команды:

ssh -fNL 127.0.0.2:58846:localhost:58846 5.153.8.178

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

root@vpshost:~# netstat -nlp  | grep 58846
tcp        0      0 127.0.0.2:58846         0.0.0.0:*               LISTEN      11243/ssh


Порт открывается но lo интерфейсе и снаружи порт сервера закрыт.

Попробовал такую команду

ssh -fNL 0.0.0.0:58846:localhost:58846 5.153.8.178

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

root@vpshost:~# netstat -nlp  | grep 58846
tcp        0      0 0.0.0.0:58846           0.0.0.0:*               LISTEN      1892/ssh


Но результата пока нет.

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

Antonio

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

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>




Поробовал ещё через Deluge.



Прописал интерфейс 0.0.0.0, Входящие порты 25000, перезагрузил программу. Порт нормально назначается, но при проверке закрыт. Закачка идёт, но в строке состоянии "No Incoming Connections!".

Как настроить так, чтобы программы uTorrent, Deluge, Skype работали через интерфейс на который проброшен порт 25000?