OS X命令行IPv4接口重置


10

如果Juniper的Ne​​twork Connect VPN客户端不能正常断开连接,它似乎会使OS X网络接口处于无法使用的状态。

编辑:“正常断开连接”是指VPN出于任何原因(而不是单击软件客户端上的“注销”按钮)而断开的任何时间。当wifi掉线时间过长导致VPN掉线,或者我关闭笔记本电脑的屏幕而没有记得断开连接等情况时,就会发生这种情况。

在终端上,简单的ping操作可为您提供以下结果:

ping: sendto: Cannot allocate memory

重新启动可以解决问题,但这很不方便。

使用ifconfig重置接口不起作用:

ifconfig en0 down
ifconfig en0 up

刷新路由表也不会:

route -n flush

我也尝试过重置DNS缓存(完全不相关,但我想无论如何我都会尝试一下)。那显然没有用。

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

最终可靠地工作的是关闭IPv4,然后使用以下步骤将其重新打开:

  1. 打开系统偏好设置
  2. 点击网络图标
  3. 单击损坏的界面。
  4. 单击高级按钮。
  5. 选择TCP / IP
  6. 在“配置IPv4”下选择“关闭”。
  7. 选择“确定”
  8. 选择“应用”。
  9. 再次执行步骤4-8,但将6替换为所需的IP配置方法。

所以对于我的问题...有什么方法可以从命令行实现与上面的步骤1-9相同的方法?理想情况下,我希望能够调用bash脚本进行重置。

注意:这已在OS X Mountain Lion和OS X Yosemite上进行了测试。我跳过了OS X Mavericks,因此省略了该特定标签的原因。我有各种理由也适用于小牛,但我无法证明这一点。


“如果无法正常断开连接,Juniper的Ne​​twork Connect VPN客户端似乎会使OS X网络接口处于无法使用的状态。” -我不确定您会遇到什么尴尬的断开连接,但是我们已经在OSX客户端上运行SA设备多年了,并且没有经历过您所看到的。您是否已与Juniper TAC核对过?
TheCleaner 2014年

每当网络连接中断足够长的时间以致使VPN消失时,我都会处于这种状态。有时wifi会打h,或者也许我在正确断开连接之前先关闭了笔记本电脑,依此类推。在我的特定情况下,联系Juniper TAC根本不是一种选择。
2014年

我的经验是,当我通过Wi-Fi连接通过VPN连接并且Wi-Fi连接停止响应(由于会话策略,网络故障等)时,Juniper Network Connect客户端开始要求输入root密码以“更改”的东西。您可以杀死客户端并重新启动它,甚至可以打开和关闭Wi-Fi,但是客户端必须重新启动才能重新连接。并非没有Sunil P的回答。
Snapman

Answers:


8

这些命令对我有用。

关闭IPv4:

sudo networksetup -setv4off Wi-Fi

将其重新设置为DHCP:

sudo networksetup -setdhcp Wi-Fi

3
效果很好。对于有线连接:s/Wi-Fi/Ethernet/
Chuck Wolber 2014年

如果是远程执行此操作(例如TeamViewer),则第一个命令可能会中断连接,因此请在同一行上运行两个命令,并以分号分隔。
mwfearnley

就我而言,networksetup -listallnetworkservices所有人都有不同的名字。
艾德·兰德尔

1

也许您在寻找networksetup?特别是此缩写列表中最后一个的on / off,以及可能直接有用的其他选项。(在不带参数的情况下运行该命令,以查看整个庞大的选项列表。)

 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).

1

每当我以任何忘恩负义的方式退出Network Connect VPN时,都会看到此问题。我使用了上面提供的答案,并在我的别名中增加了一个别名/etc/profile

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

现在,当发生这种情况时,我netbounce在终端上打字,世界一切正常。


0

请参阅路由表,并删除到本地/ VPN网络的所有路由,然后尝试重新连接到VPN。

sudo route delete 192.168.1.0

或者 :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.