Если у вас есть административный доступ к серверу, HTTP-ретранслятор будет делать то, что вы хотите.
Вы можете использовать Socat
socat TCP4-LISTEN: www TCP4: www.domain.org: www
устанавливает простой перенаправитель TCP-порта. С TCP4-LISTEN он прослушивает локальный порт "www" до тех пор, пока не будет установлено соединение, примет его, затем подключится к удаленному хосту (TCP4) и начнет передачу данных. Он не примет второе соединение.
socat -d -d -lmlocal2 \ TCP4-LISTEN: 80, bind = myaddr1, su = никто, fork, range = 10.0.0.0 / 8, reuseaddr \ TCP4: www.domain.org: 80, bind = myaddr2
Переадресация TCP-портов, каждая сторона связана с другим локальным IP-адресом (bind). В этом примере обрабатывается почти произвольное количество параллельных или последовательных соединений путем разветвления нового процесса после каждого accept (). Это обеспечивает небольшую безопасность, позволяя никому не поддаваться после разветвления; он разрешает соединения только из частной сети 10 (диапазон); из-за reuseaddr, он позволяет немедленный перезапуск после завершения главного процесса, даже если некоторые дочерние сокеты не полностью закрыты. С -lmlocal2 socat регистрирует в stderr, пока не достигнет цикла приема. Дальнейшее ведение журнала направляется в системный журнал с помощью средства local2.
Смотрите также
https://stackoverflow.com/questions/34791674/socat-port-forwarding-for-https