今天在开发的过程中,突然遇到一个怪事,之前运行的好好的程序,突然间报无法连接redis服务器,一开始以为是网络问题,在OS的terminal里又是ping 又是telnet的,一切正常,可是程序就是连不上。
挠了半天头,又觉得是程序的问题,但是程序明明没有动过啊,于是试着在idea的terminal里面ping了一下,果然有问题,idea 报告"ping: sendto: No route to host" 路由不可达。可是明明操作系统的terminal是可以的啊,于是各种排查idea的设置,有搬来deepseek做救兵,然而折腾了大半天问题依旧。
继续google,找到一篇文章,提到macos系统有一个localnetwork 的安全和隐私控制,会阻止应用程序访问本地网络。考虑到VM也是依托于本地网络的,怀疑可能和这个有关。于是,按照 System Settings ->Privacy & Security -> Local Network打开了localnetwork 的界面,结果得到了如下的一张图:

于是,破案了啊,打开IDEA的权限,一切终于恢复了正常。
想了想,之前做过一次系统升级,估计就是那次系统升级,悄悄的把这个权限关上了。真是不明白,苹果为啥会有这种奇怪的操作。