Перенаправление портов от domain1.com:25565 до 40 000 и от domain2.com:25565 до 30 000

У меня есть работа Сервера порта 30.000 и порта 40.000 и если кто-то acess domain1.com:25565, который он должен подключить к локальному порту 40.000 и если он соединяется по domain2.com:25565, он должен соединиться с локальным портом 30.000

domain1.com:25565-> 37.120.174.183:25565-> localhost:40000

domain2.com:25565-> 37.120.174.183:25565-> localhost:30000

0
задан 20 August 2015 в 09:39

3 ответа

Как правило, входящие пакеты, пытающиеся инициировать соединение, не содержали бы целевое доменное имя, только целевой IP-адрес. Поэтому нет достаточной информации для создания любых правил iptables перенаправить пакеты. Вы не можете сделать то, что Вы пытаетесь сделать.

Теперь, Вы могли бы знать, что часто веб-серверы могут иметь дело со многими различными доменами, все решающие к одному IP-адресу. Это сделано с помощью конфигурации веб-сервера, а не на уровне сетевого пакета. В конечном счете, после того как сетевое соединение было установлено, целевое доменное имя включено, и веб-сервер может решить, к каким фактическим страницам пользователь пытается получить доступ и ответить соответственно.

0
ответ дан 1 October 2019 в 03:49

Не iptables решение, но работа :)

, Решение состоит в том, чтобы использовать apache модули mod_proxy.so и mod_proxy_http.so

Установка mod_proxy и прокси реверса установки в Установке веб-сервера

Apache модуль

sudo apt-get install libapache2-mod-proxy-html

Установка Загрузки зависимости libxml2-dev

apt-get install libxml2-dev

, модуль

a2enmod proxy proxy_http

Создает Виртуальный Хост в апачском конфигурационном файле.

sudo nano /etc/apache2/sites-enabled/000-default

Listen 40000
Listen 30000
<VirtualHost *:25565>
        ServerName domain1.com
        ServerAlias www.domain1.com
        DocumentRoot /var/www/vhosts/domain1.com

        <Directory /var/www/vhosts/domain1.com>
                Options -Indexes FollowSymLinks -MultiViews
                AllowOverride All
                Order deny,allow
                Allow from all
        </Directory>
        CustomLog /var/log/httpd/domain1.com-access.log combined
        ErrorLog /var/log/httpd/domain1.com-error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        ProxyPass / http://domain1.com:40000/
        ProxyPassReverse / http://domain1.com:40000/
</VirtualHost>


<VirtualHost *:40000>
        ServerName domain1.com
        ServerAlias www.domain1.com
        #### This is where you put your files for that domain: /var/www/vhosts/domain1.com
        DocumentRoot /var/www/vhosts/domain1.com
</VirtualHost>



<VirtualHost *:25565>
            ServerName domain2.com
            ServerAlias www.domain2.com
            DocumentRoot /var/www/vhosts/domain1.com

            <Directory /var/www/vhosts/domain2.com>
                    Options -Indexes FollowSymLinks -MultiViews
                    AllowOverride All
                    Order deny,allow
                    Allow from all
            </Directory>
            CustomLog /var/log/httpd/domain2.com-access.log combined
            ErrorLog /var/log/httpd/domain2.com-error.log
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn

            ProxyPass / http://domain2.com:30000/
            ProxyPassReverse / http://domain2.com:30000/
    </VirtualHost>


    <VirtualHost *:30000>
            ServerName domain2.com
            ServerAlias www.domain2.com
            #### This is where you put your files for that domain: /var/www/vhosts/domain2.com
            DocumentRoot /var/www/vhosts/domain2.com
    </VirtualHost>

Теперь перезапускают апачей

 /etc/init.d/apache2 restart

, Только оставлен запретить доступа с iptables для внешней сети на портах 30000 и 40000 потому что apache использование localhost.

0
ответ дан 1 October 2019 в 03:49

Хотя mod-proxy от Apache может работать, лучшее решение для Вашей проблемы использует обратный прокси такой в качестве haproxy.

установка haproxy при помощи этой команды:

sudo apt-get install haproxy

затем редактируют файл конфигурации как так:

sudo nano /etc/haproxy.cfg

помещает эти строки в файл конфигурации

//Put this in the file
global
    daemon
    maxconn 4096

defaults
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http-in
    bind *:25565
    acl is_site1 hdr_end(host) -i domain1.com
    acl is_site2 hdr_end(host) -i domain2.com

    use_backend site1 if is_site1
    use_backend site2 if is_site2

backend site1
    balance roundrobin
    option httpclose
    option forwardfor
    server s2 127.0.0.1:40000 maxconn 32

backend site2
    balance roundrobin
    option httpclose
    option forwardfor
    server s1 127.0.0.1:30000 maxconn 32

listen admin
    bind 127.0.0.1:8080
    stats enable

, запускают/перезапускают Вас сервер при помощи:

sudo /usr/sbin/haproxy -f /etc/haproxy.cfg -D -p /var/run/haproxy.pid

источник

0
ответ дан 1 October 2019 в 03:49

Другие вопросы по тегам:

Похожие вопросы: