В моем/etc/hosts/файле на Linux/OSX, как я делаю подстановочный субдомен?

Если бы Вы хотите быстро, я использовал бы eSATA вместо этого. Носите карту PCMCIA eSATA с Вами. также. Это не отвечает Вашему требованию ни для какого внешнего питания, как бы то ни было.

На самом деле, когда я смотрел сейчас, я нашел тот, который имеет преобразователь в случае, таким образом, Вам не нужна стенная бородавка.

Корпус SATA

175
задан 4 August 2015 в 12:40
15 ответов

Я записал прокси DNS в Python. Это считает подстановочные записи в/etc/hosts. Посмотрите здесь: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py

45
ответ дан 16 December 2019 в 22:45

Короткий ответ:

Ваш/etc/hosts/файл не позволит Вам использовать подстановочные знаки или номера портов. Необходимо будет создать одну запись для каждого субдомена

2
ответ дан 16 December 2019 в 22:45
  • 1
    Что позволило бы Вам указать номера портов? Не DNS AFAIK. –  ptman 3 March 2010 в 13:45

Короткий ответ - Вы, не делают. Более длинный ответ - Вы, должно быть более ясным на том, чего Вы требуете на самом деле достигнуть, потому что существует, возможно, любой лучший путь и другой способ достигнуть его.

Для веб-хостинга (я никогда не видел, это использовало иначе), сделан в DNS в сочетании с виртуальным размещающим осведомленным веб-сервером. Для получения дополнительной информации о подстановочном знаке DNS записывает (Википедия) и хостинг статьи Wildcard с Apache, и Свяжите для использования Linux, связывают и Apache.

В худшем случае Вы могли использовать локальный сервер DNS, который я предполагаю.

2
ответ дан 16 December 2019 в 22:45

Вы не можете использовать подстановочный знак в /etc/hosts.

Взгляните здесь для хорошей пошаговой демонстрации о том, как выполнить на OS X с помощью BIND, встроенного, но неактивного сервера DNS и Apache.

4
ответ дан 16 December 2019 в 22:45
  • 1
    Apache не имеет никакого отношения к субдоменам. –  Anonymous 2 March 2010 в 19:55

Не возможно указать подстановочные знаки в /etc/hosts файл. Или укажите необходимые имена хостов явно или альтернативно настройте локальный сервер имен с соответствующими правилами.

62
ответ дан 16 December 2019 в 22:45

Необходимо настроить сервер DNS и иметь каждый клиент, используют его для разрешения. Сам сервер может быть чем-то столь же "легким" как dnsmasq или столь же тяжелый как BIND.

15
ответ дан 16 December 2019 в 22:45

Установите dnsmasq (я делаю это на всех своих рабочих столах Linux как кэш DNS так или иначе). В dnsmasq.conf добавьте строку:

address=/localhost.com/127.0.0.1
155
ответ дан 16 December 2019 в 22:45

Это решение на основе DNS отлично работало в моем случае, без необходимости устанавливать что-либо: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)

4
ответ дан 16 December 2019 в 22:45

Я привел в порядок свой старый проект:

https://github.com/airtonix/avahi-aliases

требования:

  • linux, где avahi и python -avahi устанавливаются
  • вы в порядке с доменами .local (avahi не поддерживает другие типы)

Преимущества перед использованием dnsmasq или прокси-сервера python dns:

  • другие пользователи avahi / bonjour в вашей локальной сети может разрешать псевдонимы, которые вы создаете и объявляете в сети (при условии, что вы разрешаете доступ к порту 5353)
5
ответ дан 16 December 2019 в 22:45

Простой рабочий процесс (не нужно ничего устанавливать)

Лично мне нравится создавать для этого PAC-файл и заставлять мой браузер просто его использовать.

Шаг 1: создать файл, например: *. proxy.pac * где-то (я использую свою папку $ home )

Шаг 2: вставьте этот код (пример с портом 8000) :

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*localhost")) {
    return "PROXY localhost:8000";
  }
  return "DIRECT";
}

