unixforum.org
Подключение по FTP к CentOS на виртуальной машине
Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.
Модератор: SLEDopit
15 сообщений • Страница 1 из 1
Novascriptum Сообщения: 40
Подключение по FTP к CentOS на виртуальной машине
Здравствуйте все!
Имеем Windows 7, на которой установлена виртуальная машина VirtualBox, внутри которой, в свою очередь, развернут CentOS 6.5. В CentOS установлена Vesta Panel .
В скриншоте описаны порты, которые пробрасываются виртуальной машине:
В панель управления получилось зайти по адресу https://127.0.0.1:8083. Также получилось создать виртуальный хост и зайти на него — увидел страничку по умолчанию (предварительно прописал домен в windows’овском файлике hosts).
Проблемка возникла при попытке соединиться по FTP, вот что выдал FileZilla:
Статус: Соединяюсь с 127.0.0.1:21. Статус: Соединение установлено, ожидание приглашения. Ответ: 220 (vsFTPd 2.2.2) Команда: USER bitrix Ответ: 331 Please specify the password. Команда: PASS ******** Ответ: 230 Login successful. Команда: SYST Ответ: 215 UNIX Type: L8 Команда: FEAT Ответ: 211-Features: Ответ: EPRT Ответ: EPSV Ответ: MDTM Ответ: PASV Ответ: REST STREAM Ответ: SIZE Ответ: TVFS Ответ: UTF8 Ответ: 211 End Команда: OPTS UTF8 ON Ответ: 200 Always in UTF8 mode. Статус: Соединение установлено Статус: Получение списка каталогов. Команда: PWD Ответ: 257 "/" Команда: TYPE I Ответ: 200 Switching to Binary mode. Команда: PASV Ответ: 227 Entering Passive Mode (213,191,28,174,47,47). Команда: LIST Ошибка: The data connection could not be established: ECONNREFUSED - Connection refused by server
В какую сторону рыть? С чем может быть связана такая ошибка?
Как получить доступ к FTP за NAT VirtualBox?
Добрый день!
Конфигурация:
Сервер на Hetzner (возможно, это тоже важно), на нем стоит Ubuntu 16 с GUI, связь через VNC. Стоит VirtualBox, в ней гостевая система Windows 7 (связь через RDP с пробрасыванием портов через VB напрямую в гостевую ОС, см скрин ниже).
В гостевой ОС стоит Ospanel с настроенным FTP на 21 порту с авторизацией prntscr.com/jos1x3 (утилита currports показывает что висит на 21, 990 и 14147 (?) портах prntscr.com/jorxt1 ) , связь с FTP внутри гостевой системы есть по ftp://localhost:21 | ftp://127.0.01:21
Настроил port forwarding такой же как делал для RDP из хост системы в гостевую систему 2222>21 порт prntscr.com/jorzen
2222 порт слушается в системе,
netstat -an | grep 2222 tcp 0 0 DEDIC_IP:2222 0.0.0.0:* LISTEN
Когда пытаюсь приконнектиться извне (браузер, winscp), или же в самой хост системе, ситуация одна и та же.
Вижу что с хостом(ubuntu) по 2222 порту связь есть, соединение ESTABLISHED, а вот дальше получается что до гостевой ОС не доходит или же доходит (хотя форвардинг работает как и с RDP настроен), но я там соединений не вижу. При попытке соединения секунд через 30 отдает ошибку (Превышен интервал ожидания). Если пробовать другой порт, то сразу отключается.
В гостевой ОС Windows firewall отключен везде где можно.
Подскажите пожалуйста, где ошибка и куда копать?
UPDATE:
Связь появилась! Оказалось что в Ospanel надо было поставить вместо localhost статический IP гостевой ОС. Теперь новая ошибка — FTP пассивный prntscr.com/jos85h .
- Вопрос задан более трёх лет назад
- 2078 просмотров
2 комментария
Средний 2 комментария
Как настроить FTP в Windows Server

В этой инструкции мы расскажем как настроить FTP-сервер на VPS с Windows.
Подключение компонентов для FTP-сервера
- Для обеспечения работы FTP-сервера на Windows Server необходимо подключить дополнительное компоненты. Для этого зайдите Диспетчер серверов и нажмите ссылку “Добавить роли и компоненты”.

- Появится мастер добавления компонентов. Нажимайте кнопку “Далее”.

- Выбирайте “Установка ролей и компонентов”.

- Далее нужно отметить пункт “Выберите сервер из пула серверов”, выбираете ваш сервер и жмете кнопку “Далее”.

