Я пытаюсь запустить mysql-workbench на моей локальной машине, подключенной к удаленной машине через ssh . Если бы удаленный компьютер прослушивал порт 3306, это было бы тривиально:

ssh -L 1234:localhost:3306 user@example.com

Это позволит мне указать mysql-workbench на localhost:1234 и весь трафик будет перенаправлен на example.com:3306 .

Однако база данных на example.com только прослушивает localhost:3306 . Есть ли способ переслать example.com:localhost:3306 обратно через порт на мою машину? У меня есть и nc и ncat доступны на локальном компьютере, так что я думаю , что это должно быть возможно создать импровизированную прокси, я просто не знаю , как.

2 ответа2

0

Из вашего описания неясно, что не так и что вы хотите сделать. Как только вы сможете подключиться к вашему серверу через "тривиальный" ssh-туннель, вы сможете подключиться к петлевому интерфейсу удаленного компьютера, который является localhost:3306. По умолчанию серверы БД прослушивают петлевой интерфейс. Попробуйте подключиться к удаленной машине с явным петлевым IP-адресом:

ssh -L 127.0.0.1:1234:127.0.0.1:3306 user@example.com

Он должен работать без необходимости в Netcat и так далее. Если этого не происходит, значит, что-то не так с вашей конфигурацией сервера базы данных.

0

Ваше объяснение немного странно, и ваш пример все еще должен работать, потому что вы говорите: «когда трафик на моей локальной машине направляется на TCP-порт 1234, отправьте его через этот туннель и заставьте машину на другом конце отправить его любому IP-адрес преобразуется в localhost на удаленном компьютере и отправляется на порт ЭТОГО компьютера 3306. Если бы вы указали: remote2.example.com: то машина, на которую вы собираетесь подключиться, будет отправлять пакеты на любой адрес remote2.example.com. Например, представьте, что у меня есть три оболочки, и у меня есть локальная машина и удаленная машина:

[@local  1]$ ssh -L8888:localhost:7777 remote
[@remote 2]$ nc -l -s 127.0.0.1 -p 7777
[@local  3]$ echo 'Hello World!' | nc localhost 8888

Сделает вывод команды @local 1 "Hello World!"». Возможно, удаленный сервис на самом деле не прослушивает какой-либо локальный хост на удаленной машине?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .