Я пытаюсь обойти прокси-сервер в своей школе из-за его ненужных ограничений, используя SSH туннелирование через HTTPS. Я преуспел, используя бесплатный сервис туннелирования SSH и proxytunnel, который предположительно создает общие HTTP(S) туннели через прокси на удаленный сервер.
Проблема в том, что сервис туннелирования, который я использую, не очень надежен. 9/10 раз я пытаюсь создать туннель с помощью команды ssh fastssh.com-user@usa-1.serverip.co -p 443 -ND 1080 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port —v -d %h:%p"
Я получаю ssh_exchange_identification: connection closed by remote host
, поэтому я предполагаю, что сервер просто перегружен.
Этот сервер также довольно медленный, как вы могли ожидать от бесплатного сервиса. Этот метод работает, это просто не то, что я хочу.
Итак, у меня дома есть дополнительный компьютер, на котором выполняется прослушивание sshd
через порт 443, и я перенаправил порт 443 на маршрутизаторе. Я подключился к домашнему серверу из удаленной сети, которая не находится за прокси-сервером, поэтому я знаю, что он доступен извне.
Теперь что-то интересное происходит, когда я запускаю ssh home_user@home.server.ip -p 443 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port -v -d %h:%p"
из ограниченной сети: ssh_exchange_identification: connection closed by remote host
. Я получаю это каждый раз, когда пытаюсь подключиться из ограниченной сети, несмотря ни на что.
Так почему я могу подключиться к бесплатному серверу, но он не позволяет мне использовать мой домашний сервер? Добавление -vvv
(для части команды ssh
, а не proxytunnel
) не дает никакой полезной информации, кроме как невозможность подключения к домашнему серверу. Если это помогает, я думаю, что proxytunnel
не является виновником, потому что он печатает Via proxy.ip.address:port -> home.server.ip:port
, что означает, что он подключен к прокси. proxy.ip.address
- это ограничительный прокси, который я пытаюсь обойти, просто чтобы прояснить.