LINUX.ORG.RU
ФорумAdmin

Два socat-а как сделать?

 ,


0

1

Что-то вроде следующего хочется получить:

socat TCP-LISTEN:30010,bind=192.168.0.1,reuseaddr,fork TCP:127.0.0.1:20010
socat TCP-LISTEN:30011,bind=192.168.72.1,reuseaddr,fork TCP:127.0.0.1:20011

То есть, чтобы все что валится на 30010 порт по адресу 192.168.0.1 редиректилось на 127.0.0.1:20010, а на 30011 порт по адресу 192.168.72.1 на 20011 порт локалхоста.

По отдельности каждая из команд нормально работает, но если завести одну, а потом другую (в любом порядке), то сообщение, что «Cannot assign requested address»

Возможно какой-то правильный синтаксис нужен в bind= и fork

Это вообще можно сделать?

★★★★★

Разобрался, я - налажал =) Просто один из адресов не был поднят, а то, что мне казалось, что я в любом порядке проверял последовательность запуска socat, то на самом деле тоже перепутал.

В общем, все нормально работает, вопросов нет на самом деле.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от unclestephen

Не, все в порядке, просто интерфейс для второго адреса не был поднят и адреса не существовало, потому и ошибка в присваивании, socat честно писал причину, это я уже тупил.

praseodim ★★★★★
() автор топика

Не совсем по вопросу, но в фрибсд такая задача решается правилом файрволла fwd 127.0.0.1,20010 tcp from any to 192.168.0.1 30010. Возможно, линукс тоже что-то похожее умеет, ну или считай это за рекомендацию перейти на другую ОС.

Проброс порта через файрволл, в отличие от ручного перекидывания трафика юзерспейсной прогой, не создаёт оверхеда и даёт дополнительную гибкость в конфигурировании (в правиле можно задействовать все возможности файрволла по отсеиванию нужных коннектов по различным признакам) в том числе на лету, без рестарта проги и потери всех уже установленных соединений. Работает, разумеется, только если адрес назначения локальный, в остальных уже nat придётся организовывать, тоже можно но другая тема.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от anc

Да как-то неприятно использовать iptabels. Может еще дело в том, что выстраиваются цепочки и практически получается, что надо сразу все правила применять или рисковать иногда неочевидными глюками.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Да как-то неприятно использовать iptabels.

«Неприятно» использовать функции встроенные в ведро и при этом использовать сторонние костыли?

Может еще дело в том, что выстраиваются цепочки и практически получается, что надо сразу все правила применять

Не обязательно прямо все, можно правила по отдельным цепочкам разложить.
Но даже если все, то что в этом убийственного? Точнее я знаю один метод убийственности, это при policy DROP очистить цепочки на удаленном сервере, ну а дальше «степень убийственности» зависит от... Наступал на эти грабли, поэтому стал предпочитать метод «семь раз проверь», т.е. крон и возврат старых правил.

anc ★★★★★
()