Jest to polecenie sshuttle, które można uruchomić w darmowym dostawcy usług hostingowych OnWorks przy użyciu jednej z wielu naszych bezpłatnych internetowych stacji roboczych, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
sshuttle - dokumentacja sshuttle
STRESZCZENIE
wahadłowiec [Opcje] [-r [nazwa użytkownika@]serwer ssh[:port]]podsieci ...>
OPIS
wahadłowiec umożliwia utworzenie połączenia VPN z komputera do dowolnego zdalnego serwera
możesz połączyć się przez ssh, o ile ten serwer ma python 2.3 lub nowszy.
Aby pracować, musisz mieć uprawnienia administratora na komputerze lokalnym, ale możesz mieć normalne konto
na serwerze.
Jest ważny do uruchomienia wahadłowiec więcej niż raz jednocześnie na jednej maszynie klienckiej,
łączenie się za każdym razem z innym serwerem, dzięki czemu możesz korzystać z więcej niż jednej sieci VPN jednocześnie.
Jeśli działa na routerze, wahadłowiec może przekazywać ruch z całej podsieci do sieci VPN.
OPCJE
podsieci
Lista podsieci do trasowania przez VPN w formularzu abcd[/szerokość]. Ważny
przykłady to 1.2.3.4 (pojedynczy adres IP), 1.2.3.4/32 (odpowiednik 1.2.3.4),
1.2.3.0/24 (podsieć 24-bitowa, tj. z maską sieci 255.255.255.0) i 0/0 („tylko
przekierować wszystko przez VPN”).
-ja, --listen=[ip:]port
Użyj tego adresu IP i numeru portu jako przezroczystego portu proxy. Domyślnie
wahadłowiec automatycznie wyszukuje dostępny port i nasłuchuje na IP 127.0.0.1
(localhost), więc nie musisz go zastępować, a połączenia są tylko proxy
z maszyny lokalnej, a nie z maszyn zewnętrznych. Jeśli chcesz zaakceptować
połączenia z innych komputerów w Twojej sieci (np wahadłowiec na routerze)
spróbuj włączyć IP Forwarding w swoim jądrze, a następnie użyj --słuchać 0.0.0.0:0.
W przypadku metody tproxy może to być adres IPv6. Użyj tej opcji dwukrotnie, jeśli
wymagane, aby zapewnić zarówno adresy IPv4, jak i IPv6.
-H, --auto-hosty
Wyszukaj zdalne nazwy hostów i zaktualizuj local / Etc / hosts plik z dopasowaniem
wpisy tak długo, jak VPN jest otwarty. To lepsze niż zmiana systemu
DNS (/ Etc / resolv.conf) ustawienia z kilku powodów. Najpierw dodawane są nazwy hostów
bez dołączonych nazw domen, więc możesz ssh ten serwer bez martwienia się, czy twój
domena lokalna pasuje do domeny zdalnej. Po drugie, jeśli ty wahadłowiec w więcej niż jeden
VPN na raz, i tak nie można używać więcej niż jednego serwera DNS naraz, ale
wahadłowiec poprawnie łączy / Etc / hosts wpisy między wszystkimi uruchomionymi kopiami. Po trzecie, jeśli
kierujesz tylko kilka podsieci przez VPN, prawdopodobnie wolałbyś je zachować
używając lokalnego serwera DNS do wszystkiego innego.
-N, --auto-sieci
Oprócz podsieci podanych w wierszu poleceń zapytaj serwer, które
podsieci, które naszym zdaniem powinniśmy kierować, i kieruje je automatycznie. Sugestie
są pobierane automatycznie z tablicy routingu serwera.
--dns Przechwytuj lokalne żądania DNS i przesyłaj dalej do zdalnego serwera DNS.
--pyton
Określ nazwę/ścieżkę zdalnego interpretera Pythona. Domyślnie jest po prostu
pyton, co oznacza użycie domyślnego interpretera Pythona w systemie zdalnym
ŚCIEŻKA.
-R, --remote=[nazwa_użytkownika@]sshserver[:port]
Zdalna nazwa hosta i opcjonalna nazwa użytkownika oraz numer portu ssh, które mają być używane do łączenia
do zdalnego serwera. Na przykład przykład.com, użytkownik testowy@example.com,
użytkownik testowy@example.com:2222 lub przyklad.com:2244.
-X, --exclude=podsieć
Jawnie wyklucz tę podsieć z przekazywania. Format tej opcji to
tak samo jak opcja. Aby wykluczyć więcej niż jedną podsieć, określ -x
opcję więcej niż raz. Możesz powiedzieć coś takiego 0/0 -x 1.2.3.0/24 do przekazania
na przykład wszystko oprócz lokalnej podsieci przez VPN.
-X, --exclude-from=plik
Wyklucz podsieci określone w pliku, po jednej podsieci na wiersz. Przydatne, kiedy masz
wiele podsieci do wykluczenia.
-v, --gadatliwy
Wydrukuj więcej informacji o sesji. Tej opcji można użyć więcej niż jeden raz
dla większej gadatliwości. Domyślnie, wahadłowiec drukuje tylko komunikaty o błędach.
-mi, --ssh-cmd
Polecenie używane do łączenia się ze zdalnym serwerem. Domyślnie jest po prostu ssh, Posługiwać się
to, jeśli twój klient ssh znajduje się w niestandardowej lokalizacji lub chcesz zapewnić dodatkowe
opcje polecenia ssh, na przykład -e 'ssz -v'.
--nasiona-gospodarzy
Rozdzielana przecinkami lista nazw hostów, które mają być użyte do zainicjowania --auto-hosty skanować
algorytm. --auto-hosty robi takie rzeczy, jak sondowanie lokalnych serwerów SMB w poszukiwaniu list lokalnych
nazw hostów, ale może przyspieszyć działanie, jeśli użyjesz tej opcji, aby nadać mu kilka nazw
Rozpocząć z.
--bez-opóźnienia-kontrola
Poświęć opóźnienie, aby poprawić testy porównawcze przepustowości. ssh używa naprawdę dużego gniazda
bufory, które mogą przeciążyć połączenie, jeśli zaczniesz przesyłać duże pliki,
w ten sposób wszystkie inne sesje w tym samym tunelu przebiegają powoli. normalnie,
wahadłowiec próbuje uniknąć tego problemu, używając „sprawdzania pełności”, które pozwala tylko na
pewną ilość zaległych danych do buforowania w danym momencie. Ale na dużej przepustowości
łączy, może to spowodować niewykorzystanie znacznej części przepustowości. To też sprawia
wahadłowiec wydają się wolne w testach porównawczych przepustowości (testy porównawcze rzadko testują opóźnienie pingu,
które są Czym wahadłowiec próbuje kontrolować). Ta opcja wyłącza opóźnienie
funkcja kontroli, maksymalizująca wykorzystanie przepustowości. Używaj na własne ryzyko.
-D, --demon
Automatycznie rozwidlaj się w tle po połączeniu ze zdalnym serwerem.
Implikuje -- syslog.
-- syslog
po połączeniu wyślij wszystkie komunikaty dziennika do syslog(3) service zamiast stderr.
Jest to niejawne, jeśli używasz --demon.
--pidfile=nazwaplikupid
podczas korzystania z --demon, zapisać wahadłowiecpid do nazwaplikupid, Wartość domyślna to
sshuttle.pid w bieżącym katalogu.
--wyłącz-ipv6
Jeśli używasz metody tproxy, spowoduje to wyłączenie obsługi IPv6.
--zapora sieciowa
(tylko do użytku wewnętrznego) uruchom menedżera zapory. To jest jedyna część wahadłowiec
który musi działać jako root. Jeśli zaczniesz wahadłowiec jako użytkownik inny niż root, tak będzie
automatycznie uruchomić sudo or su aby uruchomić menedżera zapory, ale rdzeń
wahadłowiec nadal działa jako zwykły użytkownik.
--hostwatch
(tylko do użytku wewnętrznego) uruchom demona hostwatch. Ten proces działa po stronie serwera
i zbiera nazwy hostów dla --auto-hosty opcja. Korzystanie z tej opcji samodzielnie
znacznie ułatwia debugowanie i testowanie --auto-hosty cecha.
PRZYKŁADY
Przetestuj lokalnie, udostępniając wszystkie lokalne połączenia, bez użycia ssh:
$ transfer -v 0/0
Uruchamianie serwera proxy sshuttle.
Trwa słuchanie („0.0.0.0”, 12300).
[lokalne sudo] Hasło:
Menedżer zapory gotowy.
c : łączenie z serwerem...
s: dostępne trasy:
s: 192.168.42.0/24
c: podłączony.
menedżer zapory: uruchamianie transproxy.
c : Zaakceptuj: 192.168.42.106:50035 -> 192.168.42.121:139.
c : Zaakceptuj: 192.168.42.121:47523 -> 77.141.99.22:443.
...itp...
^C
menedżer zapory: cofanie zmian.
Przerwanie klawiatury
c : Przerwanie klawiatury: wyjście.
c : SW#8:192.168.42.121:47523: usuwanie
c : SW#6:192.168.42.106:50035: usuwanie
Testuj połączenie ze zdalnym serwerem, z automatycznym odgadywaniem nazwy hosta i podsieci:
$ sshuttle -vNHr przyklad.org
Uruchamianie serwera proxy sshuttle.
Trwa słuchanie („0.0.0.0”, 12300).
Menedżer zapory gotowy.
c : łączenie z serwerem...
s: dostępne trasy:
s: 77.141.99.0/24
c: podłączony.
c: nasiona_hostów: []
menedżer zapory: uruchamianie transproxy.
hostwatch: znaleziono: testbox1: 1.2.3.4
hostwatch: znaleziono: mytest2: 5.6.7.8
hostwatch: Znaleziono: kontroler domeny: 99.1.2.3
c : Zaakceptuj: 192.168.42.121:60554 -> 77.141.99.22:22.
^C
menedżer zapory: cofanie zmian.
c : Przerwanie klawiatury: wyjście.
c : SW#6:192.168.42.121:60554: usuwanie
DYSKUSJA
kiedy się zacznie, wahadłowiec tworzy sesję ssh z serwerem określonym przez plik -r opcja.
If -r zostanie pominięty, uruchomi zarówno swojego klienta, jak i serwer lokalnie, co czasami ma miejsce
przydatne do testowania.
Po połączeniu się ze zdalnym serwerem, wahadłowiec przesyła swój kod źródłowy (python) do
zdalny koniec i wykonuje go tam. Dzięki temu nie musisz instalować wahadłowiec na pilocie
serwer i nigdy ich nie ma wahadłowiec konflikty wersji między klientem a serwerem.
W przeciwieństwie do większości sieci VPN, wahadłowiec przekazuje sesje, a nie pakiety. Oznacza to, że używa jądra
przezroczyste proxy (iptables PRZEADRESOWAĆ reguły w systemie Linux) do przechwytywania wychodzących sesji TCP,
następnie tworzy całkowicie oddzielne sesje TCP wychodzące do pierwotnego miejsca docelowego w drugim
koniec tunelu.
Przekazywanie na poziomie pakietów (np. przy użyciu urządzeń tun/tap w systemie Linux) na pierwszy rzut oka wydaje się eleganckie,
ale powoduje to kilka problemów, w szczególności problem „tcp przez tcp”. protokół tcp
zależy zasadniczo od odrzucania pakietów w celu zaimplementowania jego przeciążenia
agorytm kontrolny; jeśli przekazujesz pakiety tcp przez tunel oparty na tcp (taki jak ssh), plik
wewnętrzne pakiety tcp nigdy nie zostaną porzucone, a więc kontrola przeciążenia wewnętrznego strumienia tcp
zostanie całkowicie zepsuty, a wydajność będzie okropna. Tak więc sieci VPN oparte na pakietach
(takie jak IPsec i openvpn) nie mogą używać zaszyfrowanych strumieni opartych na tcp, takich jak ssh lub ssl, oraz
muszą zaimplementować własne szyfrowanie od podstaw, co jest bardzo skomplikowane i obarczone błędem
skłonny.
wahadłowiecProstota wynika z faktu, że może bezpiecznie korzystać z istniejącego ssh
zaszyfrowany tunel bez ponoszenia kary za wydajność. Robi to, pozwalając
Jądro po stronie klienta zarządza przychodzącym strumieniem tcp, a jądro po stronie serwera zarządza
wychodzący strumień TCP; nie ma potrzeby współdzielenia kontroli przeciążenia między nimi
oddzielne strumienie, więc tunel oparty na tcp jest w porządku.
Korzystaj z usługi sshuttle online, korzystając z usług onworks.net