Простой и удобный способ быстро передать файлы между компьютером и смартфоном без флешек, мессенджеров и облачных хранилищ — это запустить временный локальный файловый сервер прямо на своём ПК.
📌 Где можно использовать?
- Передача файлов между ПК и телефоном по Wi-Fi
- Обмен файлами в офисе без USB-носителей и Dropbox
- Создание временного общего доступа в локальной сети
🚀 Как запустить
Создайте файл file_server.py со следующим содержимым:
import http.server
import socket
import socketserver
import argparse
import os
parser = argparse.ArgumentParser(description="📁 Локальный файловый сервер")
parser.add_argument("-p", "--port", type=int, default=8000, help="Порт (по умолчанию: 8000)")
parser.add_argument("-d", "--directory", default=".", help="Каталог для раздачи (по умолчанию: текущая)")
args = parser.parse_args()
os.chdir(args.directory)
class Handler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *a, **kw):
super().__init__(*a, directory=args.directory, **kw)
def get_local_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
except Exception:
ip = "localhost"
finally:
s.close()
return ip
with socketserver.TCPServer(("", args.port), Handler) as httpd:
print(f"🌍 Сервер запущен: http://{get_local_ip()}:{args.port}")
print(f"📁 Раздаётся каталог: {os.path.abspath(args.directory)}")
print("⛔ Нажмите Ctrl+C для остановки")
httpd.serve_forever()

✅ Как использовать
- Скопируйте скрипт на свой ПК.
- Откройте терминал в нужной папке (ту, которую хотите раздавать).
- Запустите сервер: python3 file_server.py Или с указанием порта и каталога: python3 file_server.py -p 8080 -d /путь/к/каталогу
- В терминале отобразится локальный IP-адрес. Например:
🌍 Сервер запущен: http://192.168.1.42:8000
- Откройте браузер на другом устройстве (например, телефоне) и введите этот адрес.
📱 Пример сценария: передача файла на смартфон
- Компьютер подключён по кабелю к роутеру.
- Смартфон подключён к той же Wi-Fi сети.
- На ПК запущен сервер.
- На телефоне открываем http://192.168.1.42:8000 в браузере.
- Выбираем и скачиваем нужные файлы.
Важно: Убедитесь, что фаервол не блокирует входящие подключения к Python или выбранному порту (например, 8000).
🛠 Частые проблемы и решения
- Ошибка “Address already in use” — предыдущий сервер не завершён. Завершите его через Ctrl+C или выполните: lsof -i :8000 kill PID
- Телефон не может открыть страницу — проверьте, что он в той же сети Wi-Fi, и IP указан правильно.
- VPN активен — IP может быть подменён (например,
12.3.17.2
). Отключите VPN или используйте команду ip a для получения локального IP вручную.
🏁 Заключение
Такой локальный сервер — отличный способ быстро раздать или получить файлы по сети без лишнего софта. Он особенно полезен в поездках, офисе, школе, на мероприятиях или просто дома.