Переадресация портов с домена1.com:25565 до 40000 и от домена2.com:25565 до 30000

Другой способ использования xdotool. Сначала вы должны установить его, поэтому sudo apt-get install xdotool является обязательным.

xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@

Первый поиск для любого двоичного файла, называемого *terminal*, второй ищет любое окно, имеющее название *braiam@bt*. Затем, если вы поместите это в скрипт bash:

#!/bin/bash

set -e
program=$@

xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@

Вы можете узнать об этом больше в руководстве xdotool.

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

2 ответа

Не решение 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

Создайте виртуальный хост в файле конфигурации apache.

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>

Теперь перезапустите apache

 /etc/init.d/apache2 restart

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

0
ответ дан 23 May 2018 в 18:04

Хотя 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

start / restart вы используете:

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

источник

0
ответ дан 23 May 2018 в 18:04

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

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