Я пытаюсь настроить свой файл хоста дома, чтобы иметь доступ к моему веб-серверу с моего внешнего IP-адреса.
Если я пойду http: // локальный / тест У меня есть доступ к моему apache, но если я попробую http: // myip / test Я вижу 404 от своего роутера.
Nat rule / fw работает, так как друзья извне могут получить доступ к моему серверу.
Я попытался добавить ip в свой файл хоста, но, похоже, это не сработало.
127.0.0.1 локальный хост 90.x.x.x
любая подсказка?
Вы не можете этого сделать.
В hosts
файл предназначен только для сопоставления имен и IP-адресов. Вы не можете использовать его для сопоставления одного IP-адреса с другим IP-адресом. Итак, вы могли сделать это:
127.0.0.1 www.my.computer
... а затем введите http://www.my.computer/
в вашем веб-браузере.
Теоретически вы можете дать своему локальному устройству тот же IP-адрес, что и внешний адрес вашего маршрутизатора, что позволит вам делать то, что вы описали, но на самом деле я бы не рекомендовал такую конфигурацию.
Ваша проблема не в вашем файле hosts (хотя ИМЕЕТСЯ файл hosts - это проблема - почти всегда нет веских причин для этого!). Ваша проблема связана с вашим брандмауэром, а именно с чем-то, что называется «NAT Reflection». (Погуглите свой маршрутизатор / брандмауэр и этот термин, чтобы узнать, можно ли настроить отражение NAT в вашем случае).
Лучшей альтернативой, вероятно, было бы доступ к вашему внутреннему серверу по имени хоста DNS и переопределение его локально (либо через файл хостов (YUCK!), Либо внутренний DNS), чтобы указать на частный IP-адрес.
Вы используете веб-сервер Apache? Если да, то это может быть вопрос исправления директивы в вашем файле httpd.conf. Я думаю, что ServerName с использованием вашего IP-адреса может быть исправлением.
Servername <externipnumber>:80
Listen <externipnumber>:80