- Далее необходимо выбрать Веб-сервер (IIS).

- Откроется мастер добавления ролей и компонентов и жмите “Добавить компоненты”.

- В левом меню появляется пункт “Службы ролей”. Жмите и находите в списке FTP-сервер. Отмечайте все пункты и жмите кнопку “Далее”.

- Устанавливайте дополнения.

- После установки появится надпись, что установка на ваш виртуальный сервер завершена.

Настройка FTP-сервера
- Далее возвращайтесь в Диспетчер серверов и в левом меню выбирайте пункт IIS. Правой кнопкой нажимайте на свой виртуальный сервер и переходите к пункту “Диспетчер служб IIS”.

- Далее в левой колонке нажмите правой кнопкой на пункте “Сайты” и выберите “Добавить FTP-сайт”.

- Вписывайте название и адрес, где располагается папка FTP. Тут же можно ее создать.

- После выбора жмите “Далее”. Внимание! Имя папки должно быть на латинице.

- На этой странице нужно выбрать выбрать адрес вашего виртуального сервера из выпадающего меню. И отметить пункты “Без SSL” и “Запускать FTP-сайт автоматически”. После этого жмите “Далее”.

- Выбирайте обычную проверку подлинности и нужно выбрать кому вы хотите разрешить доступ (потом этот выбор можно будет изменить). Ставьте разрешения на чтение и запись и жмите кнопку “Готово”.

Настройка подключения
- Заходите в браузер и вбивайте адрес вида ftp://IPвашегосервера/. Появится окно авторизации, где вы можете авторизоваться (Внимание! Имя пользователя должно быть на латинице). Если вы не знаете параметры пользователей на виртуальном сервере, вы можете добавить нового пользователя по нашей инструкции.

- После этого у вас открывается страница в браузере. Необходимо нажать кнопку ALT на клавиатуре, далее перейти в открывшемся меню по кнопкам “Вид” — “Открыть FTP-сайт в проводнике”.

- Повторно авторизуетесь.

- Открывается ваша папка, которая указана в настройках.

- Дальше нужно настроить брандмауэр и открыть подключение для всех соединений. Открывайте PowerShell и вписывайте туда команду:
netsh advfirewall firewall add rule name=”FTP” action =allow protocol=TCP dir=in localport=21

6. После того, как появляется ответ “ОК”. Можно проверить FTP-соединение из любого клиента, у нас есть инструкция для FileZilla.
Как настроить vsftpd на virtualbox? 500 Illegal PORT command [Решено]

![]()
MacLeod — 13 Апрель, 2014 — 16:19

Почитайте про работу FTP протокола, для начала. Соединение на порт 21 является только управляющим, данные идут по отдельным соединениям.
Используйте sftp. Оно же передача файлов через ssh, есть отдельная команда scp (аналог cp для копирования), ставить дополнительно ничего не нужно.
![]()
lord_i — 14 Апрель, 2014 — 08:43

Настройка vsftpd имеет массу нюансов и, как правильно заметил уважаемый MacLeod, одного порта может быть недостаточно. Если в двух словах — есть два режима работы фтп сервера. Активный — это когда после удачного хендшейка для передачи данных сервер соединяется с открытым портом клиента, и пассивный — это когда сервер предоставляет клиенту порт для соединения. Активный режим далеко не всегда подходит клиенту — многие сидят за натом и открыть порт для передачи данных не в состоянии. Для нормальной работы пассивного режима сервера необходимо дополнительно прокинуть порт (пул портов) для передачи данных. Ну и, соответственно, включить пассивный режим в vsftpd. Как-то так:
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60100
pasv_address=your.ip.addres
Хочу заметить, что vsftpd — весьма надежная и стабильная программа. Есть также, ее форк с очень приятными фичами, которых нет в оригинале.
Вобщем, как по мне, vsftpd очень достойный выбор.
ЗЫ Поддерживает ssl шифрование хендшейка и трафика.
ЗЫЫ to MacLeod: по поводу sftp — достаточно часто пользователю требуется классический фтп.
![]()
Dexel — 14 Апрель, 2014 — 09:48

Да, про диапазон портов min_port..max_port читал. Но не доходит как диапазон сделать на virtualbox. В нём один порт можно пробросить. NAT включен на виртуалке. И пассивный режим я включал прежде чем написать вопрос, и диапазон портов mix_max в конфиге, а толку если в виртуалке они не проброшены.
MacLeod, мерси за совет с sftp, работает. FTP хочу 😉
Как диапазон портов пробросить на виртуалке?
![]()
lord_i — 14 Апрель, 2014 — 11:17

