如何在 Transmission 中获取 https 网络界面?

如何在 Transmission 中获取 https 网络界面?

我使用 Transmission 的 Web 界面,但由于缺乏任何类型的加密,我不太愿意远程使用它(在 LAN 之外,例如在朋友家)。出于某种原因,在互联网上广播我的 Transmission Web 界面登录详细信息(完全未加密)的想法对我来说并不吸引人。(我对此有点偏执。我甚至安装了浏览器插件,以便在任何可能的网站上启用 HTTPS。)

我听说过,甚至尝试过一些涉及 lighttpd 的复杂教程,但到目前为止还没有任何成功。

只是希望能够对 Web 界面使用某种加密,以便可以远程管理我的种子。我需要做什么?

答案1

我建议安装一个简单的 Web 服务器(例如 nginx)并使其成为端口 8080 的代理,这样您就可以在将来添加身份验证、SSL 和其他服务器(如果您愿意的话)。

要配置 nginx 将内容转发到 8080,您可以在 /etc/nginx/sites-enabled/default 文件中写入以下内容:

location / {
  proxy_pass        http://localhost:8080;
}

请记住,这只适用于 Web 界面,而不适用于您希望 torrent 端口为 80 的情况。

要添加 SSL 支持,您需要创建一个密钥和一个签名的证书(我假设您不想由 CA 签名,因此这里介绍如何自行签名):

openssl req -x509 -nodes -new -keyout <name>.key -out <name>.crt

默认服务器配置文件(与上面相同)应具有以下内容:

server {
    listen 443 default_server ssl;
    ssl_certificate     /etc/nginx/test.crt;
    ssl_certificate_key /etc/nginx/test.key;
    server_name  default;

    access_log  /var/log/nginx/localhost.access.log;

    location / {
        proxy_pass        http://localhost:8080;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
            root   /var/www/nginx-default;
    }
}

您需要将密钥和证书位置与您刚刚创建的位置进行匹配,并且除非您导入证书(或支付商业证书),否则您将在浏览器中收到不受信任的警告。

在配置中进行这些更改后,您应该运行:

sudo reload nginx

或者

sudo /etc/init.d/nginx reload

答案2

有一个用于传输的命令行界面,称为 transmission-remote-cli,您可以在 ssh 进入服务器后使用它。这就是我使用的。效果很好。我相信如果您不想配置代理,将来会出现更简单的 https 解决方案。

答案3

当然,使用 SSH 进行隧道传输是一种可能性,但也许更简单的解决方案 —— 更容易设置,更容易随身携带 —— 是使用 ssh 客户端(例如,如果您使用的是 Windows,则使用 putty),登录到您的机器并使用文本浏览器(w3m,链接)。

这样,您甚至不需要向本地机器以外的任何机器开放端口。

这可能无法提供完美的浏览图形界面,但它肯定足以完成许多管理任务;事实上,即使我可以使用常规浏览器,我也发现使用它更方便。

相关内容