Просматривайте интернет через другой хост без внешнего публичного 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.