Шаг 3 : Сделайте так, чтобы ваш браузер использовал этот файл PAC.

Youtube Video для PAC и Firefox

Шаг 4 : Теперь вы можете протестировать свое приложение, открыв: http: //mysubdomain.localhost/

Шаг 5: Наслаждайтесь :)

11
ответ дан 16 December 2019 в 22:45

dnsmasq работал у меня, за исключением того, что мне пришлось сделать некоторые дополнительные шаги.

Вот полная процедура:

  1. Добавьте /etc/resolv.conf с следующая строка

     nameserver 127.0.0.1
    
  2. Добавьте следующие строки в /etc/dnsmasq.conf

     listen-address = 127.0.0.1
    адрес = / localhost.localdomain / 127.0.0.1
    адрес = / локальный / 127.0.0.1
    
  3. Перезапустить dnsmasq

2
ответ дан 16 December 2019 в 22:45

Если вы хотите использовать dnsmasq с NetworkManager , вы можете (или даже должны?) Запустить dnsmasq из NetworkManager , добавив

dns=dnsmasq

в /etc/NetworkManager/NetworkManager.conf . Затем конфигурация dnsmasq переходит в /etc/NetworkManager/dnsmasq.conf или /etc/NetworkManager/dnsmasq.d/ соответственно

3
ответ дан 16 December 2019 в 22:45

Обычный задача для этой темы - сопоставить каталоги с поддоменами. Самый простой способ для этого - автоматически добавить записи на основе каталога в файл hosts:

#!/usr/bin/python

import os

hostsFile = open("/etc/hosts", "a+");

lines = hostsFile.readlines()

for fileName in os.listdir('/opt/subdomainDirs'):

    entryExists = False
    for line in lines:
        if fileName in line:
            entryExists = True  

    if not entryExists:
        hostsFile.write("127.0.0.1 " + fileName + ".localhost\n");
2
ответ дан 16 December 2019 в 22:45

Спасибо щунди за то, что я считаю окончательным ответом на этот вопрос, хотел бы я просто прокомментировать, но вот полная конфигурация для тех, кто пытается достичь первоначальной цели (все подстановочные знаки указывают на одну и ту же кодовую базу -- ничего не устанавливать, среда разработки, т.е. XAMPP)

hosts file (добавить запись)

file (добавить запись)

file: файл /etc/hosts (non-windows)

127.0.0.1   example.local

httpd.conf configuration (enable vhosts)

file: /XAMPP/etc/httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

httpd-vhosts.conf configuration

file: XAMPP/etc/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin admin@example.local
    DocumentRoot "/path_to_XAMPP/htdocs"
    ServerName example.local
    ServerAlias *.example.local
#    SetEnv APP_ENVIRONMENT development
#    ErrorLog "logs/example.local-error_log"
#    CustomLog "logs/example.local-access_log" common
</VirtualHost>

restart apache

create pac file:

save as whatever whatever. pac где угодно, а затем загрузите файл в сети браузера>proxy>auto_configuration settings (перезагрузите, если вы это измените)

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}
2
ответ дан 16 December 2019 в 22:45

Вот как копировать из этого блога на Mac:

https://hedichaibi.com/how-to-setup-wildcard-dev-domains-with-dnsmasq- on-a-mac/

~ brew install dnsmasq

~ vim /usr/local/etc/dnsmasq.conf

# This file will be added to the configuration
conf-file=/Users/your_user_name/.dnsmasq/dnsmasq.conf

~ vim /Users/your_user_name/.dnsmasq/dnsmasq.conf

# example.localhost will be resolved as 127.0.0.1, including subdomains
address=/example.localhost/127.0.0.1
listen-address=127.0.0.1

~ sudo brew services stop dnsmasq

~ sudo brew services start dnsmasq

Нам нужно указать macOS использовать 127.0.0.1 в качестве первого преобразователя DNS.

enter image description here

1
ответ дан 26 July 2020 в 17:59

Теги

Похожие вопросы