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ć raspberry
zdalnie przez SSH: Otworzyłem port 22
w routerze w domu i dlatego ruch do mojego publicznego adresu IP dla tego portu jest przekazywany raspberry
. Na razie w porządku.
raspberry
architektura jest arm64
i działa, FreeBSD
co 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 OpenBSD
i ma amd64
architekturę, która ma w rzeczywistości pozwala mi uruchomić żądany serwer. Od thinkpad
mogę uzyskać dostęp raspberry
za 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 thinkpad
i 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 thinkpad
tak, jakbym działał raspberry
pod względem sieci. Oznacza to, że serwer pojawiłby się w przeglądarkach serwerów, a gracze mogliby się połączyć: ruch docierałby raspberry
np. Przez port 27900
i 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 thinkpad
jak tak
ssh -N -R :27960:localhost:27960 <raspberry's public IP>
Tunel został utworzony pomyślnie. Sprawdziłem z netstat
włączonym raspberry
i rzeczywiście nasłuchuje *:27960
(ale TCP; czy to jest problem? UrbanTerror, podobnie jak inne gry, używa UDP). Teraz uruchomiłem serwer thinkpad
raz za razem netstat
i zobaczyłem, że nasłuchuje *:27960
(UDP).
Próbowałem otworzyć klienta UrbanTerror thinkpad
i 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 raspberry
z 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.89
jest obecnym publicznym adresem IP thinkpad
i 192.168.0.33
jest oczywiście raspberry
. Dlaczego port jest 27960
nieosiągalny? Oczywiście, według netstat
, thinkpad
nasłuchuje na tym porcie.
Wystarczy, aby przetestować łączność, próbowałem działa nc -l 27960
na thinkpad
i nc localhost 27960
na raspberry
: mogę komunikować się w obu kierunkach, w / o problemach.
Myślę, że warto również wspomnieć, że mam OpenBSD
„s pf
filtr 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”).