OS X 命令行 IPv4 界面重置

Chu*_*ber 10 mac-osx osx-mountain-lion osx-yosemite

如果没有正常断开连接,瞻博网络的 Network Connect VPN 客户端似乎会使 OS X 网络接口处于不可用状态。

编辑:“正常断开连接”是指 VPN 因单击软件客户端上的“退出”按钮以外的其他原因而断开的任何时间。当 wifi 断开足够长的时间导致 VPN 断开时,就会发生这种情况,或者我可能在没有记住断开连接的情况下关闭了笔记本电脑屏幕等。

从终端,一个简单的 ping 会得到以下结果:

ping: sendto: Cannot allocate memory
Run Code Online (Sandbox Code Playgroud)

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

使用 ifconfig 重置界面不起作用:

ifconfig en0 down
ifconfig en0 up
Run Code Online (Sandbox Code Playgroud)

刷新路由表也不行:

route -n flush
Run Code Online (Sandbox Code Playgroud)

我还尝试重置 DNS 缓存(完全无关,但我想无论如何我都会尝试一下)。那显然行不通。

launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Run Code Online (Sandbox Code Playgroud)

最终可靠的是关闭 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,因此我省略了那个特定的标签。我有充分的理由这也适用于小牛队,但我无法证明这一点。

小智 9

这些命令对我有用。

关闭 IPv4:

sudo networksetup -setv4off Wi-Fi
Run Code Online (Sandbox Code Playgroud)

将其设置回 DHCP:

sudo networksetup -setdhcp Wi-Fi
Run Code Online (Sandbox Code Playgroud)

  • 效果很好。对于有线连接:`s/Wi-Fi/Ethernet/` (3认同)