Я использую локальный хостинг на своем VPS.
При запуске сервиса я получаю следующее:
Navigate to https://127.0.0.1:7443 in a browser
Проблема в том, что я не могу открыть его в своем браузере, потому что это VPS.
Я попробовал запустить ngrok, но он сообщает, что подключение к localhost не удалось.
Есть ли способ перенаправить его на IP-адрес того же VPS, на котором работает localhost? Например, я открываю браузер и ввожу IP-адрес своего сервера?
решение1
Вы уже пробовали получить доступ к порту с помощью IP-адреса VPS, а не с помощью localhost, потому что какое-то приложение в консоли сказало перейти на localhost, но прослушивать все интерфейсы?
Альтернативный вариант, если служба прослушивает только localhost и у вас есть доступ по SSH к VPS, вы можете перенаправить порт localhost вашего VPS на локальную машину.
ssh user@vpsIP -L 7443:localhost:7443
объяснение -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT
первые квадратные скобки необязательны, если вы хотите указать, где прослушивать на вашем компьютере, по умолчанию все интерфейсы
решение2
Запустите веб-сервер, прослушивающий удаленные адреса, и получите доступ через Интернет.
Прочитайте документацию веб-сервера, о котором идет речь, чтобы узнать, как это сделать. Предпочитайте сценарии развертывания в производственной среде с известным веб-сервером. Возможно, вставьте балансировщик нагрузки или другой служебный прокси-сервер в середину.
Игрушечные серверы для целей разработки недостаточно защищены или производительны для оперативного использования. И могут прослушивать только адреса обратной связи.
Получите доменное имя для этой штуки. Проще выдавать TLS-сертификаты для имени, и также проще для запоминания людьми.
решение3
Можно организовать это через прокси. У меня есть WireGuard, который имеет внутренний IP-адрес участников. Давайте возьмем пример с сервера, который подключил VPN с IP-адресом: 10.8.0.2 (внутренний IP-адрес) IP-адрес VPN: 10.8.0.2
Вам нужно установить на вашем vps vpn, который создает локальную сеть. У меня есть wireguard. Затем установите nginx в качестве прокси. После установки откройте браузер и введите IP-адрес вашего vps. Если откроется приветствие nginx. Это хорошо. Это должно работать примерно так: запрос приходит на vps, nginx обрабатывает его и отправляет информацию на подключенный сервер через vpn (WireGuard), ждет ответа и отправляет его обратно тому, кто отправил запрос.
Осталось поправить конфиг.
Конфигурация vpn nginx введите код здесь
server {
client_body_timeout 5s;
client_header_timeout 5s;
listen 80; #port
server_name 2.16.136.1;# domen/ip vpn
add_header Access-Control-Allow-Origin *;
location / {
#limit_conn addr 3;
limit_rate 71680k;
#if ($http_cookie ~* ".+" ) {
#set $cookie_cache_bypass 1;
#}
proxy_pass http://10.8.0.2:5000;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_cache all;
proxy_cache_valid 404 502 503 20m;
proxy_cache_valid any 2h;
proxy_cache_use_stale error timeout invalid_header updating;
gzip on;
gzip_disable "msie6";
gzip_vary on;
#gzip_proxied any;
gzip_comp_level 5;
gzip_min_length 2240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
}
}
PS: извините за опечатки в конфигурации, если таковые имеются.
решение4
Например, вы можете установить прокси-менеджер nginx.
Там вы можете добавить домен или свой публичный IP-адрес и затем https://127.0.0.1:7443
получить доступ к этому хосту с помощью своего публичного IP-адреса.