## 已知條件
- **網絡設備**:
- 光纖連接到光貓,光貓有WAN口、2個LAN口和1個IPTV口。
- 一台多網口普通路由器(不支援VLAN)。
- 一台單網口軟路由,運行OpenWRT系統,內置`udpxy`。
- **光貓信息**:
- 已獲得超級管理員密碼。
- 後台連接名稱:
- 上網:`2_INTERNET_B_VID_1014`(可能表示VLAN 1014)。
- IPTV:`3_Other_B_VID_3013`(可能表示VLAN 3013)。
## 實現目標
將IPTV的組播流(multicast)轉為單播流(unicast),讓內網中不支持組播的設備也能播放IPTV。`udpxy`是一個專用工具,適合你的需求。
---
## 關鍵因素
1. **IPTV流量與VLAN**:
- IPTV服務通常使用特定VLAN(如VLAN 3013)區分流量。
- 如果光貓將IPTV流量以**無標籤(untagged)**形式輸出到LAN口,普通路由器可以像處理普通流量一樣處理,無需VLAN支持。
- 如果IPTV流量帶有VLAN標籤(tagged),普通路由器可能無法識別,導致IPTV無法使用。
2. **光貓橋接模式**:
- 配置光貓將IPTV流量橋接到LAN口,理想情況下是無標籤輸出,這樣普通路由器和OpenWRT軟路由都能正常工作。
3. **udpxy功能**:
- `udpxy`將組播轉為單播,無需VLAN支持,但前提是IPTV流量能到達軟路由的網絡接口。
---
## 詳細步驟教程
### 步驟 1:配置光貓
確保IPTV流量通過LAN口輸出,理想情況下是無標籤形式。
1. **登錄光貓管理界面**:
- 在瀏覽器輸入光貓管理地址(通常為`192.168.1.1`,具體查看光貓標籤或說明書)。
- 使用超級管理員賬號和密碼登錄。
2. **找到IPTV或服務設置**:
- 導航到「網絡設置」、「端口設置」或「服務配置」等選項(不同光貓界面可能不同)。
3. **將IPTV服務橋接到LAN口**:
- 找到IPTV相關設置,可能顯示為「IPTV模式」或「端口分配」。
- 選擇「橋接模式」(Bridge Mode)或啟用「IPTV通過LAN口輸出」。
- 如果需要選擇連接名稱,選`3_Other_B_VID_3013`(你的IPTV服務)。
- 如果要求輸入VLAN ID,輸入`3013`(根據連接名稱推測)。
- **關鍵**:檢查是否可設置IPTV流量為無標籤輸出,若可選,設置為**無標籤**。
4. **保存並重啟**:
- 保存設置後,可能需重啟光貓使配置生效。
**注意**:若光貓無法設置無標籤輸出,需確認運營商是否要求VLAN標籤。若要求標籤,後續可能需要額外設備支持。
---
### 步驟 2:連接設備
正確連接設備,確保軟路由能接收IPTV流量並接入內網。
1. **連接多網口路由器**:
- 將光貓的一個LAN口(例如LAN1)連接到多網口路由器的WAN口,確保內網有互聯網訪問。
2. **連接軟路由**:
- 將軟路由的單一網口連接到多網口路由器的一個LAN口。這樣,軟路由能接收LAN口的IPTV流量,並通過路由器接入內網。
**網絡拓撲示例**:
光貓LAN1 —- 多網口路由器WAN
多網口路由器LAN1 —- 軟路由網口
---
### 步驟 3:配置軟路由 (OpenWRT)
在OpenWRT上配置`udpxy`,將組播流轉為單播。
1. **登錄OpenWRT**:
- 通過瀏覽器訪問OpenWRT的LuCI界面(默認地址通常為`192.168.1.1`),或通過SSH登錄(使用PuTTY,命令:`ssh [email protected]`)。
2. **確認網絡接口**:
- 默認情況下,軟路由的網口應屬於LAN接口(通常為`br-lan`),通過多網口路由器接入內網。
- 在LuCI中:**Network > Interfaces**,確認LAN接口正常工作。
3. **配置`udpxy`**:
- **通過LuCI(推薦)**:
- 進入**Services > udpxy**(若無此選項,需先安裝或檢查`udpxy`)。
- 設置:
- **Enable**: 勾選啟用。
- **Interface**: 選擇`br-lan`(LAN接口)。
- **Port**: 輸入未佔用端口,例如`4022`。
- 點擊「保存並應用」。
- **通過SSH(備用)**:
- 編輯配置文件:`vi /etc/config/udpxy`
- 輸入以下內容:
```
config udpxy
option enabled '1'
option interface 'br-lan'
option port '4022'
```
- 保存並退出(按`Esc`,輸入`:wq`回車)。
- 重啟服務:`/etc/init.d/udpxy restart`
4. **檢查`udpxy`運行狀態**:
- 在SSH中輸入`ps | grep udpxy`,若看到進程信息,說明運行正常。
---
### 步驟 4:播放IPTV
在內網設備上通過單播流播放IPTV。
1. **獲取組播地址和端口**:
- IPTV的組播地址和端口由運營商提供(例如`239.1.1.1:5000`)。若不清楚,可在光貓後台查看,或聯繫運營商。
2. **生成`udpxy`訪問URL**:
- 格式:`http://<軟路由IP>:<udpxy端口>/udp/<組播地址>:<組播端口>`
- 示例:若軟路由IP為`192.168.1.100`,`udpxy`端口為`4022`,組播地址為`239.1.1.1:5000`,則URL為:
```
http://192.168.1.100:4022/udp/239.1.1.1:5000
```
3. **使用播放器訪問**:
- 在電腦或手機上打開支持HTTP流的播放器(如VLC、MX Player)。
- 輸入上述URL,點擊播放即可觀看IPTV。
---
## 關於VLAN的解答
- **連接名稱的作用**:
- `2_INTERNET_B_VID_1014`:互聯網服務,可能綁定VLAN 1014。
- `3_Other_B_VID_3013`:IPTV服務,可能綁定VLAN 3013。
- **是否需要綁定VLAN**:
- 若光貓將IPTV流量設置為無標籤輸出,則無需VLAN配置。
- 若IPTV流量帶標籤(VLAN 3013),普通路由器無法處理,可能需要:
- 在光貓中設置無標籤輸出。
- 或添加支持VLAN的管理型交換機解標籤。
- **OpenWRT是否需配置VLAN**:
- 若IPTV流量為無標籤,`udpxy`直接監聽`br-lan`即可。
- 若帶標籤,單網口軟路由無法獨立處理VLAN,需調整光貓設置或增加硬件。
---
## 驗證與故障排除
### 驗證IPTV流量是否無標籤
1. 將電腦直接連接到光貓的LAN口。
2. 使用VLC播放器嘗試訪問組播地址(例如`udp://@239.1.1.1:5000`)。
3. 若能播放,說明IPTV流量為無標籤,普通路由器可行。
### 故障排除
- **光貓設置**:確認IPTV流量橋接到LAN口,最好無標籤。
- **組播流量**:用`iperf`或VLC檢查組播流量是否到達網絡。
- **udpxy日誌**:在OpenWRT運行`logread | grep udpxy`或檢查`/var/log/udpxy.log`。
- **路由器限制**:確保普通路由器未禁用IGMP或多播功能。
---
## 注意事項
- **多頻道支持**:不同頻道有不同組播地址,只需更換URL中的組播地址。
- **性能考慮**:軟路由需足夠處理能力,特別是多人觀看時。
- **聯繫運營商**:若組播地址或VLAN要求不確定,可詢問運營商。
通過以上步驟,你的IPTV應可轉為單播流,在內網設備上播放。若有問題,請提供光貓型號或具體設置,我會進一步協助!