Ustawiać
W domu mam małą Raspberry Pi 3, która obsługuje usługi z dostępem do Internetu. Na przykład działa serwer HTTP. Zadzwonię na ten serwer raspberry. Mogę zarządzać raspberryzdalnie przez SSH: Otworzyłem port 22w routerze w domu i dlatego ruch do mojego publicznego adresu IP dla tego portu jest przekazywany raspberry. Na razie w porządku.
raspberryarchitektura jest arm64i działa, FreeBSDco uniemożliwia (najwyraźniej próbowałem włamać się, ale nie ma kości), aby uruchomić na nim serwer gry (UrbanTerror 4.3).
Mam też inną maszynę, która jest ThinkPad (później: thinkpad) Bieg OpenBSDi ma amd64architekturę, która ma w rzeczywistości pozwala mi uruchomić żądany serwer. Od thinkpadmogę uzyskać dostęp raspberryza pomocą SSH.
Pytanie
Obecnie nie ma mnie w domu , ale w innej sieci, właściwie za granicą . Mam teraz nieodpartą potrzebę hostowania mojego serwera, ale nie mogłem tego zrobić raspberry, jak powiedziałem.
Czy w jakiś sposób byłoby możliwe uruchomienie serwera thinkpadi tunelowanie całego ruchu raspberry(ponieważ mogę to ujawnić w Internecie, podczas gdy tutaj, za granicą , nie mam uprawnień administratora do routera)?
Zasadniczo chcę uruchomić serwer thinkpadtak, jakbym działał raspberrypod względem sieci. Oznacza to, że serwer pojawiłby się w przeglądarkach serwerów, a gracze mogliby się połączyć: ruch docierałby raspberrynp. Przez port 27900i byłby przesyłany przez Internet za pośrednictwem SSH do thinkpad.
PS Zdaję sobie sprawę, że prawdopodobnie spowodowałoby to słabą wydajność z powodu przekazywania ruchu przez SSH, ale nadal chciałbym spróbować.
Z góry dziękuję i przepraszam za długi post!
EDYCJA 2018-12-14: Oto, co już próbowałem
Potrzebuję do tego tunelu zwrotnego SSH . Stworzyłem tunel ze thinkpadjak tak
ssh -N -R :27960:localhost:27960 <raspberry's public IP>
Tunel został utworzony pomyślnie. Sprawdziłem z netstatwłączonym raspberryi rzeczywiście nasłuchuje *:27960(ale TCP; czy to jest problem? UrbanTerror, podobnie jak inne gry, używa UDP). Teraz uruchomiłem serwer thinkpadraz za razem netstati zobaczyłem, że nasłuchuje *:27960(UDP).
Próbowałem otworzyć klienta UrbanTerror thinkpadi połączyć się z nim <raspberry's IP>, ale to nie zadziałało. Aby debugować, próbowałem tego samego podczas pracy
tcpdump -n -e -ttt -i ue0 | grep 27960
na raspberry. Kiedy próbowałem połączyć się z moim serwerem raspberryz UrbanTerror, na zrzucie pojawiły się następujące informacje:
188.112.111.89.27961 > 192.168.0.33.27960: UDP, length 16
192.168.0.33 > 188.112.111.89: ICMP 192.168.0.33 udp port 27960 unreachable
(Usunąłem dane wyjściowe ze względu na zwięzłość)
188.112.111.89jest obecnym publicznym adresem IP thinkpadi 192.168.0.33jest oczywiście raspberry. Dlaczego port jest 27960nieosiągalny? Oczywiście, według netstat, thinkpadnasłuchuje na tym porcie.
Wystarczy, aby przetestować łączność, próbowałem działa nc -l 27960na thinkpadi nc localhost 27960na raspberry: mogę komunikować się w obu kierunkach, w / o problemach.
Myślę, że warto również wspomnieć, że mam OpenBSD„s pffiltr pakietów uruchomiony na obu komputerach, ale mam wyłączone to do rozwiązywania problemów.
man ssh? W tym pytaniu konfiguracja jest podobna (tłumaczenie: „Plex” -> „thinkpad”; „serwer zdalny” -> „malina”).