Pourquoi le terminal ne me laisse-t-il pas ssh sur mon serveur LAN lorsque Windows / Putty fonctionne correctement?

2

J'ai un serveur de développement sur mon réseau local avec une adresse IP statique. Mon routeur flashé DD-WRT affecte le domaine 'server.local' à l'adresse IP statique du serveur. Tout a bien fonctionné avec ma configuration. Je pourrais me connecter au serveur via ssh, ftp, http, ping ou même samba.

Je viens de faire une nouvelle installation de CentOS sur le serveur, et tout fonctionne correctement lorsque je me connecte depuis n'importe lequel de mes ordinateurs Windows. Cependant, mon Macbook ne se connecte plus. Je peux voir mes versions de développement de mes sites Web dans un navigateur, mais je ne peux pas entrer en ssh sur le serveur.

J'ai nettoyé ~/.ssh/known_hostspour m'assurer que les informations de l'ancien serveur ne gâchaient pas les choses. Comment les machines Windows et les navigateurs Mac peuvent-ils trouver le serveur, alors que Terminal ne le peut pas?

Edit # 1:

~: ssh root@server.local
ssh: Could not resolve hostname server.local: nodename nor servname provided, or not known
~: ssh root@192.168.1.200
root@192.168.1.200's password:

Edit # 2:

J'ai déjà essayé de vider le cache DNS par dscacheutil -flushcache. Je suis sous OS 10.6.

Ok, alors pourquoi Terminal est-il confus quant au nom de domaine alors que les navigateurs ne le sont pas?

Ajouter 192.168.1.200 server.localà /etc/hostscorrige le problème. Je me demande simplement pourquoi il n'est pas capable de compter sur le DNS du routeur.

Prédicateur
la source
pouvez-vous s'il vous plaît essayer de vider votre cache DNS avec cette commande dscacheutil -flushcache et de redémarrer votre navigateur. Faites-nous savoir si vous pouvez toujours accéder à server.local avec votre navigateur?
robzolkos
J'ai oublié de mentionner que je l'avais fait. Je mettrai à jour ma question avec cela et ma version OS X.
Prédicateur
Cela ressemble à un problème de DNS pour moi. essayez host server.local. Si vous ne pouvez pas le résoudre, ajoutez-le server.localà votre /etc/hosts.
Sebastian Roth le

Réponses:

2

Mac OSX 10.6 ne respecte pas les réponses DNS avec une durée de vie (TTL) égale à 0 (valeur définie par défaut pour les routeurs basés sur DD-WRT). Vous devrez accéder au routeur DD-WRT et à l'onglet Administration -> Services. Vous verrez une boîte appelée Options DNS supplémentaires. Ajoutez la valeur suivante à cette case:

local-ttl=5

Enregistrez et redémarrez votre routeur et votre Mac. Vous devriez pouvoir voir server.local dans le terminal (sans l'avoir dans votre fichier hosts).

robzolkos
la source
Cela n'a pas fonctionné non plus.
Prêcheur
0

Mac OS X réserve l'extension ".local" pour mDNS. Autant que je sache, il ne peut pas être désactivé. Vous devez soit activer mDNS sur votre serveur, choisir une extension différente pour votre réseau ou modifier votre /etc/hosts/fichier avec une entrée pour votre serveur.

Kyle Cronin
la source
Mais pourquoi le navigateur sur le Mac accédera-t-il à server.local mais pas au terminal? C'est le peu que je ne comprends pas.
robzolkos
@RobZolkos Que je ne sais pas.
Kyle Cronin