Chciałbym, aby wszystkie połączenia przychodzące do portu 1000 mojego hosta (IP: 200.234.XXX.XXX) były przekazywane do portu 80 na hoście 10.211.55.5
Jak mogę to zrobić na moim hoście? Działa w systemie Mac OS X 10.5.8
Chciałbym, aby wszystkie połączenia przychodzące do portu 1000 mojego hosta (IP: 200.234.XXX.XXX) były przekazywane do portu 80 na hoście 10.211.55.5
Jak mogę to zrobić na moim hoście? Działa w systemie Mac OS X 10.5.8
Odpowiedzi:
Całkiem proste do zrobienia, po pierwsze musisz włączyć usługę zdalnego logowania na komputerze Mac ( Preferencje systemowe -> Udostępnianie -> Zdalne logowanie ). To uruchomi twój serwer ssh.
Następnie uruchom następujące polecenie w terminalu OS X:
ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1
Konieczne może być początkowe zaakceptowanie odcisku palca serwera, a także wpisanie lokalnego hasła do logowania ssh. (Możesz także skonfigurować lokalny / lokalny klucz publiczny / prywatny ssh, aby nie pytał o hasło, pozostawi to jako ćwiczenie dla czytelnika).
Format to:
ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
Bardzo proste przy użyciu wszechstronnego narzędzia ncat:
sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open
Pobierz pliki binarne ncat / nmap dla Mac OS X z oficjalnej strony: http://nmap.org/download.html#macosx
EDYCJA: dodano sudo do nasłuchiwania na ograniczonym porcie <1024
Cóż, mogę powiedzieć, jak to robię w moim systemie Mac OS X 10.5.8.
Zacząłem od odpowiedzi na temat NAT, ale myślę, że tak naprawdę chcesz program przekierowujący TCP (wspominasz o „proxy” i przekierowaniu portów).
Jest kilka sposobów, aby to zrobić, w zależności od potrzeb, nawet „SSH” może zostać wciśnięty do działania, chociaż moim ulubionym krótkim i słodkim sposobem jest skrypt Perla tcpforward .
Jeśli potrzebujesz jakiejś manipulacji HTTP (może być konieczne zmodyfikowanie przekierowań HTTP, aby gdy pojawi się żądanie adresu URL bez końcowego „/”, nie zostaniesz przekierowany do prawdziwego, niedostępnego serwera), wtedy Apache może wykonać zadanie zwrotnego proxy. Będziesz chciał spojrzeć na mod_proxy, a konkretnie ProxyPass i ProxyPassReverse. Czy nie pozwalają ProxyRequests, to do przodu proxy. Aby to zrobić, powinno być możliwe użycie własnego Apache Mac OS. Jest dostarczany z mod_proxy i /etc/httpd/httpd.conf to plik konfiguracyjny do aktualizacji.
Nawet w przypadku Apache musisz upewnić się, że wszystkie łącza w zawartości prawdziwego serwera są względne, jeśli odnoszą się do prawdziwego serwera, możesz wypróbować moduł mod_proxy_html (nie mam doświadczenia, jak dobrze to działa).
Czy twoje urządzenie jest podłączone bezpośrednio do Internetu (IE - bez routera)? Zwykle przekierowanie portów odbywa się na routerze, ale jeśli używasz modemu do bezpośredniego połączenia, iptables jest prawdopodobnie najlepszym sposobem.
iptables
aby osiągnąć zadane pytanie, może to być przydatne.
Oto dobry artykuł: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x
Ale skoro przekierowujesz na 80, zakładam, że chcesz, aby to poszło na serwer WWW, więc po prostu zmienię konfigurację serwera WWW, aby skonfigurować odwrotne proxy lub coś w tym rodzaju.