Ситуация Я запускаю веб-сервер (CentOS на VMware, несколько виртуальных хостов) на машине разработки, и я хотел бы предоставить клиентам доступ для просмотра некоторых сайтов без необходимости загружать их во внешнюю учетную запись хостинга.
Эта проблема У меня нет доступа к маршрутизатору, поэтому я не могу настроить переадресацию портов. Однако у меня есть учетная запись хостинга (с доступом по ssh) и даже VPS.
Вопрос Есть ли что-то, что я мог бы настроить в своей учетной записи внешнего хостинга или VPS, чтобы обрабатывать запросы веб-страниц, каким-то образом извлекая данные с моего локального сервера (за маршрутизатором) и передавая их конечному пользователю? Я понимаю, что это немного запутано, но производительность особого значения не имеет.
Спасибо!!!
Вы можете сделать что-то подобное на своем компьютере разработчика:
ssh vps-hostname -R 8080:localhost:80
Это создаст зашифрованный туннель от порта 8080 на vps к порту 80 на локальном компьютере.
Я думаю, вам также нужно настроить ssh для использования пакетов keep-alive (например, с ClientAliveInterval
вариант на sshd_config
на VPS), поскольку слишком долгое простаивающее соединение будет прервано вашим маршрутизатором.
если вы находитесь во внутренней сети и у вас нет администратора на устройствах периметра, входящие соединения из Интернета не могут попасть на хост внутри вашей частной сети. однако есть несколько вариантов
1) ваш ящик внутри частной сети может подключаться к вашему облачному серверу / vps (но не наоборот), поэтому используйте cron, который заполняет корень документа для apache / nginx. например, вы можете использовать pki и rsync каждый час.
2) настройте openvpn на внутреннем ящике и инициируйте оттуда туннель на сайты ваших клиентов (не рекомендуется ... это бэкдор в вашу компанию)
3) подружитесь с администраторами брандмауэра и попросите их перенаправить порт для вас (хотя вам, скорее всего, придется загружать на веб-сервер в демилитаризованной зоне, так что вы также можете сделать № 1 и загрузить в облако)
Уже есть хорошие идеи, но вот решение, которое сделает вашу VMWare доступной, как если бы она была на вашем vps:
Установить openvpn сервер на вашем vps. Есть много руководств. Предлагаю выбрать мостовой режим (с интерфейсом тапа). Выберите диапазон IP, например 10.1.2.1-254 (10.1.2.0/24). После того, как вы сгенерировали свой CA и т. Д., Сгенерируйте клиентский ключ с именем «vmware» без парольной фразы и поместите в каталог / etcopenvpn / cdd файл с именем «vmware» со следующим содержимым:
--ifconfig-push 10.1.2.3 255.255.255.0
важные строки в вашем server.conf (то есть: которые вы должны изменить из конфигурации по умолчанию)
dev tap0
server-bridge 10.1.2.1 255.255.255.0 10.1.2.100 10.1.2.110
client-config-dir /etc/openvpn/ccd
Убедитесь, что порт udp 1194 открыт для общего доступа (или, по крайней мере, с общедоступного IP-адреса вашей машины vmware).
важные строки:
remote <public ip address your vps> 1194
ca, cert, key
Если вы включите службу openvpn (checkconfig openvpn on), клиент запустится автоматически при загрузке, установив туннель между вашим vpn и vps.
Имя сервера MyVmware.vm.ware.com
RewriteEngine при RewriteRule (. *) http://10.1.2.3/$1
[P, L]
Вот, пожалуйста..
Между прочим, вы только что сделали свой сервер разработки общедоступным. Предлагаю ограничить доступ хотя бы в конфигурации apache ..