Adicione IPs estáticos (para desenvolvimento web) ao usar o DHCP no Linux

1

(Este post é dividido em duas partes: a parte superior é o que eu tentei, a metade inferior é o que eu estou realmente tentando fazer.)

Novo notebook, o Mint 16 (que usa o NetworkManager), e estou tentando usar o wifi + DHCP para se conectar à Internet. Isso funciona bem. Mas eu também faço desenvolvimento web, executo o Apache, etc. e quero ter vários hosts virtuais. Eu pensei que era apenas uma questão de adicionar alguns IPs estáticos, mas algo muito estranho está acontecendo.

Digamos que o roteador wifi me forneça o 10.1.2.3, e eu posso ver isso em wlan0 usando ifconfig ou ip address show . Também vejo eth0 sem nenhum endereço IP e lo com 127.0.0.1. Tudo está bem neste momento. Mas então eu faço:

ip address add 10.1.2.61/8 scope global dev eth0 label eth0:61

(Eu já configurei um host virtual Apache neste endereço.) Ir para http://10.1.2.61/ parece estar funcionando. Ping funciona. Mas o que definitivamente quebrou é a internet. Por exemplo. quando eu google algo, há agora um longo tempo antes que ele responda. Ou não responde de todo. (Desculpe, eu não diminuí completamente quando é um ou outro.)

Eu também tentei com:

ip address add 10.1.2.61/8 scope global dev lo label lo:61

Novamente, isso funciona (o ping funciona) e novamente ele quebra a Internet.

Eu confirmei que /etc/resolv.conf não está sendo tocado. A saída de route -n permanece inalterada quando uso dev lo e, quando uso dev eth0 , vejo uma entrada eth0 lá, mas a entrada wlan0 ainda está lá bem.

Quando eu removo o endereço IP adicionado ( ip address del 10.1.2.61 dev eth0 ), a internet começa a funcionar novamente.

Eu não estou preso a essa abordagem. Passei muito tempo lendo os documentos do NetworkManager, mas isso não pareceu cobrir esse cenário. Que parecia estranho.

O objetivo real

  • Ser capaz de ter vários hosts virtuais Apache neste notebook, cada um dos quais eu posso acessar com um URL (seja endereço IP, como http://10.1.2.61/ ou um nome http://mytestsite/ )
  • O URL deve ser constante, para que eu possa marcá-los como favoritos. Por exemplo. http://mytestsite/some/site/part.html )
  • Ele ainda funciona tanto na minha LAN local (onde eu controle o roteador e o DHCP), quanto no exterior (quando não o faço).
  • Quando em minha LAN, eu adoraria que os sites de teste ficassem visíveis para outros dispositivos conectados ao mesmo roteador wifi. (Este é um requisito opcional: este é o único bit que eu não tenho certeza se é possível ... Eu suponho que se eu executei todos os VirtualHosts fora do endereço DHCP wlan0 então ele funciona, mas eu não vejo como configurar o Apache e / etc / hosts quando eu não sei qual endereço de DHCP eu irei obter com antecedência, e que isso pode mudar a qualquer momento conforme eu mudo de rede para rede.)
por Darren Cook 23.04.2014 / 09:51

2 respostas

1

Além do último requisito, você deve poder fazer tudo isso com endereços IP no intervalo do host local. Se você configurar seu sistema para ter vários IPs no intervalo 127.0.0.0/8 (usando interfaces de alias), poderá vincular seu Apache a esses IPs:

Em /etc/network/interfaces :

auto lo lo:1 lo:2
iface lo inet loopback

iface lo:1 inet loopback
ipaddress 127.0.0.11
netmask 255.0.0.0

iface lo:2 inet loopback
ipaddress 127.0.0.12
netmask 255.0.0.0

Reinicie sua pilha de rede e edite seu arquivo /etc/hosts e a configuração do Apache de acordo com os nomes dos seus sites.

Para o último requisito, você pode configurar um proxy reverso do Apache. O proxy pode escutar em todas as interfaces, então a interface DHCP seria incluída automaticamente. Em seguida, você pode encaminhar as URLs para as interfaces que atendem em 127.0.0.x.

    
por 23.04.2014 / 11:30
1

ainda mais simples para você localmente em seu laptop é que você pode simplesmente colocar vários nomes diferentes em /etc/hosts e ter o apache em todos os endereços IP.

O Apache tem três maneiras principais de determinar qual host virtual usar para servir um site.

  • endereço IP
  • número da porta
  • hostname que o cliente usa para acessar o site

Para tornar o seu último requisito quase prático é fazer com que seus sites escutem seus próprios números de porta para que outras pessoas em sua rede de trabalho digam que você recebe o endereço IP 10.2.1.54, eles podem acessar coisas como

http://10.2.1.54    default site
http://10.2.1.54:81 site 1
http://10.2.1.54:82 site 2
http://10.2.1.54:83 site 3
http://10.2.1.54:84 site 4
etc

Eles não poderão marcar esses sites, mas você pode adicionar marcadores

http://127.0.0.1 default site
http://127.0.0.1:81 site 1
http://127.0.0.1:82 site 2
http://127.0.0.1:83 site 3
http://127.0.0.1:84 site 4

e se você tiver nomes extras em seu arquivo host para 127.0.0.1, então poderá usar nomes para quando acessar os sites em seu laptop e se colocar essas entradas em seu DNS em casa, outras pessoas em sua rede local pode usar os nomes também. Você provavelmente também deve usar uma reserva DHCP para o seu laptop em casa para que isso funcione bem.

Consulte o link do site para obter alguns exemplos sobre como escrever isso em sua configuração do apache. Observe o uso do * em vários locais

    
por 23.04.2014 / 12:16