我使用的是 OS X、Viscosity 和 AirVPN。AirVPN 支持端口转发,我可以使用 uTorrent 和其他一些应用程序成功进行端口转发...因此从理论上讲这应该可行:
- 前往 AirVPN,获取一个随机端口转发。例如,
18445
。 - 进入 Plex Media Server > 设置 > 连接。选中手动指定端口,输入
18445
。 - 单击“更新”
但是,这不管用。我收到了plex can't connect to you
消息。
我已经使用 telnet 验证了这种情况。如果我telnet my.ip.addr 18445
什么也没得到。如果我 telnet 到 uTorrent 端口,我会得到响应。
那么手动指定端口到底是什么意思呢?似乎 plex 声称它将在该端口上打开一个外部套接字,但事实并非如此。
答案1
以下是我成功使 MyPlex / PlexPass 与 VPN 协同工作的方法。
先决条件:
- Mac OS X Mavericks/Yosemite(尚未在 El Capitan 上验证)
- PIA/AirVPN/其他(任何支持端口转发的 VPN 都可以)
- 任何在 Mac 上运行的 VPN 客户端
脚步:
- 在 VPN 上转发端口。
前往您的 VPN 网站来添加端口转发。
我正在使用 AirVPN,所以我去airvpn.org/ports/并点击添加按钮。不要填写任何字段。让它分配一个随机端口,并让它转发到相同的本地端口。
记下随机生成的端口号。稍后您将需要它,只要您VPN_PORT
在下面的说明中看到它,您就会用这个数字替换它。
- 在本地机器上设置端口重定向
Mavericks 10.9 和 Yosemite 10.10 使用pf
(OpenBSD 数据包过滤器)进行端口重定向。
使用该Terminal
应用程序访问命令行。
/etc/pf.anchors/my.plex.vpn.forward
使用您最喜欢的编辑器或 nano创建文件:
sudo nano /etc/pf.anchors/my.plex.vpn.forward
将以下内容复制到文件中:
# To allow access to Plex Media Server from outside the VPN AirVPN
# local ethernet for testing (en0)
rdr pass on en0 inet proto tcp from any to any port VPN_PORT -> 127.0.0.1 port 32400
# OpenVPN presumably is tun0
rdr pass on tun0 inet proto tcp from any to any port VPN_PORT -> 127.0.0.1 port 32400
删除VPN_PORT
第 3 行和第 5 行,然后复制您上面记下的随机端口。
保存文件并退出 nano。
要验证您的端口转发文件是否正确:
sudo pfctl -vnf /etc/pf.anchors/my.plex.vpn.forward
如果您看到,unknown port VPN_PORT
则说明您忘记将文件中的 VPN_PORT 替换为您自己在步骤 1 中随机生成的 VPN 端口。
创建pf
配置文件:
sudo nano /etc/pf.plex.conf
将其复制到其中:
rdr-anchor "my-plex"
load anchor "my-plex" from "/etc/pf.anchors/my.plex.vpn.forward"
开始pf
(默认情况下不运行)
sudo pfctl -ef /etc/pf.plex.conf
- 配置Plex服务器
转到 Plex Media Server Web 界面 > 设置 > 服务器 > 连接
确保您已使用 plexpass 登录。
勾选复选框Manually specify port
并输入VPN_PORT
您在上面写下的内容。单击按钮(更新/重试/其他)。
您将会看到“正在连接服务器……”
几秒钟后,您应该会看到“服务器已映射到端口 [VPN_PORT]”
- 使用你的手机进行测试
首先关闭 WiFi。(否则您的手机可能会连接到本地网络,而这并不是我们想要的。)
登录
现在应该会自动连接。如果没有,请尝试刷新、同步或等待一分钟。
一旦发现它正常工作,您就可以重新打开 WiFi。
额外内容:
- 要使 pf 在您重新启动 Mac 时自动运行,请参阅OS X Server:如何启用自适应防火墙(除了将配置文件从 pf.conf 更改为 pf.plex.conf)
- 您可以使用 telnet 从网络内部和外部进行测试,例如,
telnet IP.ADDR.OF.PLEXMAC VPN_PORT
如果它连接,则您的设置是否正确。 - 如果 Plex 服务器更新为监听所有网络接口(包括 vpn 接口),则这不是必需的。