# ftp на linux PVE

Отличный выбор! Развертывание FTP-сервера в \*\*LXC-контейнере\*\* на Proxmox VE (PVE) — это легковесное и безопасное решение.

\### \*\*1. Создание LXC-контейнера\*\*   
1\. \*\*В веб-интерфейсе PVE\*\*   
\- Перейдите в `Create CT` (контейнер).   
\- Выберите \*\*шаблон\*\* (например, `Debian 12` или `Ubuntu 22.04`).   
\- Укажите \*\*ID контейнера\*\*, \*\*пароль root\*\* и \*\*хранилище\*\*.   
\- В `Network` задайте статический IP (например, `192.168.1.100`) или DHCP.

2\. \*\*Через CLI (альтернатива)\*\*   
 ```bash  
 pct create 100 local:vztmpl/debian-12-standard\_12.0-1\_amd64.tar.zst \\  
\--storage local-lvm --rootfs 8 \\  
\--net0 name=eth0,bridge=vmbr0,ip=192.168.1.100/24,gw=192.168.1.1  
 pct start 100  
 ```

\### \*\*2. Установка FTP-сервера (vsftpd)\*\*   
1\. \*\*Подключитесь к контейнеру\*\*   
 ```bash  
 pct enter 100 # или ssh root@192.168.1.100  
 ```  
2\. \*\*Обновите систему и установите vsftpd\*\*   
 ```bash  
 apt update &amp;&amp; apt upgrade -y  
 apt install vsftpd -y  
 ```

\### \*\*3. Настройка vsftpd\*\*   
1\. \*\*Отредактируйте конфиг:\*\*   
 ```bash  
 nano /etc/vsftpd.conf  
 ```  
2\. \*\*Минимальная рабочая конфигурация:\*\*   
 ```ini  
 listen=YES  
 anonymous\_enable=NO  
 local\_enable=YES  
 write\_enable=YES  
 chroot\_local\_user=YES  
 allow\_writeable\_chroot=YES  
 pasv\_enable=YES  
 pasv\_min\_port=40000  
 pasv\_max\_port=40100  
 local\_umask=022  
 ```  
3\. \*\*Перезапустите vsftpd:\*\*   
 ```bash  
 systemctl restart vsftpd  
 systemctl enable vsftpd  
 ```

\### \*\*4. Создание FTP-пользователя\*\*   
1\. \*\*Добавьте пользователя (например, `ftpuser`):\*\*   
 ```bash  
 useradd -m -d /home/ftpuser -s /bin/bash ftpuser  
 passwd ftpuser  
 ```  
2\. \*\*Если нужен доступ к конкретной папке:\*\*   
 ```bash  
 mkdir /mnt/storage  
 chown ftpuser:ftpuser /mnt/storage  
 usermod -d /mnt/storage ftpuser  
 ```

\### \*\*5. Открытие портов в PVE (если контейнер за NAT)\*\*   
Если у контейнера \*\*NAT\*\* (через `vmbr0`), пробейте порты на хосте PVE:   
```bash  
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to 192.168.1.100:21  
iptables -t nat -A PREROUTING -p tcp --dport 40000:40100 -j DNAT --to 192.168.1.100:40000-40100  
```  
Для сохранения правил:   
```bash  
apt install iptables-persistent -y  
netfilter-persistent save  
```

\### \*\*6. Проверка подключения\*\*   
\- Используйте \*\*FileZilla\*\* или `ftp` в терминале:   
 ```  
 ftp 192.168.1.100  
 ```  
 Логин: `ftpuser` и ваш пароль.

\---

\### \*\*Дополнительные настройки\*\*   
\- \*\*SFTP (повышенная безопасность):\*\* Используйте OpenSSH (`sftp`).   
\- \*\*Резервное копирование:\*\* Настройте `rsync` через FTP.   
\- \*\*Логирование:\*\* Включите `xferlog\_enable=YES` в `/etc/vsftpd.conf`.

\---

\### \*\*Итог\*\*   
Вы настроили \*\*FTP-сервер в LXC-контейнере\*\* на PVE. Это изолирует сервис от хоста и упрощает управление.

Если нужен \*\*безопасный доступ\*\*, рассмотрите \*\*SFTP/SSH\*\* или \*\*WebDAV\*\* (например, через Nextcloud).