LINUX.ORG.RU
ФорумAdmin

tcp-proxy на netcat или аналогичное


0

0

есть задача. на 80 порту висит апач. нужно сделать так, чтобы он откликался при запросе на другой (скажем 10000) порт. пытаюсь сделать переброску пакетов:

nc -k -l 10000 0<>/dev/tcp/127.0.0.1/80 >&0

с другой консоли делаю

wget -O - 127.0.0.1:10000/

первый запрос проходит нормально. а вот второй (сделанный немедленно) -- уже подвисает

--09:57:04-- http://127.0.0.1:9000/
Устанавливается соединение с 127.0.0.1:10000... соединение установлено.
Запрос HTTP послан, ожидается ответ... Не получено никаких данных.
Повтор.

после третьего, netcat, несмотря на -k вообще вылетает (это на федоре, на асп он мало того что вылетает, так ещё и материться при повторном запуске -- типа address already in use до окончаня TIME_WAIT)

где косяк? и можно ли это сделать как то иначе? (прокси не предлагать, не хочу чужую тачку засорять)

Ответ на: комментарий от Reset

>1. в настройках апача указать другой порт 2. iptables с ключом REDIRECT

чего-то подобного и ожидал. не получится. во первых тачка не моя, это вообще хостинг, во вторых доступ у меня непривелигированный, в третьих проблема ещё хитрее чем я описал.

на самом деле я хочу сделать на этой тачке для себя внешний айпишник (я в серой локалке). т.е. запросы на 10000 порт должны перенаправляться на мою локальную тачку. проще всего это сделать так:

ssh -L *:10000:127.0.0.1:80 remote.ru

проблема в том, что ssh запрещено биндиться на внешние интерфейсы -- только lo. нужно занять другой порт (9000 например на lo), потом открыть nc прослушку на 10000 (уже для всех интерфейсов) и прозрачно перекидывать пакеты 9000 <--> 10000. ещё варианты?

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

без -k он по идее должен вываливаться по завершении соединения. с ним -- висеть. но походу -k имитирует поведение while true; do..., то есть если он упадёт не закрыв сокет -- он уже не встанет. кстати, да, надо попробовать обновиться

LowLevel
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.