sshuttle - онлайн в хмарі

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

ПРОГРАМА:

ІМ'Я


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

СИНТАКСИС


човник [опції] [-r [ім'я користувача@]sshсервер[:порт]]підмережі ...>

ОПИС


човник дозволяє створити VPN-з’єднання з вашого пристрою до будь-якого віддаленого сервера
ви можете підключитися через ssh, якщо на цьому сервері встановлено python 2.3 або вище.

Щоб працювати, ви повинні мати root-доступ на локальній машині, але ви можете мати звичайний обліковий запис
на сервері.

Це дійсне для запуску човник більше одного разу одночасно на одній клієнтській машині,
щоразу підключаючись до іншого сервера, тож ви можете бути на кількох VPN одночасно.

Якщо запустити на маршрутизаторі, човник може переадресовувати трафік для всієї підмережі до VPN.

ВАРІАНТИ


підмережі
Список підмереж для маршрутизації через VPN у формі abcd[/width]. Дійсний
приклади: 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 у своєму ядрі, а потім скористайтеся --послухай 0.0.0.0:0.

Для методу tproxy це може бути адреса IPv6. Використовуйте цю опцію двічі, якщо
необхідний для надання адрес IPv4 та IPv6.

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

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

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

--python
Вкажіть ім’я/шлях віддаленого інтерпретатора Python. За замовчуванням просто
пітон, що означає використання інтерпретатора Python за замовчуванням у віддаленій системі
ШЛЯХ.

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

-x, --exclude=підмережі
Явно виключіть цю підмережу з пересилання. Формат цього параметра
те ж, що і варіант. Щоб виключити більше однієї підмережі, вкажіть -x
варіант більше одного разу. Можна сказати щось на зразок 0/0 -x 1.2.3.0/24 пересилати
все, крім локальної підмережі через VPN, наприклад.

-X, --exclude-from=файл
Виключіть підмережі, зазначені у файлі, по одній підмережі на рядок. Корисно, коли є
багато підмереж, які потрібно виключити.

-v, -багатослівний
Роздрукуйте більше інформації про сеанс. Цю опцію можна використовувати більше одного разу
для збільшення багатослівності. За замовчуванням, човник друкує лише повідомлення про помилки.

-е, --ssh-cmd
Команда для підключення до віддаленого сервера. За замовчуванням просто SSH. Використовувати
це, якщо ваш клієнт ssh знаходиться в нестандартному місці або ви хочете надати додаткове
параметри команди ssh, наприклад, -e 'ssh -v'.

--насіннєві господарі
Розділений комами список імен хостів для ініціалізації --авто-хости сканування
алгоритм. --авто-хости виконує такі речі, як опитування локальних серверів SMB для списків локальних
імена хостів, але може прискорити роботу, якщо ви використовуєте цю опцію, щоб дати йому кілька імен
почати з.

--без затримки-контролю
Пожертвуйте затримкою, щоб покращити контрольні показники пропускної здатності. ssh використовує дійсно великий сокет
буфери, які можуть перевантажити з'єднання, якщо ви почнете передавати великі файли,
таким чином усі ваші інші сеанси в тому самому тунелі відбуваються повільно. зазвичай,
човник намагається уникнути цієї проблеми за допомогою «перевірки повноти», яка дозволяє лише a
певну кількість необроблених даних, які потрібно буферизувати за раз. Але на високій пропускній здатності
посилань, це може залишити велику частину вашої пропускної здатності недостатньо використаною. Це також робить
човник здається повільним у тестах пропускної здатності (бенчмарки рідко перевіряють затримку ping,
що є що човник намагається контролювати). Цей параметр вимикає затримку
функція керування, що дозволяє максимально використовувати пропускну здатність. Використовуйте на свій страх і ризик.

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

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

--pidfile=ім'я підфайлу
При використанні --демон, зберегти човник's pid to pidfilename. За замовчуванням
sshuttle.pid у поточному каталозі.

--disable-ipv6
Якщо використовується метод tproxy, це вимкне підтримку IPv6.

--брандмауер
(лише для внутрішнього використання) запустіть менеджер брандмауера. Це єдина частина човник
який повинен працювати як root. Якщо почати човник як користувач без права root, це буде
автоматично запускатися Суду or su щоб запустити менеджер брандмауера, але ядро
човник все ще працює як звичайний користувач.

--господар
(лише для внутрішнього використання) запустіть демон hostwatch. Цей процес виконується на стороні сервера
і збирає імена хостів для --авто-хости варіант. Використання цієї опції самостійно
значно полегшує налагодження та тестування --авто-хости функцію.

ПРИКЛАДИ


Перевірте локально, проксуючи всі локальні з’єднання, без використання ssh:

$ shuttle -v 0/0

Запуск проксі-сервера Shuttle.
Прослуховування ('0.0.0.0', 12300).
[локальний sudo] Пароль:
Менеджер брандмауера готовий.
в: підключення до сервера...
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
менеджер брандмауера: скасування змін.
KeyboardInterrupt
c : переривання клавіатури: вихід.
c : SW#8:192.168.42.121:47523: видалення
c : SW#6:192.168.42.106:50035: видалення

Перевірте підключення до віддаленого сервера з автоматичним визначенням імені хосту та підмережі:

$ sshuttle -vNHr example.org

Запуск проксі-сервера Shuttle.
Прослуховування ('0.0.0.0', 12300).
Менеджер брандмауера готовий.
в: підключення до сервера...
s: доступні маршрути:
s: 77.141.99.0/24
c : підключений.
c : seed_hosts: []
менеджер брандмауера: запуск транспроксі.
hostwatch: Знайдено: testbox1: 1.2.3.4
hostwatch: Знайдено: mytest2: 5.6.7.8
hostwatch: Знайдено: контролер домену: 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 ПЕРЕДАЧА правила в Linux) для захоплення вихідних сеансів TCP,
потім створює повністю окремі сеанси TCP до вихідного місця призначення на іншому
кінець тунелю.

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

човникПростота 's пояснюється тим, що він може безпечно використовувати існуючий ssh
зашифрований тунель без втрати продуктивності. Це робиться, дозволяючи
ядро на стороні клієнта керує вхідним потоком tcp, а ядро ​​на стороні сервера керує потоком
вихідний потік tcp; немає потреби в тому, щоб контроль заторів розподілявся між ними
окремі потоки, тому тунель на основі tcp – це добре.

Використовуйте sshuttle онлайн за допомогою служб onworks.net



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