Я пытаюсь перенаправить порты на определенный IP-адрес. Есть ли способ обойти это без использования iptables?
ЗАДНИЙ ПЛАН
Я использую node.js и socket.io в качестве сервера реального времени. Чтобы этот сервер был доступен из всех сетей (которые имеют строгий контроль безопасности трафика портов), у него есть выделенный IP-адрес. Это означает, что он может использовать порт 80, который разрешен в большинстве сетей.
Это вызвало вторую проблему. Некоторое антивирусное программное обеспечение блокирует этот трафик на 80-м порту. Я обнаружил, что лучше всего использовать порт 4000.
Я хочу иметь два варианта подключения для клиента. Порт 80 будет по умолчанию, и если это не удастся, он будет использовать 4000. Затем мне нужно перенаправить порт 4000 обратно на порт 80, чтобы оба порта использовали один и тот же сервер node.js.
Я пытался использовать iptable для перенаправления этого порта, но мой провайдер VPS не поддерживает модули NAT для iptables. Они также не могут изменить ядро для поддержки этого.
Какие еще варианты доступны?
Я бы искал нового провайдера VPS ... похоже, вы используете систему Virtuozzo, что никогда не бывает приятным.
Я бы сказал, что ваш единственный вариант будет заключаться в том, чтобы какой-то прокси-сервер прослушивал любой порт, который вы хотите, и перенаправлял запросы в нужное место. Я был бы склонен использовать haproxy просто потому, что он находится примерно на нужном уровне простоты и надежности. Если вам не нужны данные об IP-адресе клиента, вы можете просто запустить его в режиме TCP-соединения, в противном случае запустить его как HTTP-прокси и вставить соответствующие заголовки для записи IP-адреса клиента. Вы мог запускать полноценный HTTP-сервер и запускать его как обратный прокси-сервер, но это огромный перебор, который, скорее всего, вызовет осложнения, особенно с учетом того, что вы его не используете.
Вы можете использовать функцию перенаправления из xinetd или netcat или даже их комбинацию. в качестве альтернативы вы можете (хотя я бы не рекомендовал) также использовать функции перенаправления портов ssh.
Проверьте страницы руководства для вышеупомянутого ...
HTH
Вы можете попробовать nginx; это было бы намного эффективнее, чем [x] inetd and co.