socket forwarding


romy4 аватар

Проброс socket с удалённой на локальную машину. socket forward.

Удалённый mysql крутится c unix_socket и чтобы удалённо что-то подебажить его надо пробросить локально. На помощь приходит socat. Его надо поставить локально и на удалённой машине.

создаём локально директорию:

mkdir -p ~/.remote_sockets && chmod 0700 ~/.remote_sockets

и теперь запускаем его локально (соединение у нас по ключу):

export SOCKET_DIR=~/.remote_sockets
socat "UNIX-LISTEN:$SOCKET_DIR/mysqld.sock,reuseaddr,fork" EXEC:'ssh -p 2526 -i /home/user/.ssh/my_key_rsa  socat STDIO UNIX-CONNECT\:/run/mysqld/mysqld.sock'

Всё, консолька висит — значит ок. Не используйте ~ в качестве /home/user

открываем консоль №2

mysql -u username -S "$SOCKET_DIR/mysqld.sock" -p
0
Ваша оценка: Ничего
romy4 аватар

Проброс сокета на примере mysql

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

$ /usr/bin/ssh -i our_id_rsa -o ServerAliveInterval=1 -o ServerAliveCountMax=5 -o Compression=no -N -2 -T -L 3306:localhost:3306 root@remote_host &

теперь сокет направим в порт

$ socat -d -lf /var/log/socat.log UNIX-LISTEN:/var/run/mysqld/mysqld.sock,reuseaddr,fork,unlink-early,mode=777,su=nobody,user=mysql,group=mysql TCP4:localhost:3306 &

----------
В debian socat, можно поставить из репозитория: apt-get install socat

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)