Réinitialisation de l'interface IPv4 de la ligne de commande OS X

10

Le client VPN Network Connect de Juniper semble laisser une interface réseau OS X dans un état inutilisable si elle ne se déconnecte pas correctement.

Modifier: "déconnecter gracieusement" se réfère à chaque fois que le VPN tombe pour des raisons autres que de cliquer sur le bouton "Déconnexion" sur le client logiciel. Cela se produit lorsque le wifi tombe en panne suffisamment longtemps pour provoquer la chute du VPN, ou peut-être que j'ai fermé l'écran du portable sans oublier de me déconnecter, etc.

Depuis le terminal, un simple ping vous obtient le résultat suivant:

ping: sendto: Cannot allocate memory

Le redémarrage résout le problème, mais cela n'est pas pratique.

L'utilisation d'ifconfig pour réinitialiser l'interface ne fonctionne pas:

ifconfig en0 down
ifconfig en0 up

Le vidage de la table de routage non plus:

route -n flush

J'ai également essayé de réinitialiser le cache DNS (complètement hors de propos, mais j'ai pensé que j'essaierais quand même). Cela n'a évidemment pas fonctionné.

launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Ce qui a finalement fonctionné de manière fiable a été de désactiver IPv4, puis de le réactiver en procédant comme suit:

  1. Ouvrir les préférences système
  2. Cliquez sur l'icône réseau
  3. Cliquez sur l'interface cassée.
  4. Cliquez sur le bouton Avancé.
  5. Sélectionnez TCP / IP
  6. Sélectionnez «Off» sous Configurer IPv4.
  7. Sélectionnez "OK"
  8. Sélectionnez "Appliquer".
  9. Répétez les étapes 4 à 8, mais remplacez 6 par la méthode de configuration IP souhaitée.

Donc, à ma question ... Existe-t-il un moyen d'obtenir la même chose que les étapes 1 à 9 ci-dessus à partir de la ligne de commande? Idéalement, j'aimerais pouvoir appeler un script bash pour effectuer la réinitialisation.

Remarque: Cela a été testé sur OS X Mountain Lion et OS X Yosemite. J'ai ignoré OS X Mavericks, d'où la raison pour laquelle j'ai omis cette balise spécifique. J'ai toutes les raisons pour lesquelles cela s'applique également aux non-conformistes, mais je ne peux pas le prouver.

Chuck Wolber
la source
"Le client VPN Network Connect de Juniper semble laisser une interface réseau OS X dans un état inutilisable si elle ne se déconnecte pas normalement." - Je ne suis pas certain de ce que serait une déconnexion honteuse pour votre cas, mais nous avons utilisé des appliances SA pendant des années avec des clients OSX et n'avons pas expérimenté ce que vous voyez. Avez-vous vérifié auprès de Juniper TAC à ce sujet?
TheCleaner
Chaque fois que la connexion réseau tombe suffisamment longtemps pour tuer le VPN que je reste dans cet état. Parfois, le wifi aura un hoquet, ou peut-être que j'ai fermé l'ordinateur portable avant de se déconnecter correctement, etc. Contacter Juniper TAC n'est tout simplement pas une option dans mon cas particulier.
Chuck Wolber
D'après mon expérience, lorsque je suis connecté via VPN via une connexion Wi-Fi et que la connexion Wi-Fi cesse de répondre (en raison de la politique de session, d'une défaillance du réseau, etc.), le client Juniper Network Connect commence à demander des mots de passe root pour "changer" des choses. Vous pouvez tuer le client et le redémarrer, et même désactiver et réactiver le Wi-Fi, mais le client ne se reconnectera jamais sans redémarrage. Pas sans la réponse de Sunil P ci-dessous.
Snapman

Réponses:

8

Ces commandes ont fonctionné pour moi.

Arrêt d'IPv4:

sudo networksetup -setv4off Wi-Fi

Le redéfinir sur DHCP:

sudo networksetup -setdhcp Wi-Fi
Sunil P
la source
3
Fonctionne très bien. Et pour une connexion filaire:s/Wi-Fi/Ethernet/
Chuck Wolber
Si vous effectuez cette opération à distance (par exemple TeamViewer), la première commande en elle-même interrompra vraisemblablement la connexion, donc exécutez les deux commandes sur la même ligne, séparées par un point-virgule.
mwfearnley
Dans mon cas, il y avait des noms différents, networksetup -listallnetworkservicesraconte tout.
Ed Randall
1

Peut-être que vous cherchez networksetup? Plus précisément, l'activation / désactivation qui est la dernière dans cette liste abrégée avec d'autres options qui peuvent être directement utiles. (Exécutez cette commande sans arguments pour voir l'intégralité de la longue liste d'options.)

 Usage: networksetup -listnetworkserviceorder
      Display services with corresponding port and device in order they are tried for connecting
      to a network. An asterisk (*) denotes that a service is disabled.

 Usage: networksetup -listallnetworkservices
      Display list of services. An asterisk (*) denotes that a network service is disabled.

 Usage: networksetup -getnetworkserviceenabled <networkservice>
      Display whether a service is on or off (enabled or disabled).

 Usage: networksetup -setnetworkserviceenabled <networkservice> <on off>
      Set <networkservice> to either <on> or <off> (enabled or disabled).
Patrick Tudor
la source
1

Je vois ce problème chaque fois que je ferme le VPN Network Connect de manière ingrate . J'ai utilisé la réponse fournie ci-dessus et ai un alias dans mon/etc/profile

alias netbounce='sudo networksetup -setv4off Wi-Fi;sudo  networksetup -setdhcp Wi-Fi'

Maintenant, lorsque cela se produit, je tape netbounceau terminal et tout va bien avec le monde.

Jonathan.Wagner
la source
0

Consultez le tableau de routage et supprimez tous les itinéraires vers vos réseaux locaux / VPN, puis essayez de vous reconnecter à votre VPN.

sudo route delete 192.168.1.0

ou alors :)

Janne Pikkarainen
la source