Несколько обратных оболочек, использующих один и тот же публичный порт - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть сервер за брандмауэром, и брандмауэр пропускает трафик только через порт 22. Этот сервер имеет как публичные, так и частные адреса.

У меня также есть около 1K клиентов, которым нужно перевернуть оболочку на этот сервер, и я могу выбрать одного из них по идентификатору, когда я хочу этот обратный туннель ssh.

Моя цель - заставить клиентов подключаться к ssh-серверу через порт 22, и каждое из этих подключений должно быть перенаправлено на локальный хост на порту с тем же идентификатором. Когда я подключаюсь к серверу с моим ноутбуком также через ssh, я затем подключаю ssh к localhost с правильным идентификатором и получаю оболочку клиента.

Может ли кто-нибудь предоставить мне хороший путь для достижения этой цели с помощью инструментов bash, ssh и linux?

Примечание. Я не хочу использовать client.py и server.py, потому что большинство моих клиентов основаны на Android, и это может стать кошмаром для установки Python на всех из них.

1 Ответ

0 голосов
/ 03 мая 2018

Проблема - это было решено с помощью переадресации удаленного порта:

ssh -R 21:localhost:8888 user@server

В этой команде 8888 представляет идентификатор терминала. Чтобы это работало, пришлось добавить эту строку в мой ssh ​​conf:

GatewayPorts yes
...