В Виртуалбоксе из гуя — по одному я думаю. Делается один раз. Предполагается одновременно много клиентов для фтп? На каждого по одному порту вполне достаточно.
![]()
Dexel — 14 Апрель, 2014 — 17:12

Какие?
Один уже пробрасывал, до фени.
Диапазон пробросить нужно.
Один клиент, ну два. А портов на два клиента сколько нужно? Сто или 200?
Какие, как пробрасывать?
![]()
MacLeod — 14 Апрель, 2014 — 14:03

Начните с простого. Сделайте «виртуальный адаптер хоста» (чтобы были прямые подключения в отдельной подсети, пока без NAT), в гесте настройте FTP, попробуйте подключаться к нему и смотреть, что происходит, какие подключения и на какие порты. Потом попробуйте на хосте поднять прокси, потом NAT. Когда вы все это пощупаете руками и поймете суть, для вас не будет никакой проблемы делать пробросы =)
to Lord_i: я же не спорю, но в случае ТСа это был самый простой способ 🙂
![]()
Dexel — 14 Апрель, 2014 — 17:17

Смотреть то как? Куда? На системник? 🙂
Пробрасывать нужно хотябы потому, что хост-машина тоже имеет ftp вход, с 21 порта. А виртуалка сама по себе вообще не видит что происходит снаружи, на хост-машине те.
Вот и нужно пробросить. Чё, куда, хез.
Если переключить в виртуалке на «виртуальный адаптер хоста», то ошибка высвечивается «Не вырбан сетевой адаптер хоста».
И селектор пустой при этом. Т.е. не из чего выбрать.
![]()
MacLeod — 15 Апрель, 2014 — 09:49

Если переключить в виртуалке на «виртуальный адаптер хоста», то ошибка высвечивается «Не вырбан сетевой адаптер хоста». И селектор пустой при этом.
В главном окне Файл -> Настройки -> Сеть -> Виртуальные сети хоста.
Смотреть то как? Куда? На системник? 🙂
Ну, можно, конечно, и так. )
А можно использовать netstat, wireshark, iptables и т.д.
Я не говорил конкретное решение, я говорил, как можно получить много опыта с сетями и начать понимать, как оно работает 🙂
![]()
Dexel — 15 Апрель, 2014 — 13:53

как можно получить много опыта с сетями и начать понимать, как оно работает Это главная моя цель.
Если б проблема была пересылке файлов, мне бы общей папки, или sftp хватило.
Вот бы книжку в PDF типа «Грэм Гласс, Кинг Эйблс. Unix для программистов и пользователей» кто посоветовал. В указанной — хрен ночевал в плане сетевого администрирования 🙁
![]()
MacLeod — 15 Апрель, 2014 — 14:30

Можно и книжку поискать, а можно и спрашивать у гугла, причем прямым текстом, вроде «как поднять NAT в linux», «настройка сетевых интерфейсов linux», «настройка роутера iptables» и т.д. Результатом будет куча статей и блогов, где много чего можно почерпнуть, ну а более подробно по командам почитать в man.
Изучите ifconfig, netstat (очень мощное средство, с кучей параметров и возможностей), iptables на примерах, экспериментируя на виртуальных сетях vbox, а там и книжки не понадобятся.
![]()
Dexel — 18 Апрель, 2014 — 18:23

![]()
Dexel — 18 Апрель, 2014 — 23:22

PS. Вдруг кому понадобится.
После перезагрузки инет на хост-машине отсутствует.
Лечение.
Вычистить нах секцию касающуюся vboxnet0. Оставить только кольцевой интерфейс, т.е. то что было изкоробочно.
У меня:
auto lo
iface lo inet loopback
Создать интерфейс командой:
# vboxmanage hostonlyif create ipconfig vboxnet0 —ip 192.168.56.1 —netmask 255.255.255.0
На всякий случай приведу команду удаления:
# vboxmanage hostonlyif remove vboxnet1
Просмотр:
vboxmanage list hostonlyifs
Вот что получается:
Name: vboxnet0
GUID: 786f6276-656e-4074-8000-0a0027000000
DHCP: Disabled
IPAddress: 192.168.56.1
NetworkMask: 255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:00
MediumType: Ethernet
Status: Down
Далее после первого запуска виртуалки, статус из Down установится в Up.
Большое спасибо MacLeod.
![]()
MacLeod — 19 Апрель, 2014 — 00:42

