sshuttle - Онлайн в облаке

Это команда sshuttle, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


sshuttle - документация sshuttle

СИНТАКСИС


шаттл [кредита] [-r [имя пользователя @] sshserver [: порт]]подсеть ...>

ОПИСАНИЕ


шаттл позволяет создать VPN-соединение с вашего компьютера на любой удаленный сервер, который
вы можете подключиться через ssh, если на этом сервере установлен Python 2.3 или выше.

Для работы у вас должен быть root-доступ на локальной машине, но у вас может быть и обычная учетная запись.
на сервере.

Допустимо бежать шаттл более одного раза одновременно на одном клиентском компьютере,
подключение к другому серверу каждый раз, поэтому вы можете быть одновременно на нескольких VPN.

Если запустить на маршрутизаторе, шаттл может перенаправлять трафик для всей вашей подсети в VPN.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


подсеть
Список подсетей для маршрутизации через VPN в форме abcd [/ ширина], действительный
примеры: 1.2.3.4 (один IP-адрес), 1.2.3.4/32 (эквивалент 1.2.3.4),
1.2.3.0/24 (24-битная подсеть, т. Е. С сетевой маской 255.255.255.0) и 0/0 ('просто
маршрутизировать все через VPN »).

-л, --listen = [ip:] порт
Используйте этот IP-адрес и номер порта в качестве порта прозрачного прокси. По умолчанию
шаттл автоматически находит доступный порт и прослушивает IP 127.0.0.1
(localhost), поэтому вам не нужно его переопределять, а соединения только проксируются
с локальной машины, а не с внешних. Если вы хотите принять
подключения с других машин в вашей сети (т. е. для запуска шаттл на роутере)
попробуйте включить IP Forwarding в своем ядре, затем используйте --Слушать 0.0.0.0:0.

Для метода tproxy это может быть адрес IPv6. Используйте эту опцию дважды, если
требуется для предоставления адресов IPv4 и IPv6.

-ЧАС, --авто-хосты
Сканируйте удаленные имена хостов и обновляйте локальные / Etc / хостов файл с соответствием
записи до тех пор, пока открыт VPN. Это лучше, чем менять
DNS (/ Etc / resolv.conf) по нескольким причинам. Сначала добавляются имена хостов
без прикрепленных доменных имен, так что вы можете SSH тот сервер не беспокоясь, если твой
локальный домен совпадает с удаленным. Во-вторых, если вы шаттл в более чем один
VPN одновременно, в любом случае невозможно использовать более одного DNS-сервера одновременно, но
шаттл правильно сливается / Etc / хостов записи между всеми работающими копиями. В-третьих, если
вы маршрутизируете только несколько подсетей через VPN, вы, вероятно, предпочтете оставить
использование вашего локального DNS-сервера для всего остального.

-Н, --авто-сети
В дополнение к подсетям, указанным в командной строке, спросите сервер, который
подсети, которые, по его мнению, следует маршрутизировать, и маршрутизировать их автоматически. Предложения
берутся автоматически из таблицы маршрутизации сервера.

--dns Захватывайте локальные DNS-запросы и пересылайте их на удаленный DNS-сервер.

--питон
Укажите имя / путь удаленного интерпретатора Python. По умолчанию просто
питон, что означает использование интерпретатора Python по умолчанию в удаленной системе
ДОРОЖКА.

-р, --remote = [имя пользователя @] sshserver [: порт]
Имя удаленного хоста и необязательное имя пользователя и номер порта ssh для использования для подключения
на удаленный сервер. Например, example.com, testuser@example.com,
testuser@example.com: 2222 или example.com:2244.

-Икс, --exclude = подсеть
Явно исключите эту подсеть из пересылки. Формат этой опции -
так же, как и вариант. Чтобы исключить более одной подсети, укажите -x
вариант более одного раза. Вы можете сказать что-то вроде 0/0 -x 1.2.3.0/24 переслать
все, кроме локальной подсети через VPN, например.

-ИКС, --exclude-from = файл
Исключить подсети, указанные в файле, по одной подсети на строку. Полезно, когда у вас есть
множество подсетей, которые нужно исключить.

-в, --подробный
Распечатайте дополнительную информацию о сеансе. Этот вариант можно использовать более одного раза
для повышенной многословности. По умолчанию, шаттл печатает только сообщения об ошибках.

-е, --ssh-cmd
Команда, используемая для подключения к удаленному серверу. По умолчанию просто SSH. Используйте
это, если ваш ssh-клиент находится в нестандартном месте или вы хотите предоставить дополнительные
параметры команды ssh, например, -e ssh -v '.

--seed-hosts
Список имен хостов, разделенных запятыми, которые будут использоваться для инициализации --авто-хосты сканирование
алгоритм. --авто-хосты делает такие вещи, как опрос локальных серверов SMB для списков локальных
имена хостов, но может ускорить процесс, если вы используете эту опцию, чтобы присвоить ему несколько имен
начать с.

--нет-контроля задержки
Пожертвуйте задержкой, чтобы улучшить тесты пропускной способности. ssh использует действительно большой сокет
буферы, которые могут перегрузить соединение, если вы начнете передавать большие файлы,
таким образом заставляя все ваши другие сеансы внутри того же туннеля идти медленно. Как обычно,
шаттл пытается избежать этой проблемы, используя «проверку полноты», которая позволяет только
определенный объем незавершенных данных для одновременной буферизации. Но при высокой пропускной способности
ссылки, это может привести к недоиспользованию значительной части вашей пропускной способности. Это также делает
шаттл кажутся медленными в тестах пропускной способности (тесты редко проверяют задержку пинга,
который является то, что шаттл пытается контролировать). Эта опция отключает задержку
функция управления, максимизирующая использование полосы пропускания. Используйте на свой риск.

