![无法使用 SSH 反向隧道访问 Plex](https://linux22.com/image/1587664/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20SSH%20%E5%8F%8D%E5%90%91%E9%9A%A7%E9%81%93%E8%AE%BF%E9%97%AE%20Plex.png)
我在家里的 Windows 电脑上安装了 Plex。我的互联网连接通过 CG-NAT,因此为了访问家里的网络,我使用 SSH 反向隧道来连接我在 OVH 上的专用 Linux 服务器。
这是在我家的 Windows 机器上运行的隧道线路:
ssh -i C:\Users\plex/.ssh/id_ed25519 -N -R *:1135:localhost:1135 -R *:32400:localhost:32400 -R *:8082:localhost:8082 [email protected]
如您所见,我正在隧道化其他端口以访问运行良好的其他服务(如 Web 服务器)。
但当我尝试访问 Plex ( http://server34553.ovh.com:32400
) 时,我得到的是ERR_EMPTY_RESPONSE
。如果我尝试使用另一台计算机(LAN 连接)在家中访问 Plex,它也无法使用外部域,但可以指向本地地址 (http://192.168.10.123:32400)
- Plex 中已启用远程访问。
- 在 Plex -> 网络 -> 自定义访问 URL 中,
http://server34553.ovh.com:32400
也存在 HTTP/S 和服务器 IP。
我只能通过使用plex.tv
他们的“中继服务”来访问我的 Plex 的家庭服务器,这也是我自己尝试做的事情。
答案1
我正在通过隧道传输其他端口来访问运行良好的其他服务(如网络服务器)。
如果你只是需要访问 Plex 的 Web 界面(即使用 ex. 可获得的功能http://192.168.10.123:32400
),你可能想尝试使用反向代理。
您没有过多提及正在运行的网络服务器,但假设它与 Plex 服务器位于同一网络上(甚至位于同一台 PC 上),那么它可能可以完成这项工作。
作为一个小例子,我使用 Apachemod_proxy,mod_proxy_html
并 mod_proxy_http
在中启用httpd.conf
,并在以下代码片段中虚拟主机:
<VirtualHost *:80>
ServerName example.com
#ServerAlias www.example.com, *.example.com
DocumentRoot "C:/path/to/the/example.com/folder/"
# Reverse proxies cannot occur in a <Directory> section.
ProxyPass /plex http://10.0.0.100:32400
ProxyPassReverse /plex http://10.0.0.100:32400
ProxyPass /web http://10.0.0.100:32400/web
ProxyPassReverse /web http://10.0.0.100:32400/web
</VirtualHost>
在上面的例子中,http://example.com/plex/
只是一个用于登录的“方便” URL。http://example.com/web/
是所有实际服务器 URL 构建的基础(即登录后)。
笔记
根据我的经验,需要在 Plex 中启用远程访问才能使代理正常工作(但我有一个空白的自定义访问 URL)。
我没有使用 CG-NAT。我登录了 Plex(远程访问需要,如上所述),但是我的路由器上没有打开任何端口,因此
example.com:32400
没有返回任何内容。从 Web UI 播放的媒体应该可以正常工作,包括视频、音乐和插件。