[Resolvido] Alterar DNS de conexão discada - Sempre retorna ao padrão

Iniciado por Kairion, 23 de Fevereiro de 2009, 01:30

tópico anterior - próximo tópico

Kairion

Olá a todos, tentei ser o mais explicito possível no título.
Estou a alguns dias tentando alterar o DNS padrão para o Open DNS, já tentei alterar o arquivo /etc/resolv.conf, porém nada, já tentei alterar no Gnome PPP e nada, já tentei editar o próprio .wvdial.conf e nada, e por fim descobri que o Gnome PPP usa o seguinte arquivo resolv.conf:
/etc/ppp/resolv.conf

Alterei ele, porém assim quando conecta, o Gnome PPP ou outra coisa qualquer altera este arquivo colocando o servidor DNS padrão, que é muito lerdo.
Gostaria de saber como manter permanentemente esta alteração no arquivo.

Abraços  ;)

Editado:
Apesar de não usar mais internet discada, o post do 0tacon realmente ajuda, exatamente como eu precisava, valeu.

Kamei Hyoga

Eu descobri uma forma "semi-automática" para isso.


Abra as configurações de rede ( Administração>Rede)

Na aba DNS, após desbloquear a janela, adicione o dns que você quer e depois apague os outros dois que já estávam lá.

Antes de sair, clique no ícone do disquete e salve esta configuração.

Pronto, seu dns será o do Opendns. Agora quando você conectar, bastar entrar novamente, desbloquear e carregar a configuração salva.

Kairion

Funciona que é uma beleza, mas eu necessito de uma maneira mais automática para que meus familiares também possam usar o OpenDNS (além de que, assim eu poderei bloquear certos sites, e eles terão todas as vantagens do OpenDNS).
Eu acho que descobri uma outra forma, ao configurar no Configurações de rede (Sistema > Administração > Rede), ele conecta (estou conectado por ele, apesar da dificuldade) e fica com o DNS que eu defini seguindo sua dica, mas, eu queria uma forma simples de me conectar com o "configurações de rede", algum script, algo parecido com gnome ppp, até um applet serve.
E, procurando por applet, encontrei o applet "Monitor de modem", porém as opções "ativar" e "desativar" dele não podem ser usadas, e selecionando a opção "propriedades" dele, é aberto o "configurações de rede", mas com o botão "desbloquear" bloqueado, sem poder ser clicado.
Com sua dica creio estar perto de uma solução, preciso apenas de algo mais automático apenas.

Abraços ;)

raidicar

#3
Bom, nunca usei conexão por modem, então, não é muito a minha.
Mas pelo que eu li dos posts, ta uma baba automatizar.
É muito simples.
Vou dar como exemplo, minha dns do trampo que tem de estar assim:

raidicar@cpdmtr-01:/home$ sudo cat /etc/ppp/resolv.conf
# Generated by Raidicar
domain raidicarserver..com.br
search raidicarserver..com.br
nameserver 192.168.250.2


Se minha dns ficasse mudando e eu precisasse bolar um script, faria assim:

Abriria o editor de texto e digitaria esse codigo

#!/bin/bash
# Definindo novo resolv.conf
# Primeira linha limpa o resolv.conv e insere #Generated by Raidicar
# Demais linhas vão adicionando pelo comando echo, ordenadamente, em linhas separadas, o conteudo que esta entre aspas.
# Codigo
echo "#Generated by Raidicar" > /etc/ppp/resolv.conf
echo "domain raidicarserver.com.br" >> /etc/ppp/resolv.conf
echo "search raidicarserver.com.br" >> /etc/ppp/resolv.conf
echo "nameserver 192.168.250.2" >> /etc/ppp/resolv.conf

Feito isso, salvaria o arquivo com o nome de mydnsmanual que ao executado, deixaria o resolv.conf assim:
raidicar@cpdmtr-01:/home$ sudo cat /etc/ppp/resolv.conf
# Generated by Raidicar
domain raidicarserver..com.br
search raidicarserver..com.br
nameserver 192.168.250.2

Do jeito que eu quero.

Para automatizar a execução:
copiaria o arquivo para a pasta /usr/bin/
sudo cp /home/raidicar/mydnsmanual /usr/bin/

Transformaria o mydnsmanual em executavel.
sudo chmod +x /usr/bin/mydnsmanual

Criando agora o atalho no desktop.
Clicaria com o botão direito na area de trabalho e selecionaria "criar lançador"
Em tipo, poderia selecionar tanto aplicativo como alicativo de terminal.
Em nome, deixaria "DEFINE DNS"
Em comando deixaria o comando "gksu mydnsmanual"
Clicaria em OK e pronto, eis o atalho no desktop que acerta o resolv.conf com um duplo clique.

Sempre que quiser mudar a dns, daria um duplo clique, digitaria a senha e pronto. DNS Alterada do jeito que eu defini no script.

