Como executar o Dnscrypt-proxy no Vivid?

2

Eu atualizei para o Ubuntu Vivid no outro dia, e agora estou com problemas. Não consigo obter dnscrypt-proxy para iniciar (entre outros programas). Eu estou supondo que tem a ver com o switch systemd. Isso é o que acontece quando tento iniciar o dnscrypt-proxy:

$ sudo service dnscrypt-proxy start 
[sudo] password for anon:
Failed to start dnscrypt-proxy.service: Unit
dnscrypt-proxy.service failed to load: No such file or directory.

Não há nada errado com o meu script de inicialização ou instalação, tentei reinstalar e reinicializar ... não.

Tenho certeza de que há uma resposta simples para isso que estou negligenciando. Se alguém puder me ajudar a entender as principais diferenças com o systemd e o que preciso fazer para iniciar os serviços, realmente agradeço.

    
por Chev_603 11.05.2015 / 03:24

4 respostas

1

Ok, finalmente descobri que isso funcionaria. Limpei minha instalação atual e removi o ppa, porque, como mencionou a soluçao, o pacote está quebrado. Então eu peguei este script de auto-instalação do github. Eu compilei o pacote, no entanto, o script configure tem um bug onde ele não detecta corretamente se o systemd está presente (mesmo se você usar o sinalizador --with-systemd). Para corrigir isso, abri o script configure e configurei a variável HAVE_SYSTEMD to TRUE manualmente. Do que eu reran configurar, do que fazer e, finalmente, sudo make install.

Em seguida, criei um diretório, /etc/systemd/system/dnscrypt-proxy.service , e coloquei esses dois scripts nesse diretório:

Atualização: essa solução funcionou até que eu reiniciei, mas que o serviço não foi iniciado. Eu acabei usando este script que agora funciona perfeitamente. Simclausen é meu herói por escrever isso. Obrigado ao zenester por me informar a sintaxe correta:

/etc/systemd/system/dnscrypt-proxy.service/dnscrypt-proxy.service :

[Unit]
Description=DNSCrypt client proxy
Requires=dnscrypt-proxy.socket

[Install]
Also=dnscrypt-proxy.socket
WantedBy=multi-user.target

[Service]
Type=simple
NonBlocking=true
ExecStart=/usr/local/sbin/dnscrypt-proxy \

-R dnscrypt.eu-nl

Aparentemente isso não é necessário:

E também /etc/systemd/dnscrypt-proxy.service/dnscrypt-proxy.socket :

[Unit]
Description=dnscrypt-proxy listening socket
After=network.target

[Socket]
ListenStream=127.0.0.2:53
ListenDatagram=127.0.0.2:53

[Install]
WantedBy=sockets.target

Finalmente, eu corri / usr / local / sbin / dnscrypt-proxy iniciar -R dnscrypt.eu -ll  - endereço local 127.0.0.2:53

O programa foi iniciado com sucesso. Para confirmar isso, eu corri este comando:

dig @127.0.0.2 debug.opendns.com txt

E tudo parece bom!

; <<>> DiG 9.9.5-9-Ubuntu <<>> @127.0.0.2 debug.opendns.com txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45692
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;debug.opendns.com.     IN  TXT
;; ANSWER SECTION:
debug.opendns.com.  0   IN  TXT "server 3.otp"
debug.opendns.com.  0   IN  TXT "flags 20 0 70 5950800000000000000"
debug.opendns.com.  0   IN  TXT "originid 0"
debug.opendns.com.  0   IN  TXT "actype 0"
debug.opendns.com.  0   IN  TXT "source xxxxxxxxxx:35164"
debug.opendns.com.  0   IN  TXT "dnscrypt enabled (xxxxxxxxxxxxxx)"
;; Query time: 154 msec
;; SERVER: 127.0.0.2#53(127.0.0.2)
;; WHEN: Fri May 22 17:24:32 EDT 2015
;; MSG SIZE  rcvd: 248

Ou para registrá-lo corretamente como um serviço:

sudo systemctl enable dnscrypt-proxy.service

E então, chame-o com sudo service dnscrypt-proxy start Espero que isso ajude alguém.

    
por Chev_603 22.05.2015 / 23:38
2

Antes de mais nada, agradeço a todos os que comentaram acima.

ATUALIZADO - Isso é o que funcionou no Ubuntu Mate 15.10.

Faça o download do script de Simon Clausen abaixo.

link .

O Ubuntu 15:10 quebra o script do Simon Clausen para que ele funcione até que você reinicie. Isso ocorre porque o Ubuntu 15.10 tem um link simbólico de /run/resolvconf/resolv.conf para /etc/resolv.conf. O Simon tenta bloquear o /etc/resolv.conf usando o chattr + i /etc/resolv.conf que falha. Para corrigir isso, faça o seguinte antes de executar seu script.

sudo rm /etc/resolv.conf

sudo cp /run/resolvconfig/resolv.conf /etc/resolv.conf

Nota: As novas versões do dnscrypt baixadas pelo script Simons levam em conta o systemd sem modificação.

