Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: BigBore в Feb 19, 2012, 18:27



Титла: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 19, 2012, 18:27
Здравейте!
Имам малък проблем с портовете под Debian 6..
Хоствам гейм сървъри и както знаете трябват определени портове или който си настроиш.
Сървърите работеха както трябва под Ubuntu и реших да направя всичко по-качественно и минах на Debian,но уви се получи проблем.. След това се опитах пак да ги сложа на Ubuntu но същия проблем.. ;x


Днес на свежа глава мислих и тествах и стигнах до два извода.
1. Че нещо самия Debian ги затваря тези сървъри. Той е преинсталиран и нищо не му е качвано като firewall.
Мисля,че има инсталиран iptables,но и да го махна промяна няма.
2. Че нещо се е*бава самия рутер,но не мисля,че е това,защото сървърите под Windows си работят без проблеми.

Също така тествах сървъра под друг порт,който зададох и си тръгна,но на този порт,който искам не тръгва. Изтрих порта от рутер панела  и пак го зададох,но без резултат.
Може ли за малко помощ от какво може да е.. ?


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: vox в Feb 19, 2012, 19:09
iptables -X
iptables -F
iptables -t nat -F
iptables -t mangle -F

това пробва ли го ?


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: b2l в Feb 19, 2012, 19:10
Има едно златно правил: Работи ли, не го пипай. Не казваш кой порт искаш да използваш? Не казваш и защо като ти работят нещата под друг порт не искаш да използваш него...


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: laskov в Feb 19, 2012, 19:21
Понякога един рестарт на машината оправя нещата.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: b2l в Feb 19, 2012, 19:21
Понякога един рестарт на машината оправя нещата.

Не съм съгласен. Все пак това не е Windows и не е Desktop.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: Acho в Feb 19, 2012, 19:37
/off

Цитат -> "...Хоствам гейм сървъри..."

Аз пък все се чудя. Е какъв велик ХОСТЕР си, че хостваш СЪРВЪРИ, а с най-дребното мрежово нещо не можеш да се оправиш ? Или това хостване включва че си им собственик, и плащаш тока и нета. С другото - друг администратор да се оправя.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: mystical в Feb 19, 2012, 21:53
Съмнявам се да има блокирани портове, но ако постнеш изхода от тези команди, веднага ще разберем:
Цитат
iptables -L
iptables -t nat -L
Дай повече информация за сървърите. Вероятно проблема е от сървъра или от рутера.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 20, 2012, 19:10
Този проблем вече е оправен,след като рестартиране на настройките на рутера и въвеждане на няколко команди в терминала.

Сега имам друг проблем..
Искам да добавя един скриптове,за да стартират заедно с линкса,но успях само един файл да го направя.
Файловете се намират в /etc/init.d/ и съм въвел 3-файла пощи едни и същи с различни имена.
С командата:
update-rc.d името на файла default 99 ,но само единия файл се стартира,другите не може да ги вкара в системата..
Някой да знае защо.. ?


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: dejuren в Feb 21, 2012, 02:07
Този проблем вече е оправен,след като рестартиране на настройките на рутера и въвеждане на няколко команди в терминала.

Сега имам друг проблем..
Искам да добавя един скриптове,за да стартират заедно с линкса,но успях само един файл да го направя.
Файловете се намират в /etc/init.d/ и съм въвел 3-файла пощи едни и същи с различни имена.
С командата:
update-rc.d името на файла default 99 ,но само единия файл се стартира,другите не може да ги вкара в системата..
Някой да знае защо.. ?

Описанието ти е накъсано и неточно. Бъди конкретен - имена на команди, места, какви команди използваш за да добавиш скриптовете, какъв е резултата от тях (копие от конзолата). Първото за което мога да се хвана е default, понеже update-rc.d изисква defaults, но с твоето описание не е сигурно дали си допуснал грешка само тук във форума или и в командата. Прочети си и man update-rc.d.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 21, 2012, 15:56
Не не допускам грешка при въвеждането на командата.
Само един от скриптовете успях да го вкарам другите,където са с едни и същи само,че с различни настройки не става.
Става въпрос за скрипт за стартиране на CS сървър. (Counter-Strike)
Ето и темата ако не сте ма разбрали. Най-отдолу има прикачен скрипта.
Линк: http://www.amxmodxbg.org/forum/viewtopic.php?t=33998&highlight=

Както казах по-горе не допускам грешка при въвеждането му и искам да попитам дали има някакъв начин аз да го добавя чрез слагане в някоя папка или записване с друг код и т.н


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: vox в Feb 21, 2012, 20:25
Обща Грешка
 
