如何在传输中获得 https Web 界面?

Jam*_*ude 6 transmission https

我使用Transmission 的Web 界面,但由于缺乏任何类型的加密,我对远程使用它感到不舒服(在LAN 之外,例如,从朋友家中)。出于某种原因,在互联网上广播我的传输 Web 界面登录详细信息(完全未加密)的想法对我没有吸引力。(我对此有点偏执。我什至安装了一个浏览器插件来在任何可能的站点上启用 HTTPS。)

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

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

Did*_*hen 7

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

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

location / {
  proxy_pass        http://localhost:8080;
}
Run Code Online (Sandbox Code Playgroud)

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

要添加 SSL 支持,您需要创建一个密钥和一个签名证书(我假设您不希望它由 CA 签名,所以这里是如何对其进行自签名):

openssl req -x509 -nodes -new -keyout <name>.key -out <name>.crt
Run Code Online (Sandbox Code Playgroud)

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

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

sudo reload nginx
Run Code Online (Sandbox Code Playgroud)

或者

sudo /etc/init.d/nginx reload
Run Code Online (Sandbox Code Playgroud)


Jan*_*ary -1

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

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

这可能无法提供完美的图形浏览界面,但对于许多管理任务来说确实足够了;事实上,即使我可以使用常规浏览器,我发现它通常使用起来更方便。