You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LAN与VLAN间Plex Web服务器的定向访问路由配置方案咨询

LAN与VLAN间Plex Web服务器的定向访问路由配置方案咨询

Hey Bill, 刚好折腾过类似的场景,你要的就是定向端口转发(用iptables的DNAT规则实现),完全不用桥接两个网络,只放行Plex需要的32400端口流量,完美匹配你的需求。下面一步步给你讲怎么操作:

前提确认

先搞清楚你的Ubuntu机器的两个接口信息:

  • LAN以太网接口:假设是eth0,IP为10.0.0.2
  • Zerotier VLAN虚拟接口:通常是zt0,IP为10.147.18.x(比如10.147.18.2)
  • Plex服务器的VLAN IP:比如10.147.18.10,端口默认32400

可以用ip addr命令查看真实的接口名和IP,别搞混了。

步骤1:开启Ubuntu的IP转发功能

Ubuntu默认关闭IP转发,得先打开它,不然机器没法帮你转发数据包:

# 临时生效(重启后失效)
echo 1 > /proc/sys/net/ipv4/ip_forward

# 永久生效(重启后也能保留)
sudo nano /etc/sysctl.conf
# 找到这一行:#net.ipv4.ip_forward=1,把前面的#去掉,保存退出
sudo sysctl -p  # 让配置立即生效

步骤2:配置iptables转发规则

需要两条核心规则:DNAT(把LAN来的请求转到Plex服务器)和SNAT(让Plex的返回流量能正确回到LAN设备)

2.1 添加DNAT规则

把LAN接口上收到的32400端口请求,转发到Plex服务器的IP和端口:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 32400 -j DNAT --to-destination 10.147.18.10:32400

2.2 添加SNAT规则

这条规则是让Plex服务器返回的数据包,通过Ubuntu的VLAN接口发回,不然返回的流量会找不到路:

sudo iptables -t nat -A POSTROUTING -o zt0 -p tcp --dport 32400 -d 10.147.18.10 -j SNAT --to-source 10.147.18.2

这里的10.147.18.2要换成你的Ubuntu机器的Zerotier接口IP。

步骤3:保存iptables规则(防止重启丢失)

Ubuntu 22.04默认用iptables-nft,直接用下面的命令保存规则:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

这样重启机器后,规则会自动加载。

验证测试

  1. 先在Ubuntu机器上测试能不能访问Plex:
    curl 10.147.18.10:32400
    
    如果能返回Plex的页面内容,说明Ubuntu和Plex是通的。
  2. 再在LAN里的其他设备上打开浏览器,访问10.0.0.2:32400,应该就能看到Plex的登录界面了。

可能遇到的坑

  • 如果你开了Ubuntu的ufw防火墙,记得放行32400端口:
    sudo ufw allow 32400/tcp
    
  • 检查Zerotier的网络ACL规则,确保允许你的Ubuntu机器访问Plex服务器的IP和端口;
  • 如果接口名不是eth0或zt0,一定要换成你实际的接口名,用ip addr能查到。

备注:内容来源于stack exchange,提问作者Bill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 13:33:02