Что возможно, зависит от того, что позволяет брандмауэр.
Если межсетевой экран разрешает произвольный трафик через порт 443
Некоторые брандмауэры используют простой выход и разрешают все на порту 443. Если это так, самый простой способ получить доступ к вашему домашнему серверу - это заставить его прослушивать соединения SSH на порту 443. Если ваша машина напрямую подключена к Интернету, просто добавить Port 443
в /etc/ssh/sshd_config
или /etc/sshd_config
чуть ниже линии , которая говорит Port 22
. Если ваша машина находится за маршрутизатором / брандмауэром, который перенаправляет входящие соединения, сделайте так, чтобы она перенаправляла входящие соединения на порт 443 на порт 22 вашего сервера с чем-то вроде
iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22
где wan0
- интерфейс WAN на вашем маршрутизаторе, а 10.1.2.3 - IP-адрес вашего сервера в вашей домашней сети.
Если вы хотите разрешить вашему домашнему серверу прослушивать как HTTPS-соединения, так и SSH-соединения через порт 443, это возможно - трафик SSH и HTTPS можно легко различить (в SSH сервер сначала говорит, а в HTTP и HTTPS - клиент первый). См. Http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html и http://wrouesnel.github.io/articles/Setting%20up%20sshttp/, чтобы узнать, как установить это с sshttp , а также иметь SSH на порт 80 или 443, в то время как веб-сервер (nginx) работает на этих портах
Если у вас есть веб-прокси, который позволяет CONNECT туннелирование
Некоторые брандмауэры блокируют все исходящие соединения, но позволяют просматривать веб-страницы через прокси-сервер, который позволяет методу HTTPCONNECT
эффективно пробить дыру в брандмауэре. CONNECT
метод может быть ограничен определенными портами, поэтому вам может потребоваться совместить это с прослушиванием на порту 443, как описано выше.
Чтобы заставить SSH проходить через прокси, вы можете использовать такой инструмент, как штопор . В вашей ~/.ssh/config
, добавьте ProxyCommand
строку, как показано ниже, если ваш веб-прокси http://web-proxy.work.example.com:3128
:
Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p
Обертывание SSH в HTTP (S)
Некоторые брандмауэры не допускают трафик SSH, даже через порт 443. Чтобы справиться с этим, вам нужно замаскировать или туннелировать SSH в то, что пропускает брандмауэр. См http://dag.wiee.rs/howto/ssh-http-tunneling/ для учебника по делать это с proxytunnel .