惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
Vercel News
Vercel News
U
Unit 42
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
N
Netflix TechBlog - Medium
GbyAI
GbyAI
F
Fortinet All Blogs
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
M
MIT News - Artificial intelligence
D
Docker
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog

Pierce Freeman

A browser for agents | Pierce Freeman The grey market of podcast appearances The way I travel | Pierce Freeman Fixing slow AWS uploads | Pierce Freeman Local tools should still use vaults We solved scratch content first Starting a podcast in 2025 Being late but still being early Automating our home video imports Adding my parents to tailscale A deep dive on agent sandboxes Language servers for AI | Pierce Freeman My simple home podcast studio We need centralized infrastructure | Pierce Freeman Coercing agents to follow conventions using AST validation My unified theory of social selling My personal backup strategy | Pierce Freeman July updates to the homelab How the KV Cache works httpx is the right way to do web requests in Python Reputation is becoming everything | Pierce Freeman Building a (kind of) invisible mac app Updated knowledge in language models Making an ascii animation | Pierce Freeman How speculative decoding works | Pierce Freeman Under the hood of Claude Code Doing things because they're easy, not hard Speeding up sideeffects with JIT in mountaineer Firehot for hot reloading in Python Misadventures in Python hot reloading
Local network config on macOS
2025-02-28 · via Pierce Freeman

Screenshot of Local Network Privacy Settings

Since Sequoia (15.0), versions of macOS have shipped with a "Local Network" privacy setting that governs access to devices on your local network. It's a good idea but it could use a redesign.

When a third party app requests access to any device that shares your local network (ie. a private IP address provided by your router instead of a public IP address), it checks your Local Network permissions. If this app has never requested access to your local network before, it will pop up a dialogue asking you to approve it. So far so reasonable.

Allow XCode to find devices on the network

Because this alert pops up any time the networking APIs are accessed, it sometimes happens right on first launch or when you're not intuitively expecting it to. And in those cases, no, I don't want to allow blanket permission for some software to access my local network. That's a security feature that's working as intended.

From that point forward, you can't access any local devices from that app's command line or browser. And no matter how long ago you gave that initial deny, the network connection is still blacklisted.

In theory, applications can detect that they've been blocked and show a helpful error message. If TCP requests are being made through NWConnection, the connection will enter a waiting state when access is denied. localNetworkDenied indicates that the system has denied local network access.1 Bonjour has a similar callback.

In reality, most applications don't implement this handler or are using different networking APIs that don't have access to the same state. User-facing errors end up being incredibly cryptic about what's going on.

In third party Terminals like Warp or Ghostty2:

$ ssh [email protected]
ssh: connect to host 192.168.1.60 port 22: No route to host

Or in Chrome:

Screenshot of Chrome Error

These errors themselves aren't Apple's fault. Developers could implement a fallback that checks the Local Network permissions for blocks. But until they do, user experience is hurt for the worse by this new privacy setting.

Instead, I'd suggest Apple redesign these privacy settings to consider applications that don't enumerate this full universe of permission errors:

  • Pop up a Control Center notification when network access is blocked. These notifications are non-blocking and give the additional context of what's being blocked. They should also be infrequent: they can be capped at once per app launch.
  • Expand the NSPrivacy framework to let apps check their system permissions on bootup without having to make a proactive request to NWConnection.

Sometimes platforms can throw too much weight on the shoulders of developers. If all third party apps immediately adopted the new callbacks, this would be a non-issue. But for software that's older or just doesn't consider the changes, it's a worse experience for users. That's on the platform to fix, not just the ecosystem.

  1. Full details in the tech note. ↩

  2. The default Terminal is automatically whitelisted to allow local network access. ↩