Просматривайте интернет через другой хост без внешнего публичного ip на любом хосте

Мне нужно просматривать несколько веб-сайтов (которые также имеют флэш-контент) через мой домашний интернет, пока я нахожусь на рабочем месте. Так что с серверов сайта они видят только доступ с моего домашнего IP.

На домашнем и офисном компьютерах нет прямого внешнего публичного IP-адреса, и у меня нет доступа к маршрутизаторам для каких-либо изменений (NAT/ переадресация портов и т. Д.).
У меня также есть свой собственный сервер в облаке с публичным внешним IP-адресом, который я могу использовать для создания этого маршрута. Мы можем установить любое программное обеспечение на домашний компьютер, офисный компьютер и облачный сервер.

Я нашел несколько полезных ссылок:

Как настроить локальный прокси-сервер SOCKS, который туннелирует трафик через SSH?

http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel

Но не смог придумать полную конфигурацию для моего случая. Не могли бы вы дать мне знать, какие варианты есть для этой проблемы?

1 ответ

Внешний сервер, конечно, дает опции, но я бы хотел сначала изучить прямые соединения.

Они быстрее и в целом более надежны. Однако для подключения требуется IP-адрес, а на другом конце - маршрутизация для получения соединения от маршрутизатора к серверу. Вы говорите, что у вас их нет, но я думаю, что вы можете пропустить варианты.

  • Мне трудно (не невозможно) поверить, что у вас нет легального IP. У большинства домашних подключений есть один. Маршрутизатор получает его и использует NAT и DHCP для предоставления вам частных внутренних IP-адресов. Находясь дома, вы можете запросить у Google ваш IP-адрес, и он должен сообщить вам.

    Многие домашние соединения используют динамическую IP-адресацию, что означает, что ваш IP будет меняться по расписанию, определенному вашим провайдером. Вы можете обойти это, используя один из многих вариантов динамического DNS.

  • Маршрут сложнее. Традиционно я бы попросил вас перенаправить порт, войдя в маршрутизатор. Вы говорите, что не можете этого сделать... Так что насчет UPNP? На многих маршрутизаторах это включено по умолчанию, и это позволяет вам делать то же самое. Вы арендуете порт у роутера. Настроить это в Ubuntu довольно просто:

    sudo apt-get install miniupnpc
    upnpc -a <local_ip> 22 22 TCP
    

    Тогда внешние машины смогут получить доступ к вашему SSH-серверу через ваш общедоступный IP-адрес.


В противном случае вы можете создать постоянное соединение со своего домашнего компьютера с внешним сервером, который туннелирует порт обратно к SSH-серверу, работающему на вашем домашнем компьютере. Тогда люди могут подключиться к вам домой через ваш сервер. Я назвал это обратным туннелированием портов.

  • Из дома: ssh -L 22:0.0.0.0:2200 serveruser@server выставить свой домашний SSH на сервер. Вам, вероятно, также нужно будет отредактировать /etc/ssh/sshd_config и включи GatewayPorts ( см. это)
  • Тогда откуда угодно ssh -D -p2200 homeuser@server

Конечно, вы можете обнаружить, что соединение от дома к серверу останавливается или истекает время ожидания. Существуют различные варианты решения этой проблемы.


В любом случае вы открываете действительно большую дверь в свою систему. Пожалуйста, попрактикуйтесь в безопасных вычислениях и следуйте моему руководству по повышению безопасности SSH.

Другие вопросы по тегам