Agora, se quisesse automatizar 100%, criaria um segundo script.
no segundo script eu armazenaria em uma variavel "x" o conteudo do arquivo resolv.conf.
depois, armazenaria o conteudo do primeiro script mydnsmanual em "y"
Compararia "x" com "y"
Se fosse igual, ótimo, sairia do script. Mas se fosse diferente, executaria o comando mydnsmanual que definiria a DNS.
Colocaria na cron para executar de minuto em minuto.
Ou seja, se minha dns mudasse, no minuto seguinte estaria corrigida do jeito que eu quero sem que eu faça nada.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

Kamei Hyoga

O modo do raidicar economiza nos cliques. Recomendo bastante.

asghan

Esse lance do DNS é um bug do Ubuntu, pq no Mandriva e no OpenSuse é só mudar uma vez e pronto, tbm tenho essa dificuldade, ai deixei como está mesmo e minha conexão é ADSL
   Ubuntu 12.04 - Unity 64bits

Kairion

Eu descobri que esse bug acontece somente com o Gnome PPP, com o "Configurações de rede", ele permanece com o DNS que eu deixo, por isso creio que o método mais pratico seria me conectar com o Configurações de rede, mas a única forma que encontrei foi um applet, que não funciona (muito provavelmente por ser adicionado por um usuário comum, e não pelo root).

O modo do raidicar realmente é simples, mas para se criar os scripts seria complicado para mim, que não entendo um "a" do que foi feito.

Alguém conhece algum programa para me conectar com o "configurações de rede" ou algum tutorial para que eu consiga criar um script desse tipo que o raidicar disse?

Obrigado por todas as respostas até agora, me ajudaram bastante.
Abraços ;)

Kamei Hyoga

Quando eu usava modem discado, o conexões de rede conectava durante o boot. Ele parou de fazer isso?

raidicar

#8
Citação de: Kairion online 24 de Fevereiro de 2009, 15:19
O modo do raidicar realmente é simples, mas para se criar os scripts seria complicado para mim, que não entendo um "a" do que foi feito.
Alguém conhece algum programa para me conectar com o "configurações de rede" ou algum tutorial para que eu consiga criar um script desse tipo que o raidicar disse?
Mas eu montei o script, eu não dei um exemplo, eu montei o script aqui.

Vamos la,
para quem utiliza conexão rápida ou outras conexões, o arquivo a mudar é o /etc/resolv.conf.
Imaginando que seu arquivo /etc/ppp/resolv.conf deveria ser assim:
nameserver 200.204.0.10
nameserver 200.204.0.138

Basta copiar isso para o gedit
#!/bin/bash
echo "#Generated by Raidicar" > /etc/ppp/resolv.conf
echo "domain raidicarserver.com.br" >> /etc/ppp/resolv.conf
echo "search raidicarserver.com.br" >> /etc/ppp/resolv.conf
echo "nameserver 192.168.250.2" >> /etc/ppp/resolv.conf

e mudar, deixando-o assim da forma que necessita, o que seria assim:
#!/bin/bash
echo "#Generated by Kairion" > /etc/ppp/resolv.conf
echo "nameserver 200.204.0.10" >> /etc/ppp/resolv.conf
echo "nameserver 200.204.0.138" >> /etc/ppp/resolv.conf

salve o arquivo na sua pasta com qualquer nome, pode ser kairiondns.

abra o terminal e de o comando:
sudo chmod +x /home/kairion/kairiondns
Isso define o arquivo kairiondns como um arquivo executavel. é como se, no windows, voce "criasse" um arquivo com extensão .exe.

agora o comando:
sudo cp /home/kairion/kairiondns /usr/bin/
Agora voce copiou o arquivo para a pasta /usr/bin que é a pasta onde os arquivos executaveis estão, isso significa que quando digitar kariondns, onde quer que esteja em um terminal ou se executar kairiondns no modo grafico, o arquivo kairiondns que esta dentro do /usr/bin sera executado.

você pode executa-lo de duas formas:
abrindo o terminal e digitando:
sudo kairiondns

Ou pode criar icone de atalho para executar dando um duplo clique:
Clique com o botão direito na area de trabalho e selecione "criar lançador"
Em tipo, selecione uma das opçãoes, pode ser qualquer uma, aplicativo ou aplicativo de terminal.
Em nome, digite o nome do atalho, pode ser o nome que quiser, ex: "Karionscript"
Em comando digite o comando "gksu Kariondnsl"
Clicque em OK e o icone aparecerá na area de trabalho.

Se em tipo, voce selecionou aplicativo, nada aparecerá quando executar o arquivo.
Se em tipo, voce selecionou aplicativo de terminal, aparecera a tela do terminal, que fechara em seguida.
Seja como for, ao der um duplo clique, o script kairiondns sera executado, deixando o arquivo /etc/ppp/resolv.conf assim:
#Generated by Kairion
nameserver 200.204.0.10
nameserver 200.204.0.138


