Гид по технологиям

Передача файлов через Python‑сервер на Windows

5 min read Инструменты Обновлено 06 Jan 2026
Передача файлов через Python‑сервер на Windows
Передача файлов через Python‑сервер на Windows

Человек держит оранжевую и синюю наклейку Python

Это пошаговое руководство покажет, как быстро настроить временный Python HTTP‑сервер на Windows для обмена файлами по локальной сети. Подойдёт, когда нет флешки или общего сетевого хранилища, но есть доступ к той же Wi‑Fi/локальной сети.

Что такое Python‑сервер?

Python‑сервер — это встроенный в стандартную библиотеку Python простой HTTP‑сервер, который умеет раздавать файлы из указанной директории по протоколу HTTP. Для большинства задач передачи файлов по локальной сети достаточно запустить его одной командой. Определение: HTTP‑сервер — программный компонент, принимающий HTTP‑запросы и возвращающий файлы или список директорий.

Важно: сервер по умолчанию использует нешифрованный HTTP и доступен в пределах локальной сети (частный IP: 192.168.x.x или 10.x.x.x). Не используйте его в открытом интернете без дополнительной защиты.

Что нужно подготовить

  • Windows с установленным Python 3.x (рекомендуется 3.7 и выше). Проверить: python --version.
  • Папка с файлами, которые вы хотите раздать.
  • Оба устройства (отправитель и получатель) подключены к одной локальной сети.

Совет: если Python не установлен, скачайте установщик с официального сайта python.org и отметьте опцию «Add Python to PATH» при установке.

Как настроить Python‑веб‑сервер на Windows

  1. Откройте Проводник и перейдите в папку, которую хотите расшарить.
  2. В адресной строке дважды щёлкните путь и введите cmd, чтобы открыть Командную строку в этой папке.

Открытие Командной строки в Проводнике

Альтернатива: нажмите Win + R, введите cmd, затем перейдите в нужную папку командой cd.

Открытие Командной строки через окно Выполнить

  1. Узнайте свой локальный IP, набрав в командной строке:
ipconfig

Найдите блок с названием адаптера Wi‑Fi или Ethernet и возьмите IPv4‑адрес (пример: 192.168.116.201).

  1. Запустите сервер командой (по умолчанию порт 8000):
python -m http.server

Настройка Python‑веб‑сервера через Командную строку

Чтобы указать порт, добавьте номер после команды. Например, порт 5678:

python -m http.server 5678

Запуск Python‑сервера на порту 5678

Если нужно, можно явно привязать сервер к конкретному интерфейсу (IP) с опцией --bind:

python -m http.server 8000 --bind 192.168.116.201

(Опция --bind доступна в современных версиях Python.)

Чтобы остановить сервер, нажмите Ctrl + C в окне Командной строки.

Как скачать файлы с сервера

На устройстве-получателе откройте браузер и введите адрес сервера:

http://IP_АДРЕС[:ПОРТ]

Пример: http://192.168.116.201:5678. Браузер покажет индексную страницу со списком файлов и папок; кликайте по файлам для загрузки.

Скриншот списка файлов, доступных на Python‑сервере

Ограничения и когда это не подходит

  • Если устройства в разных подсетях или через NAT без проброса портов, доступ невозможен.
  • Брандмауэр Windows или антивирус могут блокировать входящие соединения на выбранный порт.
  • Не используйте на общедоступных сетях (открытый Wi‑Fi) без шифрования; передача небезопасна.
  • Большие файлы и многопоточная передача: встроенный сервер не оптимизирован для высокой нагрузки.

Безопасность: практические рекомендации

  • Закрывайте сервер сразу после передачи.
  • Запускайте сервер только в доверенной сети.
  • Чтобы ограничить доступ, используйте --bind на конкретный IP или запускайте его в отдельной виртуальной сети.
  • Для шифрования используйте VPN между устройствами или обёртку TLS (см. альтернативы).
  • Проверьте настройки брандмауэра: при необходимости временно откройте нужный порт и затем закройте.

