如何在 Mac OS X 上使用 launchd 运行 Tor 和 Polipo(并自动重启)?

如何在 Mac OS X 上使用 launchd 运行 Tor 和 Polipo(并自动重启)?

我没有使用过 launchd,但想将 Tor 和 Polipo 设置为每 24 小时左右自动重启一次的服务。我该怎么做?

答案1

对于 tor,您可以使用此 launchd plist 使其在系统启动时启动。(无需用户登录,这对于服务器和运行桥接器或节点且需要全天候运行的人员来说是理想的选择。)

保存此文件/Library/LaunchDaemons/org.torproject.tor.plist(您需要 root 权限才能使用sudo。)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
        <key>Label</key>
        <string>org.torproject.tor</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/your/binary/of/tor</string>
                <string>-f</string>
                <string>/path/to/your/torrc</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    <key>OnDemand</key>
    <false/>
    <key>UserName</key>
    <string>userNameToRunTorUnder-UsuallyTorOrYourOwnUsershortname</string>
    <key>GroupName</key>
    <string>daemon</string>
</dict>
</plist>

将以下信息替换为您的系统的信息:

/path/to/your/binary/of/tor 这通常是/usr/local/bin/tor如果您从源代码安装了 tor,或者/Applications/Vidalia.app/Contents/MacOS/tor您想使用来自 Vidalia 的 tor 二进制文件。或者在which tor您的系统上查找它。

/path/to/your/torrc 如果你以独立用户身份运行 tor,则该目录应该位于.torrc该用户的主目录中。你需要指定绝对路径到此文件。例如,如果您的用户名为托尔并且位于/Users/tor那么该路径将是/Users/tor/.torrc

userNameToRunTorUnder-UsuallyTorOrYourOwnUsershortname 这是运行的用户名tor。如果你有一个单独的用户(可能名为托尔)则使用该用户名,否则您可以使用几乎任何其他用户名。如果这只是您自己使用的用户名,请将其设为您自己的用户简称。(也就是您的主目录的名称。)

确保launchd项的权限是安全的,符合launchd的要求。

sudo chown root:wheel /Library/LaunchDaemons/org.torproject.tor.plist
sudo chmod 755 /Library/LaunchDaemons/org.torproject.tor.plist

然后启动它 sudo launchctl load -w /Library/LaunchDaemons/org.torproject.tor.plist

您可以使用非常相似的项目来启动 polipo。将此 Launchd 项目保存为/Library/LaunchDaemons/fr.jussieu.pps.polipo.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
        <key>Label</key>
        <string>fr.jussieu.pps.polipo</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/your/binary/of/polipo</string>
                <string>-c</string>
                <string>/path/to/your/polipo.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    <key>OnDemand</key>
    <false/>
    <key>UserName</key>
    <string>userNameToRunPolipoUnder-UsuallyPolipoOrYourOwnUsershortname</string>
    <key>GroupName</key>
    <string>daemon</string>
</dict>
</plist>

再次将以下信息替换为与您的系统匹配的信息: /路径/到/你的/二进制文件/的/polipo 如果你想使用来自 Vidalia 的版本,请使用 /Applications/Vidalia.app/Contents/MacOS/polipo,否则请使用 找出你的 polipo 二进制文件的位置which polipo。(例如,MacPorts 确实将其安装在 中/opt/local/bin/polipo

/path/to/your/polipo.conf 再次,如果你想使用 Vidalia 提供的文件/Applications/Vidalia.app/Contents/Resources/polipo.conf或使用绝对路径到您的自定义配置。

userNameToRunPolipoUnder-UsuallyPolipoOrYourOwnUsershortname 这可以是您运行时使用的相同用户名tor,也可以是单独的用户。我喜欢将守护进程分开。

再次确保launchd项的权限是安全的,符合launchd的要求。

sudo chown root:wheel /Library/LaunchDaemons/fr.jussieu.pps.polipo.plist
sudo chmod 755 /Library/LaunchDaemons/fr.jussieu.pps.polipo.plist

然后启动它 sudo launchctl load -w /Library/LaunchDaemons/fr.jussieu.pps.polipo.plist

警告:此设置确实不是根据要求每 24 小时重启一次守护进程。我认为这没有必要,因为我从未遇到过任何稳定性问题tor。(我在 Mac OS X 上运行节点已有数年。)

tor不是根本无法处理系统睡眠。因此,如果您让 Mac 进入睡眠状态,则需要重新启动tor才能使其再次可靠地建立电路。

此描述适用于已启动并正在运行的 Mac。可以以您的用户身份运行此操作,并且仅在您以图形方式登录时运行,而无需root任何权限。

就应该这样。

PS:请记住,这tor是为了允许在发生阻止和审查的地方进行访问,以及在线匿名和隐私。为什么运行 BitTorrenttor不是一个好主意

答案2

林贡已停产但仍有效,如果您没有经验,它是管理 launchd 的最佳工具。

相关内容