все. Моя сеть колледжа каким-то образом запрещает входящие соединения. (Я могу выйти по SSH из сети, но не в нее.)
Я пытаюсь настроить SSH-туннель со своего школьного компьютера («школа») на «компьютер» VPS («внешний»), который находится за пределами школьной сети.
Я надеюсь дойти до того момента, когда смогу
ssh -p 3000 name@outside
и в конечном итоге вошел в систему имя @ школа.
Вот как я пытаюсь настроить переадресацию удаленного порта:
[name@school]$ ssh -R *:3000:localhost:22 outside
Кажется, эта команда работает. (Запуск с флагом -v дает
debug1: Remote connections from *:3000 forwarded to local address localhost:22
debug1: remote forward success for: listen 3000, connect localhost:22
debug1: All remote forwarding requests processed
что выглядит многообещающе.)
Однако, когда я продолжаю
ssh -p 3000 name@outside
не работает:
ssh: connect to host outside port 3000: Connection refused
Я могу открыть netcat на внешнем сервере и прослушивать порт 3000, а затем подключиться к нему с помощью netcat со своего школьного компьютера - это отлично работает. Если я попытаюсь создать туннель SSH, скажем, снаружи: 3000 в школу: 2000, а затем попытаюсь подключиться к netcat снаружи: 3000, я получу
nc: connect to outside port 3000 (tcp) failed: Connection refused
Вышеупомянутая процедура также не работает, если я пробую ее между двумя компьютерами в школьной сети, поэтому я почти уверен, что проблема во мне, а не в компьютерах / сети.
Большое спасибо за вашу помощь! (редактировать: извините, похоже, это должно происходить при сбое сервера?)
Из вашего собственного комментария, что вы можете сделать ssh -p 3000 locahost
и он работает, ваш метод действителен. Где-то на линии ваше соединение с этим внешним хостом блокируется. Возможно, школа по какой-то причине блокирует любой исходящий трафик на порту 3000, или на «внешнем» хосте есть брандмауэр / ACL, который блокирует соединение. Другая удаленная возможность заключается в том, что внешний интернет-провайдер блокирует соединение.
Попробуйте подключиться к нему с другого внешнего хоста и посмотрите, работает ли это. Если это так, значит, ваша школа блокирует это (что было бы действительно странно, но школьные сети обычно таковыми). В противном случае взгляните на правила брандмауэра на этом внешнем хосте, чтобы узнать, блокирует ли он его. К сожалению, в этом последнем случае блокировки интернет-провайдера нет простого способа определить, блокирует ли это интернет-провайдер или сам компьютер.
Брандмауэр университета блокирует соединение. Это обычное дело для предотвращения неправомерного использования и предотвращения распространения вредоносных программ на серверы с помощью методов BotNet. По этой же причине большинство университетов блокируют IRC, поскольку он обычно используется для передачи данных обратно мастеру.