一个克制的、理性的关注互联网科技和人文的频道,也谈谈美食和电影,发现和分享一切有趣有价值的内容,啰哩啰嗦周刊主持人。
#今天学到了
Windows 上防火墙可以允许特定应用通过,这个应用运行的时候,就可以打开任意端口监听而不会受到防火墙限制,因为应用配置优先。
这个功能很实用。但Linux却没有这功能,不能指定应用,不过也可以变相实现。
Linux 的 iptables 可以用 -m owner 模块的 --uid-owner --gid-owner 参数匹配规则,可以新建一个用户,将特定进程以这个用户运行(可以考虑给可执行文件设置 SUID 或 SGID 位),然后通过 uid-owner 来匹配规则。
而Android又跟Linux不一样,Android并不直接暴露防火墙给用户层,但Android VPN 原生支持分应用代理,也可实现类似效果。
Android VPN 分应用代理的实现原理很简单,就是API支持按包名过滤,调用,VpnService.Builder.addAllowedApplication()即可。
Windows 上防火墙可以允许特定应用通过,这个应用运行的时候,就可以打开任意端口监听而不会受到防火墙限制,因为应用配置优先。
这个功能很实用。但Linux却没有这功能,不能指定应用,不过也可以变相实现。
Linux 的 iptables 可以用 -m owner 模块的 --uid-owner --gid-owner 参数匹配规则,可以新建一个用户,将特定进程以这个用户运行(可以考虑给可执行文件设置 SUID 或 SGID 位),然后通过 uid-owner 来匹配规则。
而Android又跟Linux不一样,Android并不直接暴露防火墙给用户层,但Android VPN 原生支持分应用代理,也可实现类似效果。
Android VPN 分应用代理的实现原理很简单,就是API支持按包名过滤,调用,VpnService.Builder.addAllowedApplication()即可。