<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://zxdd.com/index.php?action=history&amp;feed=atom&amp;title=OpenSnitch</id>
	<title>OpenSnitch - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://zxdd.com/index.php?action=history&amp;feed=atom&amp;title=OpenSnitch"/>
	<link rel="alternate" type="text/html" href="https://zxdd.com/index.php?title=OpenSnitch&amp;action=history"/>
	<updated>2026-05-15T08:27:19Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://zxdd.com/index.php?title=OpenSnitch&amp;diff=1774&amp;oldid=prev</id>
		<title>Eric：​创建页面，内容为“OpenSnitch 是 Linux 上一款的交互式应用防火墙，灵感来自 macOS 上的 Little Snitch。它最特别的地方在于能监控并拦截应用程序发起的对外网络连接，  == 简介 == === 核心组件 ===  OpenSnitch 主要由两个核心部分组成，理解这两部分有助于后续的操作：  * &#039;&#039;&#039;守护进程 (opensnitchd)&#039;&#039;&#039;：这是运行在后台的核心服务，负责实际拦截网络连接并根据规则进行匹配。需要将…”</title>
		<link rel="alternate" type="text/html" href="https://zxdd.com/index.php?title=OpenSnitch&amp;diff=1774&amp;oldid=prev"/>
		<updated>2026-04-30T02:46:52Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“OpenSnitch 是 Linux 上一款的交互式应用防火墙，灵感来自 macOS 上的 Little Snitch。它最特别的地方在于能监控并拦截应用程序发起的对外网络连接，  == 简介 == === 核心组件 ===  OpenSnitch 主要由两个核心部分组成，理解这两部分有助于后续的操作：  * &amp;#039;&amp;#039;&amp;#039;守护进程 (opensnitchd)&amp;#039;&amp;#039;&amp;#039;：这是运行在后台的核心服务，负责实际拦截网络连接并根据规则进行匹配。需要将…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;OpenSnitch 是 Linux 上一款的交互式应用防火墙，灵感来自 macOS 上的 Little Snitch。它最特别的地方在于能监控并拦截应用程序发起的对外网络连接，&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
=== 核心组件 ===&lt;br /&gt;
&lt;br /&gt;
OpenSnitch 主要由两个核心部分组成，理解这两部分有助于后续的操作：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;守护进程 (opensnitchd)&amp;#039;&amp;#039;&amp;#039;：这是运行在后台的核心服务，负责实际拦截网络连接并根据规则进行匹配。需要将其设置为系统服务，以实现开机自启。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;用户界面 (opensnitch-ui)&amp;#039;&amp;#039;&amp;#039;：这是一个图形界面程序，用于显示网络请求弹窗、管理防火墙规则以及查看网络统计信息。它会在系统托盘区显示图标。&lt;br /&gt;
&lt;br /&gt;
当某个尚未配置规则的进程尝试建立网络连接时，守护进程会拦截该连接，并向用户弹出一个对话框询问如何处理（允许或拒绝）。用户做出的选择会被保存为一条新规则，此后同一进程再次尝试连接时，规则将自动生效。&lt;br /&gt;
&lt;br /&gt;
== 安装 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian / Ubuntu 及衍生版 ===&lt;br /&gt;
Ubuntu 23.04 及以上，直接使用apt安装。&lt;br /&gt;
 sudo apt install opensnitch&lt;br /&gt;