não sei detalhar mais, então, faça esse teste e você vai entender.
crie em sua pasta um arquivo em branco de nome teste.txt
de o comando no terminal:
echo "escrevendo na linha 1 de teste" > /home/kairion/teste.txt
abra o arquivo teste.txt e veja que dentro dele esta escrito: escrevendo na linha 1 de teste
de os comandos no terminal:
echo "escrevendo mais em teste" >> /home/kairion/teste.txt
echo "escrevendo outra coisa" >> /home/kairion/teste.txt
echo "escrevendo mais um pouco" >> /home/kairion/teste.txt

abra o arquivo teste.txt e veja que dentro dele esta escrito:
escrevendo na linha 1 de teste
escrevendo mais em teste
escrevendo outra coisa
escrevendo mais um pouco


Agora, de o comando no terminal:
echo "Apagando" > /home/kairion/teste.txt
abra o arquivo teste.txt e veja tudo dentro dele foi apagado e que esta escrito apenas "apagando"
Isso ocorreu por que você usou apenas um simbolo ">" no comando.
Se tivesse usado dois simbolos ">>", o conteudo de teste.txt não seria apagado, tudo estaria la e na ultima linha, seria adicionada a palavra "Apagando".

Por isso
echo "#Generated by Kairion" >/etc/ppp/resolv.conf = limpa o conteudo do arquivo resolv.conf e acrecenta nele o conteudo que esta entre aspas.
echo "nameserver 200.204.0.10" >>/etc/ppp/resolv.conf = acrescenta no arquivo resolv.conf o conteudo que esta entre aspas.
echo "nameserver 200.204.0.138" >>/etc/ppp/resolv.conf = acrescenta no arquivo resolv.conf o conteudo que esta entre aspas.

melhor que isso não da, se não conseguir, post o conteudo do seu arquivo resolv.conf e eu monto o script pra você.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

Kairion

Falha minha em não perceber que era só isso  :o
Só que, diferente do Gnome PPP, o configurações de rede conecta e deixa o DNS que eu configurei, então, para meus parentes seria mais fácil, já que eles não iriam querer abrir um script depois de conectar, então o OpenDNS só funcionaria para mim, e os sites que bloqueei via DNS não seria bloqueados.
De qualquer forma, vou usar este script, vai facilitar meu trabalho.

PS.: Os DNS's do meu provedor (os que eu acho lentos) são os mesmo que você indicou no exemplo.
PS 2.: No meu caso o arquivo é o /etc/resolv.conf, deixo este aviso aqui, pois dependendo da conexão eu creio que mude.

Obrigado por toda ajuda prestada.
Abraços  ;)

Zericardo

No meu caso eu uso o Internet Ilimitada da Telefonica aqui em São Paulo,entrei no site deles www.itelefonica.com.br ,fui no link contato direto e pedi o nº de telefone de conexão e eles me deram os 2 DNS,o primario e o secundario e estou navegando ha 35,2 Kbps testado no velocimetro do RJNET ,outra coisa uso uma string que aumenta bem a velocidade da conexão use esta string no PPP AT&FXS11=50 ,funciona mesmo ,to navegando legal no Ubuntu
"Não confunda vitórias com sucesso,nem derrotas com fracasso,pois muitas vezes na vida de um perdedor tem algumas vitórias e na vida de um vencedor a algumas derrotas.A diferença é que enquanto o perdedor se acomoda na vitória ,o vencedor cresce nas derrotas."

0tacon

#11
 Eu fixei o DNS na minha iG discada assim: (funciona usando o wvdial como discador)
Editei o arquivo /etc/ppp/peers/wvdial. Ele tem uma linha chamada usepeerdns, que é a que faz o wvdial editar o /etc/resolv.conf e colocar lá o DNS dado pelo provedor no momento da conexão. Para evitar isso, é só comentar a linha, ficando assim:
noauth
name wvdial
#usepeerdns

Por precaução, no /etc/wvdial.conf, coloquei a linha:
Auto DNS = off
Eu não sei se esta linha está influindo em algo, mas de qualquer forma está funcionando do jeito que eu quero assim, com o DNS fixo. Isso poupa bastante tempo na hora da conexão, pois o provedor iG às vezes nem consegue conexão por faltade DNS - mas é pura vagabundagem do provedor, pois provendo-se o DNS manualmente, navega que é uma beleza!
Então é isso, feito esse simples processo, é só colocar os DNS desejados no /etc/resolv.conf.


0tacon

#12
 E mais uma coisa: A melhor string que eu conheço, pelo menos para o ig é:
ATQ0 V1 E1 S0=0 S10=200 S36=7 S15=128 &C1 &D2 +FCLASS=0
Usando o wvdial, pelo terminal. É mais prático que o gnome-ppp.