Depois que o script foi executado e testado, fiz o seguinte.

Eu usei o arquivo systemd acima, mas precisava que o resolvedor fosse adicionado à última linha depois de tudo.

[Unit]
Description=DNSCrypt client proxy
Requires=dnscrypt-proxy.socket

[Install]
Also=dnscrypt-proxy.socket
WantedBy=multi-user.target

[Service]
Type=simple
NonBlocking=true
ExecStart=/usr/local/sbin/dnscrypt-proxy -R dnscrypt.eu-nl

crie um arquivo de texto a partir do texto acima e nomeie-o

  

dnscrypt-proxy.service

depois coloque seu novo arquivo dnscrypt-proxy.service em

  

/ etc / systemd / system /

     

Não sobrescrevemos as definições de serviço padrão / lib / systemd ou teremos problemas quando o pacote for atualizado. O Systemd verifica o / etc / systemd / system primeiro antes de / lib, então você está seguro colocando suas definições de serviço customizadas em / etc / systemd.

Quando terminar, o caminho completo é

  

/etc/systemd/system/dnscrypt-proxy.service

     

mesma coisa - use / etc /

Em seguida, crie o arquivo dnscrypt-proxy.socket no exemplo abaixo.

[Unit]
Description=dnscrypt-proxy listening socket
After=network.target

[Socket]
ListenStream=127.0.0.2:53
ListenDatagram=127.0.0.2:53

[Install]
WantedBy=sockets.target

também entra em

  

/ etc / systemd / system /

O caminho completo é

  

/etc/systemd/system/dnscrypt-proxy.socket

Ativar os scripts (que cria links simbólicos nas pastas corretas)

sudo systemctl enable /etc/systemd/system/dnscrypt-proxy.socket

sudo systemctl enable /etc/systemd/system/dnscrypt-proxy.service

pare o serviço para que o systemd possa iniciá-lo corretamente.

sudo /etc/init.d/dnscrypt-proxy stop

você deve pegar todas as configurações que você tem em /init.d/dnscrypt e movê-las para /etc/systemd/system/dnscrypt-proxy.service - else systemd pega os scripts encontrados em etc / init.d e faz uma definição de serviço temporário que você pode encontrar em /run/systemd/generator/XYZ.service. Se você tem um serviço em / etc / com o mesmo nome de um script no init.d, o script é ignorado em favor do serviço def'n

você não deve ver nenhum erro ao iniciar o serviço.

sudo systemctl start dnscrypt-proxy.service

sudo service dnscrypt-proxy start

Este método sobrevive a um reboot para mim no Ubuntu 15.10.

Eu não sou um usuário avançado do Linux de nenhuma maneira. Eu apenas comecei. Graças a Chev_603 e todos aqueles que ele creditou, não eu. Espero que você encontre essa ajuda completa. Quaisquer comentários sobre a melhoria dos scripts serão apreciados.  Seria bom ter um servidor DNS secundário. Alguém sabe como?

    
por user469212 06.11.2015 / 07:58
0

Como você instalou o dnscrypt-proxy ? Não existe tal pacote em cores vivas.

Seu pacote está quebrado, pois ele deve ter incluído um arquivo systemd .service para executá-lo.

Experimente este arquivo e nomeie-o como /etc/systemd/system/multi-user.target.wants/dnscrypt-proxy.service

[Unit]
Description=DNSCrypt client proxy
Requires=dnscrypt-proxy.socket

[Install]
Also=dnscrypt-proxy.socket
WantedBy=multi-user.target

[Service]
Type=simple
NonBlocking=true
ExecStart=/usr/sbin/dnscrypt-proxy -R dnscrypt.eu-nl

E este /etc/systemd/system/sockets.target.wants/dnscrypt-proxy.socket

[Unit]
Description=dnscrypt-proxy listening socket
After=network.target

[Socket]
ListenStream=127.0.0.1:53
ListenDatagram=127.0.0.1:53

[Install]
WantedBy=sockets.target
    
por solsTiCe 11.05.2015 / 04:41
0

Eu sou o único que possui o PPA Anton + para o proxy dnscrypt. Aprendi durante minhas férias sobre o problema que afeta os sistemas Ubuntu usando apenas systemd vs. upstart (ou ambos) para versões anteriores.

Eu apenas consegui construir o dnscrypt-proxy para o Vivid 15.04 hoje. Está usando o systemd.

No entanto, não tenho o Vivid 15.04 instalado nos meus sistemas. Eu ainda uso o Trusty 14.04 por enquanto.

Você pode testar essa nova versão no seu sistema? Ainda é a versão 1.5.0. Se os testes forem bem sucedidos, fornecerei a versão mais recente 1.6.0.

https://launchpad.net/~anton+/+archive/ubuntu/dnscrypt

Nova compilação de teste é: dnscrypt-proxy 1.5.0-1pmo1.8 ~ vivid

Ele deve fornecer o DNS 2 de dnscrypt.eu

Entre em contato comigo através do Launchpad.

Obrigado.

    
por Antonio 05.08.2015 / 00:37