[SOLVED] Две копии VSFTP на одном сервере

Здравствуйте.

Пытаюсь запустить две копии vsftpd.
ln /etc/init.d/vsftpd /etc/init.d/vsftpd.localhost

содержимое /etc/vsftpd/vsftpd.conf

listen=YES
listen_port=21
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=NO
ascii_download_enable=NO
ls_recurse_enable=NO
chroot_local_user=YES
userlist_file=/etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO

содержимое /etc/vsftpd/localhost.conf

listen=YES
listen_address=127.0.0.1
listen_port=11121
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=NO
ascii_download_enable=NO
ls_recurse_enable=NO
chroot_local_user=NO
userlist_file=/etc/vsftpd/user_list_localhost
userlist_enable=YES
userlist_deny=NO

Отличие в файлах:
параметры chroot_local_user, listen_address, listen_port.

Запускаю два vsftpd.
/etc/init.d/vsftpd start
/etc/init.d/vsftpd.localhost start

Ошибок при запуске не выдает.
Но работает только тот, который я запустил последним..

Может кто сталкивался, подскажите пож-та как поступить.. где искать..
Спасибо.

.

beba написал(а):
Пытаюсь запустить две копии vsftpd.
ln /etc/init.d/vsftpd /etc/init.d/vsftpd.localhost

Есть мнение, что стандартный стартовый скрипт возможности такого извращения не предусматривает.

:wq
--
Live free or die

если так и есть, что можете

если так и есть, что можете посоветовать?
есть ли возможность запустить две копии vsftpd?

Если сделать:
ln /etc/init.d/vsftpd /etc/init.d/vsftpd.localhost
и не создать файл конфига, то выдается ошибка, что не существует файл /etc/vsftpd/localhost.conf
Это не показатель, что можно запустить вторую копию создав ссылку?

Спасибо

Вместо ссылки сделать копию,

Вместо ссылки сделать копию, далее найти и исправить мешающую часть.

Если я правильно понял, то

Если я правильно понял, то скрипт поддерживает вторую копию созданую по ссылке. Или ошибаюсь?

#!/sbin/runscript
# Copyright 2003-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2
# $Header: /var/cvsroot/gentoo-x86/net-ftp/vsftpd/files/vsftpd.init,v 1.6 2008/06/02 04:18:15 darkside Exp $