Альтернативные подходы

  • Локальные SMB‑шары или общий доступ Windows (быстрее и интегрировано в ОС). Подходит для частых обменов.
  • FTP/FTPS или SFTP (через OpenSSH) для контролируемого доступа и шифрования.
  • Облачные сервисы (OneDrive, Google Drive) — когда интернет доступен и нужна синхронизация.
  • Использовать GUI‑инструменты типа Syncthing для постоянной синхронизации между устройствами.

Когда встроенный HTTP‑сервер не проходит (например, нужен шифрованный канал), используйте SFTP или VPN.

Быстрая методика (мини‑SOP)

  1. Проверить Python: python --version.
  2. Перейти в папку с файлами (cd C:\путь\к\папке).
  3. Запустить: python -m http.server 5678 (или без порта для 8000).
  4. Получить IP с ipconfig и дать адрес получателю.
  5. После передачи остановить сервер (Ctrl + C).

Чек‑лист по ролям

Отправитель:

  • Проверил Python и права доступа к папке.
  • Запустил сервер в нужной папке и записал IP:порт.
  • Убедился, что брандмауэр не блокирует порт.
  • Остановил сервер после завершения.

Получатель:

  • Находится в той же локальной сети.
  • Введён правильный IP:порт в браузере.
  • Убедился в целостности скачанных файлов (по размеру).

Администратор сети:

  • Разрешил порт в политике на время передачи или организовал безопасную альтернативу.
  • Проверил логи и ограничения по трафику.

Тесты и критерии приёмки

  • Сервер отвечает на http://IP:PORT и возвращает индекс (страницу со списком файлов).
  • Файл скачивается полностью и без ошибок.
  • Сервер завершается по Ctrl + C без зависаний.
  • Доступ возможен только с устройств в той же локальной сети, если это требование.

Техничeские примечания и расширения

  • Если нужен HTTPS, можно обернуть сервер с помощью небольшого Python‑скрипта и модуля ssl либо использовать обратный прокси (nginx) с сертификатом. Пример упрощённого скрипта с ssl‑контекстом требует наличия сертификата и приватного ключа.
  • Для раздачи конкретной директории без смены рабочей директории используйте опцию --directory (современные версии Python):
python -m http.server 8000 --directory "C:\path\to\share"
  • Если порт занят, укажите другой порт (например, 8080, 5678 или любой свободный >1024).

Риски и смягчения

Риск: несанкционированный доступ — Смягчение: запуск в доверенной сети, ограничение bind, использование VPN.

Риск: перехват данных — Смягчение: не отправлять конфиденциальные данные без шифрования (используйте SFTP или HTTPS).

Риск: блокировка брандмауэром — Смягчение: временная настройка правил или использование разрешённого порта.

Краткая сводка

Python‑сервер — удобный инструмент для одноразовой или редкой передачи файлов в локальной сети: быстро, просто и без дополнительного софта. Однако он небезопасен для открытых сетей и не предназначен для серьёзной нагрузки. В рабочих сценариях предпочитайте зашифрованные и аутентифицированные методы.

Ключевые команды в одном месте:

# Запустить на порту 8000 (по умолчанию)
python -m http.server

# Запустить на порту 5678
python -m http.server 5678

# Привязать к конкретному IP и каталогу
python -m http.server 8000 --bind 192.168.116.201 --directory "C:\путь\к\папке"

Завершите работу сервера после использования и применяйте простые меры безопасности, чтобы обмен файлами остался быстрым и безопасным.

Глоссарий

  • HTTP: протокол передачи гипертекста, используется браузерами для загрузки страниц и файлов.
  • IP: адрес устройства в локальной сети.
  • Порт: числовой идентификатор службы на устройстве (например, 80, 8000).

Важно: используйте этот метод только в доверенных сетях и для незащищённых (или общедоступных) файлов либо добавьте шифрование при необходимости.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство