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

我使用的是传输的Web界面,但由于缺乏任何加密,我觉得在远程(局域网以外,例如来自朋友家)使用它感觉不舒服。 通过互联网广播我的传输Web界面登录详细信息的想法,由于某种原因,对我没有吸引力。 (我有点偏执。我甚至安装了一个浏览器插件,可以在任何网站上启用HTTPS。)

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

只是希望能够为Web Interface使用某种加密,因此我可以远程管理我的种子。 我需要做什么?

我建议安装一个简单的Web服务器,如nginx,并将其代理到端口8080,这将允许您将来添加身份validation,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 .key -out .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 

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

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

这样,除了本地机器之外,您甚至无需打开端口。

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