OS X 命令行 IPv4 接口重置

OS X 命令行 IPv4 接口重置

如果没有正常断开连接,Juniper Network 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,因此我省略了该特定标签。我有充分的理由认为这也适用于 Mavericks,但我无法证明这一点。

答案1

这些命令对我有用。

关闭 IPv4:

sudo networksetup -setv4off Wi-Fi

将其设置回 DHCP:

sudo networksetup -setdhcp Wi-Fi

答案2

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

sudo route delete 192.168.1.0

或者 :)

答案3

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

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

答案4

我每次关闭 Network Connect VPN 时都会看到此问题忘恩负义方式。我使用了上面提供的答案,并在我的/etc/profile

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

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

相关内容