-Д, - демон
Автоматически переходить в фоновый режим после подключения к удаленному серверу.
Подразумевает --syslog.

--syslog
после подключения отправьте все сообщения журнала на системный журнал(3) service вместо stderr.
Это неявно, если вы используете - демон.

--pidfile = имя_пидфайла
При использовании - демон, спасти шаттлПид к имя файла pid, По умолчанию
sshuttle.pid в текущем каталоге.

--отключить-ipv6
Если вы используете метод tproxy, это отключит поддержку IPv6.

--межсетевой экран
(только для внутреннего использования) запустите менеджер брандмауэра. Это единственная часть шаттл
который должен работать как root. Если вы начнете шаттл как пользователь без полномочий root, он будет
автоматически запускать Sudo or su чтобы запустить менеджер брандмауэра, но ядро
шаттл по-прежнему работает как обычный пользователь.

- наблюдатель
(только для внутреннего использования) запустить демон hostwatch. Этот процесс выполняется на стороне сервера
и собирает имена хостов для --авто-хосты вариант. Использование этой опции отдельно
значительно упрощает отладку и тестирование --авто-хосты функцию.

ПРИМЕРЫ


Протестируйте локально, проксируя все локальные соединения, без использования ssh:

$ sshuttle -v 0/0

Запускаем sshuttle прокси.
Слушаем ('0.0.0.0', 12300).
[local sudo] Пароль:
Менеджер межсетевого экрана готов.
c: подключение к серверу ...
s: доступные маршруты:
s: 192.168.42.0 / 24
c: подключен.
менеджер брандмауэра: запуск транспрокси.
c: Принять: 192.168.42.106:50035 -> 192.168.42.121:139.
c: Принять: 192.168.42.121:47523 -> 77.141.99.22:443.
...так далее...
^C
менеджер брандмауэра: отмена изменений.
КлавиатураПрерывание
c: Прерывание клавиатуры: выход.
c: SW # 8: 192.168.42.121: 47523: удаление
c: SW # 6: 192.168.42.106: 50035: удаление

Тестовое соединение с удаленным сервером с автоматическим угадыванием имени хоста и подсети:

$ sshuttle -vNHr example.org

Запускаем sshuttle прокси.
Слушаем ('0.0.0.0', 12300).
Менеджер межсетевого экрана готов.
c: подключение к серверу ...
s: доступные маршруты:
s: 77.141.99.0 / 24
c: подключен.
c: seed_hosts: []
менеджер брандмауэра: запуск транспрокси.
hostwatch: Найдено: testbox1: 1.2.3.4
hostwatch: Найдено: mytest2: 5.6.7.8
hostwatch: Найдено: domaincontroller: 99.1.2.3
c: Принять: 192.168.42.121:60554 -> 77.141.99.22:22.
^C
менеджер брандмауэра: отмена изменений.
c: Прерывание клавиатуры: выход.
c: SW # 6: 192.168.42.121: 60554: удаление

ОБСУЖДЕНИЕ


Когда это начнется, шаттл создает сеанс ssh для сервера, указанного в -r опцию.
If -r опущено, он запустит и свой клиент, и сервер локально, что иногда
полезно для тестирования.

После подключения к удаленному серверу, шаттл загружает свой (python) исходный код в
удаленный конец и выполняет его там. Таким образом, вам не нужно устанавливать шаттл на пульте
сервер, и никогда не бывает шаттл конфликты версий между клиентом и сервером.

В отличие от большинства VPN, шаттл пересылает сеансы, а не пакеты. То есть использует ядро
прозрачное проксирование (Iptables REDIRECT rules в Linux) для захвата исходящих TCP-сессий,
затем создает полностью отдельные сеансы TCP для исходного пункта назначения в другом
конец туннеля.

Пересылка на уровне пакетов (например, с использованием устройств tun / tap в Linux) поначалу кажется элегантной,
но это приводит к нескольким проблемам, в частности к проблеме «tcp over tcp». Протокол tcp
в основном зависит от отбрасываемых пакетов, чтобы реализовать его перегрузку
контрольный агоритм; если вы передаете пакеты tcp через туннель на основе tcp (например, ssh),
внутренние пакеты TCP никогда не будут отброшены, поэтому контроль перегрузки внутреннего потока TCP
будет полностью сломан, и производительность будет ужасной. Таким образом, пакетные VPN
(например, IPsec и openvpn) не могут использовать зашифрованные потоки на основе tcp, такие как ssh или ssl, и
должны реализовать собственное шифрование с нуля, что очень сложно и ошибочно
склонный.

шаттлпростота заключается в том, что он может безопасно использовать существующий ssh
зашифрованный туннель без потери производительности. Он делает это, позволяя
клиентское ядро ​​управляет входящим TCP-потоком, а серверное ядро ​​управляет
исходящий поток tcp; нет необходимости разделять контроль перегрузки между двумя
отдельные потоки, поэтому туннель на основе TCP вполне подойдет.

Используйте sshuttle онлайн с помощью сервисов onworks.net



Новейшие онлайн-программы для Linux и Windows