我使用 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,链接)。
这样,您甚至不需要向本地机器以外的任何机器开放端口。
这可能无法提供完美的浏览图形界面,但它肯定足以完成许多管理任务;事实上,即使我可以使用常规浏览器,我也发现使用它更方便。