Назад к обновлениям
New releaseAug 20, 2026

File-Tunnel v3.5.2

Туннелирование TCP-соединений через файл

Поделиться

File Tunnel

Туннелирование TCP-соединений через файловый сервер.

Полный список поддерживаемых файловых систем можно найти здесь.


Загрузка

Переносимые исполняемые файлы для Windows, Linux и Mac можно найти в разделе releases.


Пример 1 — Обход межсетевого экрана

Вы хотите подключиться с хоста A к хосту B, но на пути стоит межсетевой экран. Однако оба хоста имеют доступ к общей папке.

ft_fw

Хост A

ft.exe -L 5000:127.0.0.1:3389 --write "\\server\share\1.dat" --read "\\server\share\2.dat"

Эта команда прослушивает входящие соединения на порту 5000. Когда соединение получено, оно пересылается через файловый туннель, а затем на 127.0.0.1:3389.

Хост B

ft.exe --read "\\server\share\1.dat" --write "\\server\share\2.dat"

Теперь на хосте A подключите клиент к 127.0.0.1:5000, и он будет переслан на удалённый сервер.



Вот как File Tunnel выглядит в работе:


Screenshot




Пример 2 — Туннелирование TCP через RDP (аналогично SSH-туннелю)

Вы хотите подключиться к удалённому сервису (например, 192.168.1.50:8888), но у вас есть доступ только к хосту B через RDP.

Хост A

ft.exe -L 5000:192.168.1.50:8888 --write "C:\Temp\1.dat" --read "C:\Temp\2.dat"

Запустите RDP-клиент и убедитесь, что локальные диски доступны для общего доступа, как показано здесь.

Подключитесь по RDP к хосту B.

Хост B

ft.exe --read "\\tsclient\c\Temp\1.dat" --write "\\tsclient\c\Temp\2.dat"

Теперь на хосте A вы можете подключиться к 127.0.0.1:5000, и трафик будет переслан на 192.168.1.50:8888.




Другие интересные возможности

  • -L можно использовать несколько раз, чтобы пересылать множество портов через один туннель.

  • Чтобы другие компьютеры могли использовать туннель, укажите адрес привязки 0.0.0.0. Например: -L 0.0.0.0:5000:192.168.1.50:3389 позволяет любому компьютеру в сети подключаться к туннелю и далее к 192.168.1.50:3389.

  • Используйте -R для удалённой пересылки. Например: -R 5000:10.0.0.50:6000 указывает удалённой стороне прослушивать порт 5000, и при получении соединения пересылать его через туннель и далее на 10.0.0.50:6000 через локальную машину. Это позволяет предоставить доступ к серверу, работающему на вашей локальной машине, другим компьютерам.

  • Используйте -D для динамической (SOCKS) пересылки, как в SSH. Например: -D 1080 запускает прокси SOCKS4/4a/5 на порту 1080; каждое соединение устанавливается с удалённой стороны, поэтому приложения могут получить доступ ко всему, к чему имеет доступ удалённая машина. Обычный -R 1080 (без адреса назначения) — обратный вариант: он размещает SOCKS-прокси на удалённой стороне, устанавливая исходящие соединения через вашу локальную машину. Поддерживает как TCP (CONNECT), так и SOCKS5 UDP (ASSOCIATE); без аутентификации.

  • Используйте --http-proxy для HTTP-прокси. Например: --http-proxy 8080 запускает HTTP CONNECT-прокси на порту 8080, соединения устанавливаются с удалённой стороны (направьте на него браузер или curl -x http://127.0.0.1:8080 https://example.com). Используйте --remote-http-proxy 8080, чтобы вместо этого разместить прокси на удалённой стороне, устанавливая исходящие соединения через вашу локальную машину. Поддерживается только метод CONNECT (HTTPS и любой TCP-туннель); без аутентификации.

  • Вы можете использовать интернет-соединение другого компьютера, следуя этим инструкциям.




Как это работает?

Программа запускает TCP-прослушиватель, и при получении соединения записывает TCP-данные в файл. Этот же файл считывается программой-аналогом, которая устанавливает TCP-соединение и пересылает TCP-данные дальше. Чтобы общий файл не рос бесконечно, он очищается всякий раз, когда его размер превышает 10 МБ.

Категории