Подсеть /24 — это класс С, пространством в 256.
Для сети 192.168.56.0/24 это диапазон от 192.168.56.1 до 192.168.56.254, не забывайте, 192.168.56.0 служит названием, а 192.168.56.255 — бродкаст (широковещательный) адрес.
Естественно, класс С может быть во многих других диапазонах, например 192.168.57.0/24, 172.16.1.0/24, 10.0.0.0/24 (диапазоны для частных сетей) или во внешней сети.
Виртуальный адаптер виртуалбокса — можете представить его как отдельную сетевую карточку в компе. Раздавая интернет через NAT гостевой машине, у вас хост превращается в маршрутизатор с двумя сетевыми карточками. Одна «смотрит» во внешний мир, другая — туда, где виртуалка(и). Если виртуальных (или, допустим, реальных) машин в вашем диапазоне было бы больше — они все видели бы друг друга напрямую.
Ну, и, судя по вашим конфигам, eth0 на вашем гесте — лишний, он получает адрес от виртуального маршрутизатора с DHCP виртуалбокса, но, по сути никак не используется.
![]()
Dexel — 19 Апрель, 2014 — 03:54

Аналогично настроил вторую виртуалку, 12.04 server.
По логике да, eth0 не нужен. Только нет наружной сети без него. Вот в этой, второй виртуалке, сначала сделал вирт.адаптер — небыло инета. Добавил eht0 — появился.
А что Вы писали за прокси? Зачем он здесь?
И если нужен, то какой именно?
![]()
MacLeod — 19 Апрель, 2014 — 12:38

Только нет наружной сети без него.
Вы имеете в виду, что из гостевой недоступен интернет?
Для этих целей я и предлагал вручную попробовать настроить прокси или NAT.
Представьте схему:
ГОСТЬ(сетевая карта с адресом 192.168.56.101) -кабель- (сетевая карта с адресом 192.168.56.1)ХОСТ(сетевая карта с адресом 46.119.175.19).
Так вот, на 192.168.56.1 вы можете поднять прокси или включить NAT для предоставления гостям выхода в интернет, сделав его шлюзом. Все как в реальной жизни, а не виртуальном vbox =)
![]()
Dexel — 19 Апрель, 2014 — 13:23

из гостевой недоступен интернет?
Да.
Всё понял на счёт прокси. Буду разбираться.
![]()
Dexel — 22 Апрель, 2014 — 15:00

MacLeod, а какой тип интерфейса создавать под сию задачу?
продолжение
![]()
dyug — 15 Апрель, 2014 — 10:04
Уважаемые дамы и господа!
Есть у меня мнение, что вы не совсем понимаете, как именно работает протокол ftp вообще, и в частности разницу между «пассивным» и «активным» режимами.
И тот и другой режимы относятся к взаимодействию ТОЛЬКО с клиентом.
активный режим — это когда сервер нормально открывает соединение передачи данных на адрес и порт КЛИЕНТА
Пассивный режим — это когда КЛИЕНТ не может принимать соединения напрямую с сервера, и должен их инициировать самостоятельно, для приема информации.
То есть в активном режиме — передача инициируется сервером методом открытия соединения на адрес порт.
В пассивном, по управляющему каналу, приходит предложение открыть соединение на соответствующий адрес и порт сервера, и уже по этому соединению принимать данные.
Исходя из этого:
Сервер НЕ МОЖЕТ быть за натом по определению.
Настройте ВБ на отдельный адрес в этой же сети,и у вас нормально заработает фтп сервер.
Во избежание — это мной проверялось неоднократно на разных видах фтп серверов.
Это — принципы протокола Файл Трасфер Протокола.
![]()
MacLeod — 15 Апрель, 2014 — 11:00

Уважаемый господин Злой Дюг!
У ТСа кабель от провайдера подключен к компьютеру с линухом, поэтому в той же сети адрес выдать нельзя.
Я же предложил сделать отдельную виртуальную сеть между хостом и гестом. Но, при таком подходе, гест потеряет доступ во внешние просторы. Чтобы его дать, я предложил поднять прокси или NAT на хосте. ИМХО, при этом ТС получит достаточно опыта, чтобы понимать, как, где и при каких обстоятельствах возможна работа протокола и сам ее принцип. Не пощупаешь руками — прозрачного понимания не будет 🙂
З.Ы. Проброс до внутреннего FTP за NAT’ом возможен. Если маршрутизатор на Linux/FreeBSD (iptables, ipfw, pf) — так точно, решается подгрузкой определенных модулей ядра, для заворачивания пакетов.
![]()
dyug — 15 Апрель, 2014 — 11:20
Ну как у тс все включено, я не нашел, но вполне Вам доверяю.
Мысль о виртуальной сети для хоста и гостя — одобряю.
Прокси для фтп? бррр. Честно говоря, лучше нат. (как мой склероз подсказывает, вроде существенно проще сделать)
Проброс для внутреннего фтп — да, модули на хосте уже точно есть.
названия я не помню, ибо ненада. 🙂
Тем более, я кажется описал общие принципы работы, и указал одно из решений, в частности, тех что у меня работает.
![]()
MacLeod — 15 Апрель, 2014 — 11:26

Про кабель было в другой теме про vbox)
Прокси или NAT нужен для того, чтобы на гесте был доступ в интернет, а не для FTP. FTP будет доступен напрямую, т.к. будет общая отдельная подсеть и адреса хоста и геста в ней.
Повторюсь, я рекомендую ТСу поиграться со всем этим исключительно для понимания и приобретения опыта =)
![]()
dyug — 15 Апрель, 2014 — 13:51
Про кабель было в другой теме про vbox)
А.. не знал.
Прокси или NAT нужен для того, чтобы на гесте был доступ в интернет, а не для FTP.
мы опять мягкое с теплым путаем? 🙂
Впрочем.
Черт с ним, пусть будет, как хотите.
Минус то поставьте, хоть.
![]()
MacLeod — 15 Апрель, 2014 — 14:33

Да какой минус?) Зачем? Вы написали с точки зрения практичности, а ТСа больше интересует изучение вопроса. Вот я и пытался объяснить направление своих советов, я тут предмета для споров вообще не вижу =)
![]()
lord_i — 15 Апрель, 2014 — 12:54

Сервер НЕ МОЖЕТ быть за натом по определению.
Странно . А почему у меня за натом роутера vsftpd прекрасно живет уже вот лет пять . Притом и активный режим и пассивный и ssl шифрование . Наверное я что-то не так делаю, точно точно .
ЗЫ И в чем, простите, Ваше видение работы протокола фтп отличается от моего (см выше), чтоб утверждать что:
Есть у меня мнение, что вы не совсем понимаете, как именно работает протокол ftp вообще, и в частности разницу между «пассивным» и «активным» режимами.
![]()
dyug — 15 Апрель, 2014 — 13:56
смотреть прошивку роутера на предмет уже загруженных модулей.
Желательно по слову ftp в конце.
будешь очень сильно удивлен..
/lib/modules/3.13.0-24-generic/kernel/net/netfilter# ls -1|grep ftp
nf_conntrack_ftp.ko
nf_conntrack_tftp.ko
nf_nat_ftp.ko
nf_nat_tftp.ko
Это из текущего ядра в 14.04, и они там уже были с времен, когда я пользовался еще слкаварью. а это до 2006 года. 🙂
![]()
lord_i — 15 Апрель, 2014 — 14:00

А причем тут прошивка роутера? Роутеры менялись за это время абсолютно без ущерба работы сервера, который к роутеру подключен .
![]()
dyug — 15 Апрель, 2014 — 15:21
обьясняю: с 2008 года примерно я не знаю ни одного роутера, где бы не проброса портов фтп, и соответственно поднятия модулей нат и контрак. для фтп.
и именно поэтому у тебя нет проблем с получением доступа к фтп снаружи.
Для эксперимента — рекомендую взять любой комп, собрать на нем роутер, и убедиться, что без этих модулей ничего работать не будет. 🙂
Да, я это уже проходил, и именно в варианте комп, как роутер.
![]()
lord_i — 15 Апрель, 2014 — 19:21

Ну это-то все понятно . Непонятно почему вдруг
Сервер НЕ МОЖЕТ быть за натом по определению.
когда, сделав проброс портов на роутере, то есть
поднятия модулей нат и контрак. для фтп.
мы добились того, чего хотели — работающий сервер фтп за натом .
ЗЫ Что касается конкретного случая, указанного ТС — я лично не пробовал, но думаю если в оракле сделали возможность пробросить порты, то они позаботились чтоб все работало так как должно работать. Проверять лень. 🙂 Пусть ТС потеет .
![]()
dyug — 15 Апрель, 2014 — 21:01
Эмм, но это уже не тот нат. проброс портов — это дополнительная функция.