Введение
Нужно быстро передать файл другу, клиенту или на другой сервер? Зачем возиться с FTP, Samba, Telegram или облаками, если можно за 1 команду раздать файл прямо со своего VPS?
В этой статье — как развернуть одноразовый файловый HTTP-сервер за секунды, автоматизировать это и сделать удобный скрипт.
📦 Подходит для:
- Маленьких VPS (1 ГБ ОЗУ, 1 vCPU)
- Ubuntu / Debian / Arch / Fedora
- Python уже установлен — больше ничего не нужно
⚙️ Раздаём любой каталог в 1 строку
cd /home/user/files
python3 -m http.server 8080
Теперь можно открыть в браузере:
http://vps_ip:8080/название_файла
🔒 Безопасность: отдаём только 1 файл
mkdir -p /tmp/share
cp important.zip /tmp/share/
cd /tmp/share
python3 -m http.server 9000
🧪 Улучшаем: создаём скрипт для автозапуска
Создайте файл ~/sharefile.sh:
#!/bin/bash
PORT=9000
FILE=$1
if [ -z "$FILE" ]; then
echo "Usage: $0 <filename>"
exit 1
fi
mkdir -p /tmp/share
cp "$FILE" /tmp/share/
cd /tmp/share
IP=$(curl -4 -s ifconfig.me)
echo "Файл доступен по адресу: http://$IP:$PORT/$(basename "$FILE")"
python3 -m http.server $PORT
Сделайте скрипт исполняемым:
chmod +x ~/sharefile.sh
И теперь можно раздавать файл одной командой:
./sharefile.sh /Downloads/manual.pdf
🛡️ Бонус: доступ только в течении ограниченного времени (30 секунд в примере)
Чтобы удалить файл через 30 секунд (примитивно):
#!/bin/bash
PORT=9000
FILE=$1
if [ -z "$FILE" ]; then
echo "Usage: $0 <filename>"
exit 1
fi
BASENAME=$(basename "$FILE")
mkdir -p /tmp/share
cp "$FILE" /tmp/share/
cd /tmp/share
IP=$(curl -4 -s ifconfig.me)
echo "Файл доступен по адресу: http://$IP:$PORT/$BASENAME"
# Удалить файл через 30 секунд (в фоне)
(sleep 30 && rm -f "/tmp/share/$BASENAME") &
# Запуск HTTP-сервера
python3 -m http.server $PORT
🧠 Когда пригодится
- Отдать клиенту архив/скриншот/бэкап без регистрации
- Перебросить файлы между VPS и рабочим ПК
- Показать другу файл с телефона (через VPS как хост)
✅ Заключение
Теперь у вас есть свой маленький «файлообменник» — без облаков, логинов и лишнего. Просто VPS, Python и скрипт на пару строк.