networking как - Могу ли я использовать файл / etc / hosts для настройки псевдонима




должен выглядеть (9)

Файл /etc/hosts может использоваться для переопределения определений dns, то есть для указания имени хоста на другой ip.

Я хочу использовать /etc/hosts для создания псевдонима, т. Е. Заставить мой компьютер думать, что www.mysite.com не указывает на «жестко закодированный» ip, а вместо этого является синонимом mychangingip.myip.com.

Это можно сделать?


Answers

У меня была такая же проблема, и я решил ее, установив и используя nginx на своем mac. Для этого вам не нужен сервер dns. Вы можете просто воспользоваться опцией proxy_pass от nginx, чтобы получить тот же эффект, что и cname.

После установки и настройки nginx вы можете alias first.com для second.com как это. В вашем / etc / hosts пересылайте трафик first.com на 127.0.0.1.

127.0.0.1 first.com

В вашей конфигурации nginx добавьте следующее:

server {
  listen   80;
  server_name  first.com;
  access_log off;
  location / {
      proxy_pass http://second.com;
      proxy_set_header    Host            $host;
      proxy_set_header    X-Real-IP       $remote_addr;
      proxy_set_header    X-Forwarded-for $remote_addr;
      proxy_connect_timeout 300;
  }
}

Это должно эффективно дать вам cname-подобную настройку. Надеюсь, это поможет!


/etc/hosts не могут использоваться (сами по себе) для создания имен псевдонимов хоста.

Файл hosts производит внутренний эквивалент записей A и PTR из DNS, то есть сопоставление имени хоста с IP-адресом и наоборот.

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



Если вы хотите использовать SSH на сервере (с динамически меняющейся записью DNS), вы можете эффективно добавить «псевдоним» (в файле ~ / .ssh / config), создав запись:

Host myAlias
    HostName mychangingip.myip.com

Затем вы можете «ssh myAlias» (есть другие директивы, которые могут быть полезны, например, пользователь, порт и т. Д.).


Есть поставщики услуг, которые будут комфортно и надежно делать это за вас. Важным примером является dyndns .


Я недавно изучил это, я не мог найти реального решения. Однако вы можете частично получить то, что хотите, добавив строку поиска в /etc/resolv.conf, например:

search myip.com

Затем он будет искать mychangingip.myip.com при попытке решить mychangingip См. Также страницу man для resolv.conf


Следует заметить, что у вас есть такая запись:

 127.0.0.1     dev.example.com

Когда вы действительно получите запрос в своем приложении (в моем случае ASP.NET), он будет действовать, как правило, решить «localhost», поэтому вы не можете делать такие вещи:

if (Request.Url.Authority == "dev.example.com) {
   // ...
}

Псевдоним разрешен «localhost». Я думаю, что это поведение работает так, как если бы это CNAME


Я не думаю, что файл hosts не является альтернативой DNS-сервера. Вместо того, чтобы пытаться выяснить, как установить и настроить bind dns, вы можете попробовать использовать SheerDNS с файловыми базами. http://threading.2038bug.com/sheerdns/ (лучший легкий сервер dns, который я нашел через freshmeat).


В наши дни многое намного проще!

  1. Обновите запись домена Apex (@) до точки

192.30.252.154

192.30.252.153

  1. Измените поле домена Custome в настройках рефинансирования github.

  1. www и другие поддомены могут быть обновлены как CNAME до домена apex.




networking dns hosts