За да имате достъп и до забодените теми в този форум, трябва да сте регистриран член във форума !
 
нищо не видях

обаче CS сървър се стартира с прост скрипт които можеш да добавиш в rc.local


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 22, 2012, 21:54
Обща Грешка
 
За да имате достъп и до забодените теми в този форум, трябва да сте регистриран член във форума !
 
нищо не видях

обаче CS сървър се стартира с прост скрипт които можеш да добавиш в rc.local

Аз имам скрипт,който си работи сървъра и няма грешка,но при самия рестарт на машината скрипта не зарежда и искам да го вкарам в update-rc.d там където се пуска скрипта с самото зареждане на сървъра. Само единия сървър се пуска а другите не.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: mystical в Feb 22, 2012, 22:20
Аз имам скрипт,който си работи сървъра и няма грешка,но при самия рестарт на машината скрипта не зарежда и искам да го вкарам в update-rc.d там където се пуска скрипта с самото зареждане на сървъра. Само единия сървър се пуска а другите не.

Цитат
touch /opt/start.sh

nano /opt/start.sh
Цитат
#!/bin/sh

killall screen 2> /dev/null
cd /opt/classic
screen -dmS classic ./hlds_run -game cstrike +ip 192.168.0.1 +port 27015 +map de_dust2 +maxplayers 32 -pingboost 3 -binary ./hlds_i686
cd /opt/5vs5
screen -dmS 5vs5 ./hlds_run -game cstrike +ip 192.168.0.1 +port 27016 +map de_dust2 +maxplayers 11 -pingboost 3 -binary ./hlds_i686
chmod +x /opt/start.sh

nano /etc/rc.local
Цитат
/opt/start.sh


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 22, 2012, 22:25
А в самия файл classic или там както искам да се казва слагам самия скрипт така ли.. ?


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: mystical в Feb 22, 2012, 23:29
/opt/start.sh - това е примерно име на файл и примерно местоположение. Може да го поставиш в друга директория и да го кръстеш по различен начин, но трябва да го опишеш точно в /etc/rc.local (като местоположение и име).

/opt/classic - това е директорията, в която се намира единия сървър. Променяш местоположението според твоите нужди.

/opt/5vs5 - това е директорията, в която се намира другия сървър. Променяш местоположението според твоите нужди.

Ако все пак не ти е ясно постни твоя скрипт с местоположението на сървърите и ще преработя по-горния за твоите нужди.


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 23, 2012, 14:45
Няма да качвам файловете а направо ще напиша скрипта макар то да е дълъг.

Скрипт:
Цитат
"#!/bin/sh
### BEGIN INIT INFO
# Provides:          csservers
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
# This script edit by kostov[Virtual.New.BG]
# Server options
TITLE='Counter-Strike Dedicated Server'
SESSION='hlds'
DAEMON='hlds_run'
DIR='/home/slidenew2'
USER='root'

# Game options
IP='213.145.104.230'
PORT='37015'
MAP='slide_kzfr_woodslide'
GAME='cstrike'
PLAYERS='5'
TICRATE='580'
PINGBOOST='2'
SVLAN='0'
RCON=''

# Server options string
OPTS="-game $GAME +ip $IP +maxplayers $PLAYERS +map $MAP -port $PORT +sv_lan $SVLAN +rcon_password $RCON +sys_ticrate $TICRATE -pingboost $PINGBOOST -master  -noipx -nojoy +log off -pidfile $DIR/$GAME/$SESSION.pid"

# Screen command
CURRENT_USER=$(/usr/bin/whoami)
if [ "$CURRENT_USER" = "$USER" ]; then
    INTERFACE="/usr/bin/screen -A -m -d -S $SESSION"
  else
    INTERFACE="sudo -u $USER /usr/bin/screen -A -m -d -S $SESSION"
fi

