Правильно ли я понимаю, что порядок адресов важен в том случае когда socat должен опеределить с какого начинать «read-write loop»? Чувствую, что что-то недопонимаю.
Допустим, хочется перенаправить unix ipc socket в пределах одной машины:
socat UNIX-LISTEN:socket-file-mirror,fork UNIX-CONNECT:socket-file
Начинает слушать с socket-file-mirror, но если попробовать через ssh:
local> socat EXEC:'ssh remote "socat UNIX-LISTEN:socket-file-mirror,fork -"' UNIX-CONNECT:local-socket-file
remote> socat UNIX-LISTEN:remote-socket-file,fork exec:'ssh local "socat - UNIX-CONNECT:local-socket-file"'
То первая команда не всегда будет работать корректно: такое ощущение, что цикл начинается со второго адреса. А вторая не всегда подходит, потому что не комильфо с удаленной машины логиниться на локальную.
Разумеется, можно в 3 команды: два socat-а и ssh -R, но хотелось бы узнать, можно ли проще?
Еще такой момент, почему для ya.ru приходится добавлять shut-* (для сравнения netcat ничего такого не требует, врочем у него и опций таких нет):
echo -e "HEAD / HTTP/1.1\nHost: ya.ru\n" | socat - TCP:ya.ru:80,shut-down
echo -e "HEAD / HTTP/1.1\nHost: www.linux.org.ru\n" | socat - TCP:www.linux.org.ru:80
Заранее спасибо, в том числе и за пинки в правильно направлении :)