web-dev-qa-db-fra.com

Comment exécuter Dnscrypt-proxy dans Vivid?

J'ai mis à jour Ubuntu Vivid l'autre jour et j'ai maintenant des problèmes. Je ne parviens pas à démarrer dnscrypt-proxy (entre autres programmes). Je suppose que cela a à voir avec le commutateur systemd. Voici ce qui se passe lorsque j'essaie de démarrer 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.

Il n'y a rien de mal avec mon script ou l'installation init, j'ai essayé de réinstaller puis de redémarrer ... no go.

Je suis sûr qu'il y a une réponse simple à cette question que je néglige. Si quelqu'un pouvait m'aider à comprendre les principales différences entre systemd et ce que je dois faire pour que les services démarrent, je l'apprécierais vraiment.

2
Chev_603

D'accord, j'ai finalement compris comment faire en sorte que cela fonctionne. J'ai purgé mon installation actuelle et enlevé le ppa, car, comme indiqué dans le document, l'emballage est cassé. Puis j'ai récupéré ce script d'installation automatique depuis github. J'ai compilé le paquet, cependant le script configure a un bogue dans lequel il ne détecte pas correctement si systemd est présent (même si vous utilisez l'indicateur --with-systemd). Pour résoudre ce problème, j'ai ouvert le script configure et défini la variable HAVE_SYSTEMD sur TRUE manuellement. Ensuite, je relance configure, puis make et enfin Sudo make install.

Ensuite, j'ai créé un répertoire, /etc/systemd/system/dnscrypt-proxy.service, et placé ces deux scripts dans ce répertoire:

Mise à jour: Cette solution a fonctionné jusqu'au redémarrage, mais le service n'a pas démarré. J'ai fini par utiliser ce script qui fonctionne maintenant parfaitement. Simclausen est mon héros pour avoir écrit cela. Merci à zenester de m'avoir dit la syntaxe correcte:

/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

Apparemment, ce n'est pas nécessaire:

Et aussi /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

Enfin, j'ai lancé/usr/local/sbin/dnscrypt-proxy start -R dnscrypt.eu-nl --local-address 127.0.0.2:53

Le programme a démarré avec succès. Pour confirmer cela, j'ai lancé cette commande:

Dig @127.0.0.2 debug.opendns.com txt

Et tout va bien!

; <<>> 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 pour l'enregistrer correctement en tant que service:

Sudo systemctl enable dnscrypt-proxy.service

Et que l'appeler avec Sudo service dnscrypt-proxy start J'espère que cela aidera quelqu'un.

1
Chev_603

Tout d'abord, permettez-moi de remercier tous ceux qui ont commenté ci-dessus.

UPDATED - C’est ce qui a fonctionné sous Ubuntu Mate 15.10.

Téléchargez le script de Simon Clausen en lien ci-dessous.

https://github.com/simonclausen/dnscrypt-autoinstall .

Ubuntu 15:10 interrompt le script de Simon Clausen pour qu'il ne fonctionne que jusqu'au redémarrage. En effet, Ubuntu 15.10 a un lien symbolique de /run/resolvconf/resolv.conf vers /etc/resolv.conf. Simon tente de verrouiller le fichier /etc/resolv.conf à l’aide de chattr + i /etc/resolv.conf qui échoue. Pour résoudre ce problème, procédez comme suit avant d'exécuter son script.

Sudo rm /etc/resolv.conf

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

Remarque: Les nouvelles versions de dnscrypt téléchargées par le script Simons tiennent compte de systemd sans modification.

Une fois le script exécuté et testé, j'ai procédé comme suit.

J'ai utilisé le fichier systemd ci-dessus, mais il fallait après tout ajouter le résolveur à la dernière ligne.

[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

créez un fichier texte à partir du texte ci-dessus et nommez-le

dnscrypt-proxy.service

puis mettez votre nouveau fichier dnscrypt-proxy.service dans

/ etc/systemd/system /

Nous n'écrasons pas les définitions de service par défaut/lib/systemd ou nous aurons des problèmes lors de la mise à jour du paquet. Systemd vérifie/etc/systemd/system d'abord avant/lib afin que vous puissiez mettre en sécurité vos définitions de service personnalisées dans/etc/systemd.

Une fois terminé, le chemin complet est

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

même chose - utilisez/etc /

Créez ensuite le fichier dnscrypt-proxy.socket à partir de l'exemple ci-dessous.

[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

il va aussi dans

/ etc/systemd/system /

Le chemin complet est

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

Activer les scripts (qui crée des liens symboliques dans les dossiers appropriés)

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

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

arrêtez le service pour que systemd puisse le démarrer correctement.

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

vous devez prendre tous les paramètres que vous avez dans /init.d/dnscrypt et les déplacer vers /etc/systemd/system/dnscrypt-proxy.service - sinon, systemd prend les scripts trouvés dans etc/init.d et crée un service temporaire définition que vous pouvez trouver dans /run/systemd/generator/XYZ.service. Si vous avez un service dans/etc/avec le même nom qu'un script dans init.d, le script est ignoré en faveur du service def'n

vous ne devriez voir aucune erreur lorsque vous démarrez le service avec.

Sudo systemctl start dnscrypt-proxy.service

Sudo service dnscrypt-proxy start

Cette méthode survit à un redémarrage pour moi sur Ubuntu 15.10.

Je ne suis en aucun cas un utilisateur avancé de Linux. Je viens de commencer. Merci à Chev_603 et à tous ceux qu'il a crédités, pas à moi. J'espère que vous trouverez cette aide complète. Tout commentaire sur l'amélioration des scripts serait apprécié. Ce serait bien d'avoir un serveur DNS secondaire. Quelqu'un sait comment?

2
user469212

Comment avez-vous installé dnscrypt-proxy ? Il n'y a pas de tel paquet en vif.

Votre paquet est cassé car il aurait dû inclure un fichier systemd . Service pour l'exécuter.

Essayez ce fichier et nommez-le /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

Et celui-ci /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
0
solsTiCe

Je suis celui qui possède le PPA Anton + pour dnscrypt-proxy. Pendant mes vacances, j'ai appris le problème des systèmes Ubuntu en n'utilisant que systemd par rapport à upstart (ou les deux) des versions précédentes.

Je viens de réussir à construire dnscrypt-proxy pour Vivid 15.04 aujourd'hui. Il utilise systemd.

Cependant, Vivid 15.04 n'est pas installé sur mes systèmes. J'utilise toujours Trusty 14.04 pour l'instant.

Pouvez-vous tester cette nouvelle version sur votre système? C'est toujours la version 1.5.0. Si les tests réussissent, je fournirai la nouvelle version 1.6.0.

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

La nouvelle version de test est la suivante: dnscrypt-proxy 1.5.0-1pmo1.8 ~ vivid

Il devrait prévoir les 2 DNS de dnscrypt.eu

Contactez-moi via Launchpad.

Merci.

0
Antonio