Прежде всего, вы смешиваете две концепции в одну идею.
- Переадресация портов TCP/IP
- HTTP перенаправление
Вы можете достичь того, чего хотите, комбинируя эти два понятия, но они являются отдельными понятиями.
HTTP перенаправление
Итак, давайте пока проигнорируем переадресацию портов. Давайте сначала настроим часть перенаправления.
$ sudo editor /etc/apache2/sites-available/thews_site
Это создает новый файл конфигурации для новой конфигурации сайта в Apache. В нем мы можем разместить всю конфигурацию для нашего сайта.
Наш Виртуальный Хост
Давайте определим ваш новый сайт Apache:
NameVirtualHost *:12345
<VirtualHost *:12345>
Redirect / http://www.superuser.com
</VirtualHost>
Это создает новый сайт, доступ к которому можно получить с любого локального IP-адреса, но только через порт 12345
.
Само определение сайта довольно короткое. Имеется только 1 запись конфигурации. Перенаправление на целевой сайт.
Конфигурация порта Apache
Мы также должны сказать Apache, чтобы он прослушивал наш новый порт!
$ sudo echo "Listen 12345" >> /etc/apache2/ports.conf
Это добавит строку Listen 12345
в конце /etc/apache2/ports.conf
. Кроме того, вы можете добавить его самостоятельно, используя текстовый редактор.
Теперь давайте включим сайт
$ sudo a2ensite thews_site
$ sudo invoke-rc.d apache2 restart
Это сделает наш ранее определенный сайт включенным. Вторая команда перезапустит Apache.
тестирование
Если вы сейчас введете http://localhost:12345
в своем браузере, вы будете перенаправлены на superuser.com
!
Перенаправление порта
Теперь вы можете настроить переадресацию портов. Вы бы сделали это на своем маршрутизаторе. Скажите маршрутизатору переадресовать ваш публичный порт 33333
на локальный порт 12345
.
Теперь, если кто-то зайдет на your-public-ip:33333
он будет перенаправлен на superuser.com
.
Эти примеры были все для сред на основе Debian. Надеюсь, вы сможете адаптировать их, если вам нужно.
Удачи :)