Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по RusHub'у _ Не могу зайти на виртуалку по 411 порту

Автор: hjet 23.5.2015, 16:13

Не могу зайти извне, хоть тресни. Может кто из гуру подкинет идею куда копать? В чем может быть проблема - iptables или vmware? История такая - поставил я на виртуалку debian 8, который новый - погонять, посмотреть, пощупать. Ну и думаю, дай ка я русхаб тоже поставлю на неё. Ставлю так:

Процесс установки rushub на голый debian 8

Ставклю, чего нет
Код
# apt-get install zlib1g-dev build-essential liblua5.1-dev subversion

Добавляем юзверя, от имени и из папки которого будет работать хаб
Код
# useradd -m -s /bin/bash dchub
# passwd dchub 12345678

От имени юзверя dchub
Код
$ nano rushub_svn_make.sh

В файл пишу следующее
rushub_svn_make.sh
Код
#!/bin/sh
# Перед сборкой установите: build-essential liblua5.1-dev subversion если у Вас не установлены,
# Установить можно командой для Ubuntu/Debian :
# sudo apt-get install build-essential liblua5.1-dev subversion

# --------- #
# Настройки
# --------- #

# папка где будет собираться & копироваться результат сборки,
# по умолчанию создается в домашней директори пользователя папке rushub
DIRHUB=~/rushub

# Скачиваем исходники с svn
svn co https://rushub.svn.sourceforge.net/svnroot/rushub/trunk/ $DIRHUB/tmp

# Собираем tinyxml
cd $DIRHUB/tmp/rushub/src/tinyxml
make

# Собираем непосредственно rushub
cd $DIRHUB/tmp/rushub/src
make

# Собираем lua plugin
cp --remove-destination $DIRHUB/tmp/rushub/src/Plugin.h $DIRHUB/tmp/lua_plugin/src/
cp -r --remove-destination $DIRHUB/tmp/rushub/src/tinyxml $DIRHUB/tmp/lua_plugin/src/
cd $DIRHUB/tmp/lua_plugin/src/
make

# Перемещаем собранное в папку rushub
mv -f $DIRHUB/tmp/rushub/src/RusHub ~/rushub/
mkdir $DIRHUB/plugins/
mv -f $DIRHUB/tmp/lua_plugin/src/lua.so ~/rushub/plugins/

# Удаляем исходники
rm -rf $DIRHUB/tmp

# Запускаем RusHub, для создания настроек. И вырубаем.
$DIRHUB/RusHub -d
kill -15 $(pidof $DIRHUB/RusHub)

Из под рута даю файлу права за запуск
Код
# chmod +x /home/dchub/rushub_svn_make.sh

Запускаю файл от имени dchub
Код
$ ./rushub_svn_make.sh

Пока хаб собирается, через root создаю файл для автозапуска хаба
Код
# nano /etc/init.d/rushub

Пишу в него
/etc/init.d/rushub
Код
#!/bin/sh

### BEGIN INIT INFO
# Provides:          rushub
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by rushub.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

NAME="RusHub"
USER="dchub"
PATH_DAEMON="/home/$USER/rushub"
DAEMON="$PATH_DAEMON/$NAME"
PATH_DAEMON_CFG="$PATH_DAEMON/RusHub.xml"
PIDF="$PATH_DAEMON/rushub.pid"

ARGS="-c $PATH_DAEMON_CFG"

start() {
    echo -n "Запуск $NAME: "
    start-stop-daemon --start --chuid $USER --make-pidfile "$PIDF" --pidfile "$PIDF" --name $NAME --background --startas $DAEMON -- $ARGS
    echo "готово."
}
stop() {
    echo -n "Остановка $NAME: "
    start-stop-daemon --chuid $USER --stop --pidfile "$PIDF" --name $NAME --retry=TERM/5/KILL/10
    rm "$PIDF"
    echo "готово."
}
restart() {
    stop
    sleep 2
    start
}

if [ ! -x "$DAEMON" ]
then
   echo "отсутствует файл для запуска $DAEMON"
   exit 0
fi

case "$1" in
    start)
        start
;;
    stop)
        stop
;;
    restart)
        restart
;;
    status)
        if [ -f "$PIDF" ];
        then
            PID=$(cat $PIDF)
            if [ `ps auwx|grep $NAME|grep $PID|grep -v -c grep` = 1 ]
            then
                echo "процесс $NAME работает [pid: $PID]."
                exit 0
            fi
            echo "процесс $NAME не запущен."
            exit 3
        fi
        echo "процесс $NAME не запущен."
        exit 3
;;
    *)
        echo "Использование {start|status|stop|restart}"
        exit 1
;;
esac
exit 0

Разрешаю его запуск
Код
# chmod +x /etc/init.d/rushub

Автозапуска хаба при старте
Код
# update-rc.d -f rushub defaults

Настраиваю iptables, перенаправление порта
Код
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 411 -j REDIRECT --to-ports 4111

Сохраняю правила в свой файл
Код
# iptables-save > /etc/iptables.up.rules

Автозагрузка правила, открываю
Код
# nano /etc/network/interfaces

Ищу строчку "iface eth0 dhcp" и после неё дописываю
Код
pre-up iptables-restore < /etc/iptables.up.rules
через eiskaltdc, установленный на самом дебиане, я сам к себе на хаб захожу на 4111 порт, извне - ничерта. Хаб работает нормально, lua скрипты работают нормально, голова моя не работает - эт факт
beat_brick.gif

з.ы. текст этого сообщения мальца изменил, т.к. кое-чо забыл дописать в процесс установки моей
з.ы.ы. скорее всего дело в виртуалке - с реальной машины (win8) через telnet пустил
Код
o 192.168.145.132 411
пришел ответ
Код
$Lock EXTENDEDPROTOCOL_RusHub_by_setuper_2.4.0[beta] ...
p/s/ Вопрос решен. Дело было в кривом vmware, поставил virtualbox и уже на нем я смог зайти на хаб извне =)