Ubuntu 22.04 及更低版本：从 GitHub Releases 下载 &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt; 软件包。访问 OpenSnitch 的 [https://github.com/evilsocket/opensnitch/releases GitHub Releases 页面]，下载最新版本。&lt;br /&gt;
&lt;br /&gt;
安装完成后，启动并启用守护进程服务：&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo systemctl enable --now opensnitch&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 其他发行版 ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fedora / RHEL 系&amp;#039;&amp;#039;&amp;#039;：在 [https://github.com/evilsocket/opensnitch/releases Releases 页面] 下载 &amp;lt;code&amp;gt;.rpm&amp;lt;/code&amp;gt; 软件包，并使用 &amp;lt;code&amp;gt;sudo dnf install&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;sudo rpm -ivh&amp;lt;/code&amp;gt; 命令进行安装。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Arch Linux&amp;#039;&amp;#039;&amp;#039;：可通过 AUR 安装，例如使用 &amp;lt;code&amp;gt;yay -S opensnitch&amp;lt;/code&amp;gt; 命令。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;NixOS&amp;#039;&amp;#039;&amp;#039;：在 &amp;lt;code&amp;gt;configuration.nix&amp;lt;/code&amp;gt; 配置文件中添加 &amp;lt;code&amp;gt;services.opensnitch.enable = true;&amp;lt;/code&amp;gt; 并重建系统。&lt;br /&gt;
&lt;br /&gt;
== 基本使用方法 ==&lt;br /&gt;
&lt;br /&gt;
=== 首次启动与初始设置 ===&lt;br /&gt;
&lt;br /&gt;
# 在应用菜单中找到并启动 “OpenSnitch UI”。程序窗口可能不会直接打开，但会在系统托盘区域出现一个图标。&lt;br /&gt;
# 右键点击系统托盘图标，选择 &amp;#039;&amp;#039;&amp;#039;“Open main window”&amp;#039;&amp;#039;&amp;#039;（打开主窗口）。&lt;br /&gt;
# 官方建议的策略是：在新系统上，先将默认动作设为“允许”，让 OpenSnitch 运行几天以学习正常的网络行为并记录规则。之后再切换至更严格的模式，手动审查并调整规则。&lt;br /&gt;
&lt;br /&gt;
=== 处理弹窗与创建规则 ===&lt;br /&gt;
&lt;br /&gt;
这是 OpenSnitch 最核心的交互方式。当某个尚未配置规则的应用发起网络连接时，会弹出如下的配置对话框：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;动作 (Action)&amp;#039;&amp;#039;&amp;#039;：选择 &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039;（允许）或 &amp;#039;&amp;#039;&amp;#039;Deny&amp;#039;&amp;#039;&amp;#039;（拒绝）。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;持续时间 (Duration)&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
 ** &amp;#039;&amp;#039;&amp;#039;Until restart&amp;#039;&amp;#039;&amp;#039;：仅对本次会话有效，重启后失效。&lt;br /&gt;
 ** &amp;#039;&amp;#039;&amp;#039;For a session&amp;#039;&amp;#039;&amp;#039;：在用户登出之前有效。&lt;br /&gt;
 ** &amp;#039;&amp;#039;&amp;#039;Always&amp;#039;&amp;#039;&amp;#039;：创建永久规则，这是最常用的选项。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;范围 (Scope)&amp;#039;&amp;#039;&amp;#039;：可以选择此规则仅应用于当前应用程序、该应用程序及其所有子进程，或是全局生效。&lt;br /&gt;
&lt;br /&gt;
=== 使用主窗口管理规则 ===&lt;br /&gt;
&lt;br /&gt;
主窗口是管理防火墙规则的控制中心。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Events（事件）&amp;#039;&amp;#039;&amp;#039;标签页：实时显示所有被拦截或允许的连接历史记录，可以清晰地查看哪个应用连接到了哪个 IP 地址和端口。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Applications（应用）&amp;#039;&amp;#039;&amp;#039;标签页：列出所有已配置规则的应用程序。在此可以双击某条规则进行修改，或点击左上角的 &amp;#039;&amp;#039;&amp;#039;“+”&amp;#039;&amp;#039;&amp;#039; 按钮手动添加新规则。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Hosts（主机）&amp;#039;&amp;#039;&amp;#039;标签页：按域名或 IP 地址聚合统计连接情况。&lt;br /&gt;
&lt;br /&gt;
==== 手动创建规则示例 ====&lt;br /&gt;
&lt;br /&gt;
假设需要永久阻止对 &amp;lt;code&amp;gt;www.example.org&amp;lt;/code&amp;gt; 的所有访问，可以按以下步骤操作：&lt;br /&gt;
&lt;br /&gt;
# 在主窗口点击 &amp;#039;&amp;#039;&amp;#039;“+”&amp;#039;&amp;#039;&amp;#039; 按钮。&lt;br /&gt;
# 为规则命名，例如 &amp;lt;code&amp;gt;Block Example&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 将 &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039; 设置为 &amp;lt;code&amp;gt;Deny&amp;lt;/code&amp;gt;，&amp;#039;&amp;#039;&amp;#039;Duration&amp;#039;&amp;#039;&amp;#039; 设置为 &amp;lt;code&amp;gt;Always&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 切换到 &amp;#039;&amp;#039;&amp;#039;Network&amp;#039;&amp;#039;&amp;#039; 标签页，在 &amp;#039;&amp;#039;&amp;#039;“To this host”&amp;#039;&amp;#039;&amp;#039; 字段中输入 &amp;lt;code&amp;gt;www.example.org&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 点击 &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039; 保存规则。&lt;br /&gt;
&lt;br /&gt;
== 高级配置与技巧 ==&lt;br /&gt;
&lt;br /&gt;
=== 配置文件位置 ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;守护进程规则存储路径&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;/etc/opensnitchd/rules/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;守护进程配置文件&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;/etc/opensnitchd/default-config.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;系统防火墙规则（用于绕过 OpenSnitch）&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;/etc/opensnitchd/system-fw.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
可以通过编辑上述 &amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt; 文件来批量导入或备份规则。例如，一条允许 &amp;lt;code&amp;gt;tor&amp;lt;/code&amp;gt; 进程的规则示例如下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;tor&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;tor&amp;quot;,&lt;br /&gt;
    &amp;quot;enabled&amp;quot;: true,&lt;br /&gt;
    &amp;quot;action&amp;quot;: &amp;quot;allow&amp;quot;,&lt;br /&gt;
    &amp;quot;duration&amp;quot;: &amp;quot;always&amp;quot;,&lt;br /&gt;
    &amp;quot;operator&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;simple&amp;quot;,&lt;br /&gt;
      &amp;quot;sensitive&amp;quot;: false,&lt;br /&gt;
      &amp;quot;operand&amp;quot;: &amp;quot;process.path&amp;quot;,&lt;br /&gt;
      &amp;quot;data&amp;quot;: &amp;quot;/nix/store/.../bin/tor&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 进程监控方式 ===&lt;br /&gt;
&lt;br /&gt;
OpenSnitch 支持三种监控进程发起连接的方式，可以在配置文件中进行调整：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;ebpf&amp;lt;/code&amp;gt;（推荐）&amp;#039;&amp;#039;&amp;#039;：性能最佳，功能最强，能够拦截由内核发起的连接。需要 Linux 内核版本 5.5 或更高。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;audit&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;：利用 Linux 审计子系统，性能较好。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;proc&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;：通过读取 &amp;lt;code&amp;gt;/proc&amp;lt;/code&amp;gt; 文件系统获取信息，作为备选方案。&lt;br /&gt;
&lt;br /&gt;
=== 避免干扰（VPN 或信任服务） ===&lt;br /&gt;
&lt;br /&gt;
如果希望某些流量完全不被 OpenSnitch 处理（例如 VPN 的守护进程），可以将其加入“系统防火墙规则”中。编辑 &amp;lt;code&amp;gt;/etc/opensnitchd/system-fw.json&amp;lt;/code&amp;gt; 文件，添加相应的 iptables 或 nftables 规则。这样做可以提升性能并避免潜在的配置冲突。&lt;br /&gt;
&lt;br /&gt;
== 故障排除 ==&lt;br /&gt;
&lt;br /&gt;
=== 没有弹窗，应用直接被阻止？ ===&lt;br /&gt;
&lt;br /&gt;
* 这可能是因为之前创建了静默规则但已忘记。请检查组件中的规则列表。&lt;br /&gt;
* 也可以尝试在图形界面的 &amp;#039;&amp;#039;&amp;#039;Preferences -&amp;gt; Nodes&amp;#039;&amp;#039;&amp;#039; 选项中，启用 &amp;#039;&amp;#039;&amp;#039;“Debug invalid connections”&amp;#039;&amp;#039;&amp;#039; 功能。这能让未匹配到规则的连接也弹出提示，便于调试。&lt;br /&gt;
&lt;br /&gt;
=== 如何调试启动问题？ ===&lt;br /&gt;
&lt;br /&gt;
# 先停止后台服务：&amp;lt;code&amp;gt;sudo systemctl stop opensnitch&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 在前台手动启动守护进程并开启调试输出，以便查看具体错误信息：&amp;lt;code&amp;gt;sudo /usr/bin/opensnitchd -debug&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 如果图形界面崩溃，可以在终端中直接输入 &amp;lt;code&amp;gt;opensnitch-ui&amp;lt;/code&amp;gt; 命令，并观察输出的错误信息。&lt;br /&gt;
&lt;br /&gt;
=== 图形界面显示异常（如出现黑块）？ ===&lt;br /&gt;
&lt;br /&gt;
如果在使用 Wayland 显示服务器或某些窗口管理器时遇到界面渲染问题，可以尝试在启动图形界面之前设置以下环境变量：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export QT_QPA_PLATFORM=xcb&lt;br /&gt;
opensnitch-ui&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eric</name></author>
	</entry>
</feed>