VSFTPD_NAME=${SVCNAME##*.}
if [ -n "${VSFTPD_NAME}" -a "${SVCNAME}" != "vsftpd" ]; then
    VSFTPD_PID="/var/run/vsftpd.${VSFTPD_NAME}.pid"
    VSFTPD_CONF_DEFAULT="/etc/vsftpd/${VSFTPD_NAME}.conf"
else
    VSFTPD_PID="/var/run/vsftpd.pid"
    VSFTPD_CONF_DEFAULT="/etc/vsftpd/vsftpd.conf"
fi
VSFTPD_CONF=${VSFTPD_CONF:-${VSFTPD_CONF_DEFAULT}}

depend() {
        need net
        use dns logger
}

checkconfig() {
        if [ ! -e ${VSFTPD_CONF} ] ; then
                eerror "Please setup ${VSFTPD_CONF} before starting vsftpd"
                eerror "There are sample configurations in /usr/share/doc/vsftpd"
                return 1
        fi

        if egrep -iq "^ *background *= *yes" "${VSFTPD_CONF}" ; then
                eerror "${VSFTPD_CONF} must not set background=YES"
                return 1
        fi

        local has_ip=false has_ipv6=false ip_error=true
        egrep -iq "^ *listen *= *yes" "${VSFTPD_CONF}" && has_ip=true
        egrep -iq "^ *listen_ipv6 *= *yes" "${VSFTPD_CONF}" && has_ipv6=true
        if ${has_ip} && ! ${has_ipv6} ; then
                ip_error=false
        elif ! ${has_ip} && ${has_ipv6} ; then
                ip_error=false
        fi
        if ${ip_error} ; then
                eerror "${VSFTPD_CONF} must contain listen=YES or listen_ipv6=YES"
                eerror "but not both"
                return 1
        fi
}

start() {
        checkconfig || return 1
        ebegin "Starting ${SVCNAME}"
        start-stop-daemon --start --exec /usr/sbin/vsftpd \
                --background --make-pidfile --pidfile "${VSFTPD_PID}" \
                -- "${VSFTPD_CONF}"
        eend $?
}

stop() {
        ebegin "Stopping ${SVCNAME}"
        start-stop-daemon --stop --exec /usr/sbin/vsftpd
        eend $?
}

# vim: ts=4

Советую поставить strace,

Советую поставить strace, запустить один и второй под ним. Потом пробовать покдключиться на одни и второй с смотреть что упадет в консоль...

В свое время запускал

В свое время запускал несколько сервисов vsftpd, и всё работало. (правда на данный момент пришлось переделать на proftpd, он поддерживает набор каталогов в зависимости от логина)
Рекомендую сделать изменения в плане внесении конкретного адреса на котором слушает сервис
типа
listen_address=внешний_ip
Кроме того я делал символьные ссылки и только их запускал
# для файла конфигурации /etc/vsftpd/localhost.conf
ln -s /etc/init.d/vsftpd /etc/init.d/vsftpd.localhost
/etc/init.d/vsftpd.localhost start
# для файла конфигурации /etc/vsftpd/vsftpd.conf
ln -s /etc/init.d/vsftpd /etc/init.d/vsftpd.vsftpd
/etc/init.d/vsftpd.vsftpd start

:(

спасибо за ответ,
прописал listen_address, сделал vsftpd тоже ссылкой (vsftpd.vsftpd)
не помогло :(

а в другой копии тоже ip

а в другой копии тоже ip прописан? иначе он сядет на :21 и всё.

..

спасибо за отклик...

в одном конфиге:
listen_port=21
listen_address=XXX.XXX.XXX.XXX

в другом конфиге:
listen_port=11121
listen_address=127.0.0.1

XXX.XXX.XXX.XXX - внешний ип сервера

нужно вещать ровно тот ip,

нужно вещать ровно тот ip, который присвоен вашей сетевой карте...

вроде так и есть, как

вроде так и есть, как говорите..
т.е. есть локальный интерфейс lo - 127.0.0.1
и есть сет. интерфейс eth0 - XXX.XXX.XXX.XXX, который прописан в конфиге.

подождите, а зачем поднимать

подождите, а зачем поднимать на 127.0.0.1? и как вы пытаетесь зайти?

локально пускаем по всему

локально пускаем по всему диску, настроена система обновления версий сайтов..
система работает с использованием фтп..
локально через веб интерфейс запускаю и соединяюсь с фтп сервером.

через

через xinetd:
/etc/xinetd.d/vsftpd:
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd/vsftpd.conf
log_on_success += DURATION
nice = 10
disable = no
bind = 127.0.0.1
only_from = localhost
}
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd/vsftpd.eth0.conf
log_on_success += DURATION
nice = 10
disable = no
bind = 10.11.11.11
only_from = 0.0.0.0/0
}

/etc/vsftpd/vsftpd.conf:
...
listen=NO
...

/etc/vsftpd/vsftpd.eth0.conf:
...
listen=NO
...

спасибо, попробую.. с xinetd

спасибо, попробую..
с xinetd не сталкивался..
как я понимаю это отдельный пакет ставиться..

нет, у vsftpd USE флаг

нет, у vsftpd USE флаг xinetd.

спасибо

спасибо

всем спасибо, решил

всем спасибо, решил проблему.
ступил..
при копировании конфигураций, нечаянно скопировал
connect_from_port_20=YES

p.s. в конфиги никто наверное не глянул, когда читал пост ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".