Niestety nie mieszkam w miejscu, które nie pozwala mi mieć statycznego adresu IP, więc konfiguruję dostęp do mojego komputera domowego za pośrednictwem odwrotnych tuneli SSH, które działają na instancji micro amazon ec2. Sprawiłem, że SSH działa dobrze, ale nie mogę rozgryźć portu do przodu.
Oto mała infografika, którą pomogłem zilustrować (czułem, że pytanie jest jaśniejsze dzięki schematowi tego, co próbowałem zrobić.
Oto polecenia wymienione na grafice:
Na moim komputerze domowym:
ssh -R 1337:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress
i uruchamiam to na serwerze ec2:
ssh -L6600:localhost:6600 -Nf localhost -p 1337
Do Twojej wiadomości dodałem port 6600 do mojej grupy bezpieczeństwa dla Amazon EC2, więc jest otwarty po stronie ec2
linux
ssh
port-forwarding
mpd
Hortinstein
źródło
źródło
Odpowiedzi:
Nie jestem pewien, dlaczego używasz tutaj dwóch osobnych poleceń ssh? Jeśli chcesz przekierować port 6600 na EC2 zamiast na port 6600 na komputerze w domu, wszystko, co musisz zrobić, to:
Należy również upewnić się, że
GatewayPorts
opcja jest włączona wsshd_config
pliku w instancji EC2.Oczywiście musisz pozostawić otwarte połączenie ssh, aby port mógł dalej działać, ale poza tym nie powinno być żadnych problemów.
źródło
Czy możesz podać wynik:
na
ec2serveraddress
. Spodziewam się, że oba tunele zaczynają się od127.0.0.1:PORT
?127.0.0.1
jest adresem IP samej maszyny lokalnej, niedostępnym z zewnątrz. Oznacza to, że możesz uzyskać dostęp do tego tunelu z samego serwera, ale nie z żadnej innej maszyny ...W takim przypadku dodaj następujące informacje do
/etc/ssh/sshd_config
:Ta opcja utworzy porty w
0.0.0.0
, dzięki czemu możesz łączyć się z dowolnego miejsca. Jeśli nie ma innych powodów, aby utworzyć dwa połączone tunele, możesz oczywiście zmniejszyć go tylko do jednego:Spowoduje to utworzenie tunelu
ec2serveraddress:6600
do twojegohome:22
.źródło
ssh -R 6600:localhost:22 ...
, gdy odpowiedź na @TomH ma taki? (ssh -R :6600:localhost:22 ...
? Czy jest jakaś różnica?