Polipo - Arch Linux 中文维基

跳至內容

# Polipo

出自 Arch Linux 中文维基

本文已被棄用。

本文所述教程或工具由於已經過時而被棄用，請使用其他替代方案： squid、privoxy 等 (在Talk:Polipo討論)

來自Polipo's site:

  "Polipo 是一個小而快速的緩存 web 代理程序(web 緩存, HTTP 代理, 代理伺服器)。儘管 Polipo 是為一個人或一小群人使用而設計的，但並不妨礙它為一大群人所使用。"

下面包括了 Polipo 的安裝和設置：

## 安裝

安裝軟體包 polipoAUR[損壞的連結：package not found]。

## 優化 Polipo

### 作為指定的用戶運行

Polipo 需要使用普通用戶運行。這個用戶可以建立新的也可以使用舊的：

    # mkdir /var/cache/polipo
    # groupadd -r polipo
    # useradd -d /var/cache/polipo -g polipo -r -s /bin/false polipo

為了在用特定用戶運行之前確保所有的文件和目錄都已經被建立，啟動然後停止 Polipo。

    # /etc/rc.d/polipo start
    # /etc/rc.d/polipo stop

與其他的守護程序以root運行然後儘快的降低權限不同，polipo 是以啟動它的用戶權限運行的。如果 polipo 是在`/etc/rc.d/polipo`調用的，改變調用行

    [[ ! -d /var/run/$DAEMON ]] && install -d $DAEMON /var/run/$DAEMON
    /usr/bin/$DAEMON $ARGS >/dev/null 2>&1

為

    [[ ! -d /var/run/$DAEMON ]] && install -d $DAEMON --group=polipo --owner=polipo /var/run/$DAEMON
    su -c "/usr/bin/$DAEMON $ARGS" -s /bin/sh polipo >/dev/null 2>&1

然後也有必要改變幾個 polipo 需要寫入的目錄的所有者/權限：

    # chown polipo:polipo /var/log/polipo
    # chown -R polipo:polipo /var/run/polipo
    # chown -R polipo:polipo /var/cache/polipo

儘管更好的選擇是建立一個被指定用戶所有的目錄 `/var/log/polipo` 然後通過配置文件的 logFile 變量設置 polipo 的 log 文件到 `/var/log/polipo/polipo.log` 。

## 啟動守護進程

以下命令啟動 Polipo 守護進程：

    # /etc/rc.d/polipo start

將它添加到 `/etc/rc.conf` 使它在啟動時自動運行：

    DAEMONS=(syslog-ng network netfs polipo crond)

### 多線程

Polipo 也可以不需要超級用戶權限即可運行。想要這樣的話，首先複製 `/etc/polipo/config.sample` 到一個合適的目錄：

    $ cp /etc/polipo/config.sample ~/.poliporc

編輯並將 `/var/cache/polipo` 替換成一個可寫入的目錄:

    # Uncomment this if you want to put the on-disk cache in a
    # non-standard location:
    diskCacheRoot = "~/.polipo-cache/"

創建 cache 目錄：

    $ mkdir ~/.polipo-cache

最後，使用新配置文件啟動：

    $ polipo -c ~/.poliporc

## 配置

管理通常是在 `/etc/polipo/config` 進行。大多數用戶可以選擇使用示例配置文件，它適合大多數情況，注釋很詳細。

    # cd /etc/polipo; cp config.sample config

必須要提到的 Polipo 配置中的一個要素是 polipo 的默認行為是通過埠屏蔽外部連接。Polipo 的配置文件有兩個變量控制允許的外部埠。`allowedPorts` 制定外部HTTP連接的埠。默認是 80-100 和 1024-65535. `tunnelAllowedPorts` 制定 Polipo 隧道流量允許的埠，以及 HTTPS 流量的埠。默認它是更嚴格的限制的："它默認允許 ssh, HTTP, https, rsync, IMAP, imaps, POP, pops, Jabber, CVS 和 Git 流量。"

如果你看到來自 Polipo 的 "403 Forbidden Port" 錯誤信息，你需要配置polipo接收更多 HTTP 或 HTTPS的埠。要設定全都允許，添加下面的幾行到 `/etc/polipo/config`:

    allowedPorts = 1-65535
    tunnelAllowedPorts = 1-65535

與其他代理軟體不同，Polipo 需要重啟後才能應用改變。

### 瀏覽器

設置瀏覽器，讓它使用 `localhost:8123` 作為代理。確保禁用瀏覽器的磁碟緩存來避免冗餘的 IO 操作以及低下的性能。

### 隧道

注意：按照 Polipo FAQ 關於 "intercepting proxy" 這是不被支持的！
注意：這需要用 Polipo 自己的用戶運行它。

除了手動配置每個瀏覽器和其他程序使用 Polipo 的緩存之外，也可以使用 iptables 來通過 polipo 路由。

在安裝了 iptables 之後，添加合適的規則到 `/etc/iptables/iptables.rules`：

    *nat
    :PREROUTING ACCEPT [0:0]
    :POSTROUTING ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner polipo -j ACCEPT
    -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8123
    COMMIT

這會通過 Polipo 路由所有的 HTTP 流量。移除瀏覽器的所有代理設置，然後重新啟動 iptables。

### Privoxy

Privoxy 是一個可以有效攔截廣告和其他惡意程序的代理軟體。

按照 Polipo 開發人員的建議，為了得到 Privoxy 的隱私性和 Polipo 的大部分性能，你需要把 Polipo 放在 Privoxy 的上游。

也就是說：

- 瀏覽器指向 Privoxy: `localhost:8118`
- 然後將 Privoxy 流量通過 Polipo: `forward / localhost:8123` 在 Privoxy 配置文件設置。

### Tor

Tor是一個匿名代理網絡。

與 Tor 一起使用 Polipo，需要在 `/etc/polipo/config` 取消注釋下面的幾行：

    socksParentProxy = localhost:9050
    socksProxyType = socks5

### DansGuardian

DansGuardian 是一個 web 內容過濾器。 DansGuardian 和 Polipo (而不是 squid 或者 tinyproxy) 共同使用，唯一的不同是在 `dansguardian.conf` 中 proxyport 需要設定為 polipo 的 8123:

    # the port DansGuardian connects to proxy on
    proxyport = 8123

分類：​

- 代理伺服器
- 已棄用的頁面
- 包含損壞的軟體包連結的頁面

Polipo
新增話題