
File-Tunnel v3.5.2
Туннелирование TCP-соединений через файл
File Tunnel
Туннелирование TCP-соединений через файловый сервер.
Полный список поддерживаемых файловых систем можно найти здесь.
Загрузка
Переносимые исполняемые файлы для Windows, Linux и Mac можно найти в разделе releases.
Пример 1 — Обход межсетевого экрана
Вы хотите подключиться с хоста A к хосту B, но на пути стоит межсетевой экран. Однако оба хоста имеют доступ к общей папке.

Хост 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 выглядит в работе:

Пример 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 МБ.