Що можливо, залежить від того, що дозволяє брандмауер.
Якщо брандмауер дозволяє довільний трафік на порт 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/, щоб ознайомитись із навчальним посібником про те, як це робити з прокситуннелем .