service_start() {
    if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
        if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then
            echo -e "Cannot start $TITLE.  Server is already running."
        else
            if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then
                kill -9 `cat $DIR/$GAME/$SESSION-screen.pid`
                echo "Killing process ID $id"
                echo "Removing $TITLE screen pid file"
                rm -rf $DIR/$GAME/$SESSION-screen.pid
   break
            fi
   if [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
   rm -rf $DIR/$GAME/$SESSION-screen.pid
   fi
        echo "Removing $TITLE pid file"
        rm -rf $DIR/$GAME/$SESSION.pid
        screen -wipe 1> /dev/null 2> /dev/null
        service_start
        fi
    else
        if [ -x $DIR/$DAEMON ]; then
            echo "Starting $TITLE"
            cd $DIR
            $INTERFACE $DIR/$DAEMON $OPTS
            sleep 15
            ps -ef | grep SCREEN | grep "$SESSION" | grep -v grep | awk '{ print $2}' > $DIR/$GAME/$SESSION-screen.pid
            echo "$TITLE screen process ID written to $DIR/$GAME/$SESSION-screen.pid"
            echo "$TITLE server process ID written to $DIR/$GAME/$SESSION.pid"
           
            echo "$TITLE started."
            chmod 666 $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null
            chown $USER $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null
            sleep 15
        fi
    fi
}

service_stop() {
    if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
        echo "Stopping $TITLE"
        for id in `cat $DIR/$GAME/$SESSION-screen.pid`
            do kill -9 $id
            echo "Killing process ID $id"
            echo "Removing $TITLE screen pid file"
            rm -rf $DIR/$GAME/$SESSION-screen.pid
            break
        done
        echo "Removing $TITLE pid file"
        rm -rf $DIR/$GAME/$SESSION.pid
        screen -wipe 1> /dev/null 2> /dev/null
        echo "$TITLE stopped."
    else
        echo -e "Cannot stop $TITLE. Server is not running."
    fi   
}


service_watch() {
        if [ `screen -wipe | grep $SESSION | grep -v grep | awk '{ print $2 }'` == '(Attached)' ]; then
                echo -e "Someone is already attached to the console of the server.\n Might want to check who"
        else
                screen -r $SESSION
        fi
}


case "$1" in
    'start')
        service_start
        ;;
    'stop')
        service_stop
        ;;
    'restart')
        service_stop
        sleep 10
        service_start
        ;;
   'watch')
      service_watch
      ;;
    *)
        echo "Usage $0 start|stop|restart|watch"
esac

exit 0
"
Това е скрипта,който ми трябва за сървърите.
Ето и упътване как се прави и как се вкарва в линукса.
Цитат
"За Debian базираните:
Код:
apt-get install screen

За RedHat базираните
Код:
yum install screen


2. Правите файл с някакво име в папката /etc/init.d
Код:
nano /etc/init.d/classic

3. Слагате в него съдържанието и го настройвате:
Код:
TITLE='Counter-Strike Dedicated Server' - Най-добре е тук да сложите името на сървъра ви (За да не се бъркате)
SESSION='hlds' - Името на сесията, чрез която по-късно ако ви се наложи да влезнете в конзолата на сървъра
DAEMON='hlds_run' - Името на демота който ще стартирате (Както обикновено той е hlds_run)
DIR='/home/hlds' - Пътя до директорията на сървъра
USER='root' - Под какъв потребител да върви сървъра (Препоръчително е да си остане root)

# Game options
IP='127.0.0.1' - Ип-то на сървъра през което той да тръгне
PORT='27015' - Порта на сървъра
MAP='de_dust2' - Стартиращата карта (С коя карта да тръгне сървъра)
GAME='cstrike' - Коя модификация искате да пуснете (За CS - cstrike. За Half-Life - valve)
PLAYERS='21' - Колко максимални играча да има сървъра
TICRATE='600' - sys_ticrate на сървъра
PINGBOOST='2' - Буустера на сървъра възможности 1, 2 или 3
SVLAN='0' - sv_lan опцията
RCON='' - И rcon паролата (Ако не искате такава оставете това празно)


4. След като сте настроили сървъра е време да му зададем права:
Код:
chmod +x името-на-файла

Пример:
Код:
chmod +x classic


5. Сега време да вкараме скрипта в процесите на Linux-а за Debian базирани:
Код:
update-rc.d името-на-файла defaults 99

Пример:
Код:
update-rc.d classic defaults 99


5. Сега време да вкараме скрипта в процесите на Linux-а за RedHat базирани:
Код:
chkconfig --level 345 името-на-файла on

Пример:
Код:
chkconfig --level 345 classic on
"

Всички стъпки ги знам на изуст и не мисля,че ги бъркам.
Пак казвам само единия скрипт ми стана а другите не.
Ако можеш да ми кажеш с моя скрипт стъпки по-твоя начин как ще стане,за да мога да се ориентирам още.. :)



Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: mystical в Feb 23, 2012, 21:39
Единствено ме съмнява да си въвел едно и също име за всички сървъри:
SESSION='hlds' - за всеки сървър трябва да е различно.
PORT='37015' - за всеки сървър трябва да е различен 37016,37017,37018


Титла: Re: Проблем с портовете при Debian 6.
Публикувано от: BigBore в Feb 23, 2012, 22:16
Не всичко е както трябва. В смисъл всичко е различно както трябва да бъде.. Ще вида да направя наново другите скриптове с някой други именна,аджеба тръгне. Но Session там всичките скриптове са с различни.