AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 78365
Accepted
Nate Murray
Nate Murray
Asked: 2009-10-27 07:43:42 +0800 CST2009-10-27 07:43:42 +0800 CST 2009-10-27 07:43:42 +0800 CST

如何在不重新启动的情况下重新加载默认 Mac OSX 路由表

  • 772

问候,

我正在使用vpncVPN客户端。我也在做一些棘手的事情,route以确保我仍然可以访问我的本地网络等(这里的细节不是很重要)。

有时我得到了路由表,所以我得到ping: sendto: Network is unreachable了原本应该解决的 url。

目前,如果我重新启动 Mac OS X,那么一切都会恢复正常。我想做的是将路由表重置为“默认值”(例如它在启动时设置的值),而无需重新启动整个系统。

我认为第 1 步是route flush(删除所有路线)。第 2 步需要重新加载所有默认路由。

关于如何做到这一点的任何想法?(例如,第 2 步是什么?)

编辑 另外,我注意到另一个症状traceroute在有问题的地址上也失败了。例如:

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address

networking
  • 4 4 个回答
  • 133626 Views

4 个回答

  • Voted
  1. Best Answer
    cavver
    2009-11-03T01:51:51+08:002009-11-03T01:51:51+08:00

    您需要刷新路线。多次使用route -n flush 。然后使用 route add 添加您的路线。

    • 77
  2. Sean
    2015-04-18T09:46:27+08:002015-04-18T09:46:27+08:00

    我在使用家庭 OpenVPN 服务器并使用 Mac 上的 Tunnelblick 应用程序连接到它时遇到了这个问题。

    我这边发生的事情是,在与 VPN 断开连接后,一条以我的家庭 IP 为目的地且网关不正确的路由正在剩余。删除这条路线解决了这个问题,只是

    $ sudo route -n delete the.good.dns.name
    

    示例:我在学校,重新启动计算机后,我连接到无线网络。我使用 Tunnelblick 连接到我的家庭 OpenVPN 服务器。

    $ netstat -nr
    Destination                   Gateway
    ....
    [home-ip]/32                  [school-default-gateway-1] ....
    ....
    

    我断开与 VPN 服务器的连接。我改变无线网络。这会更改我的默认网关。

    $ netstat -nr
    Destination                   Gateway
    ...
    [home-ip]/32                  [school-default-gateway-1] ...
    ...
    $ ping [home-ip]
    PING [home-ip]: 56 data bytes
    ping: sendto: Network is unreachable
    ping: sendto: Network is unreachable
    Request timeout for icmp_seq 0
    ...
    

    发生这种情况后,我在任何情况下都无法连接到我的家庭网络(VPN、ping 等)。如果我只是删除路线:

    $ sudo route -n delete [home-ip]
    delete net [home-ip]
    $ ping [home-ip]
    PING [home-ip]: 56 data bytes
    64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms
    

    它工作正常。

    OpenVPN 服务器/客户端的配置方式可能存在问题,这会导致此问题(我很想知道那是什么),但我安装了一个 Tunnelblick 断开连接后脚本,可以自动删除此路由。

    • 23
  3. Jordan Eunson
    2009-10-27T12:34:25+08:002009-10-27T12:34:25+08:00

    首先,您需要网络接口的路由。如果 VPN 已断开连接,则只需关闭您的网络接口,然后使用 ifconfig 将其重新启动。然后使用 route commnand 构建您的默认 gw。所以像:

    ifconfig en0 down

    ifconfig en0 up

    route add <ip address> default

    • 18
  4. jklp
    2015-10-06T15:29:11+08:002015-10-06T15:29:11+08:00

    我遇到了与@Sean 相同的问题(我也在运行 OS X),因为当我在家庭网络和工作网络之间切换时,默认路由没有被删除。

    为了完整起见,当我在家中连接到我的 VPN 并运行以下命令时,它会显示如下默认网关

    $ netstat -nr
    Destination                   Gateway
    ...
    [home-ip]/32                  [work-default-gateway-1]
    

    当我断开连接时,[home-ip] 网关仍然存在。当我连接到我的工作网络时,我根本无法连接到互联网,并遇到与 OP 相同的问题

    $ traceroute the.good.dns.name    
    $ traceroute: bind: Can't assign requested address
    

    然后我必须手动删除路线

    $ sudo route -n delete [home-ip]
    

    最初我将“route -n delete”放在post-disconnect.sh脚本中,但这有点乱,所以我找到了这个链接

    https://code.google.com/p/tunnelblick/issues/detail?id=177

    显然原因是由于在我的.ovpn文件中设置了以下内容

    user nobody
    group nogroup
    

    这意味着路由设置为root,但是当连接断开时,用户不再是root,因此无法删除路由。

    在我的文件中注释这两行.ovpn可以解决问题,而无需使用post-disconnect.sh.

    • 7

相关问题

  • 谁能指出我的 802.11n 范围扩展器?

  • 我怎样才能得到一个网站的IP地址?

  • 在一个 LAN 中使用两台 DHCP 服务器

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve