Другой способ использования 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.
Не решение 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.
Хотя 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
источник