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

перенаправить порт 3306 с машины с брандмауэром на рабочий стол с помощью SSH?

Вот настройка сети:

Машина A (мой ПК) SSH 22 => Машина B (Linode с корневым доступом) SSH 21343 => Машина C (сервер MySQL).

Я хочу перенаправить порт 3306 с C через B на A, поэтому я могу использовать SQL Workbench на A для выполнения команд на C.

Обратите внимание, что C доступен только через SSH-порт 21343 и только из B (мы не можем изменить брандмауэр на C, чтобы открывать больше портов, но мы можем изменить его настройки SSH).

Это возможно? Я читал о туннелях и ProxyCommand. Но мне нужен простой пошаговый пример.

На всех машинах стоит дебиан Ленни.

На машине А:

ssh -L 3307:C:3306 user@B

Это выделило сокет для прослушивания порта 3307 на A. И всякий раз, когда к этому порту устанавливается соединение, оно перенаправляется через туннель ssh на C: 3306.

Затем вы можете подключиться к серверу MySQL на C с помощью:

mysql -u <user> -p -h 127.0.0.1 -P 3307

(127.0.0.1 для подключения через TCP / IP вместо сокета)


Нет, я не могу подключиться к MySQL на C из B. Только SSH, прослушивающий 21343, открыт для B.

Если брандмауэр на C позволяет подключаться только с localhost, что-то вроде этого:

iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

так что, AFAIK, нет способа сделать это. Если вы попытаетесь подключиться через туннель ssh, вы получите следующие ошибки:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

~ / .ssh / config на машине A выглядит так:

Host C
  ProxyCommand ssh -q B nc %h %p
  LocalForward 3306 localhost:3306
  Port 21343

Host B
  Hostname X.X.X.X  (ip of host B)

Затем на A ssh C

и в другом терминале на пробеге mysql -h localhost Это подключит вас к mysql на C через порт ssh вперед.

Вы можете подумать о чем-то вроде http://sourceforge.net/projects/portfwd/ на машине B, возможно, прослушивание чего-то другого, кроме TCP 22, поэтому SSH может оставаться на своем стандартном порту для машины B.