如何為 IP 位址新增別名,以便從不同的 IP 網路存取 DLNA 資源

如何為 IP 位址新增別名,以便從不同的 IP 網路存取 DLNA 資源

我擁有的

我有一個家庭 WiFi 網路 192.168.1.0/24,具有 DLNA 資源 192.168.1.100。
我有一台有乙太網路的電視和一台有 WiFi 和乙太網路介面的上網本。
我想讓我的筆記型電腦像路由器一樣工作。這意味著它透過 WiFi 獲取我的家庭網絡,並透過乙太網路介面將其轉發到電視。

我想要的是

我想讓我的電視識別家庭網路中的 dlna 資源。

我做了什麼

我已經在上網本的 eth0 介面上設定了一個 dhcp 伺服器,其子網路如下:

subnet 10.0.0.1 netmask 255.255.255.0 {
  range 10.0.0.5 10.0.0.10;
  option routers 10.0.0.1;
}

我在上網本上設定了 eth0 接口,如下所示:

ifconfig eth0 10.0.0.1/24 

我已啟用轉送:

echo 1 > /proc/sys/net/ipv4/ip_forward

我已經在 iptables 中新增了轉送規則:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

現在我的電視獲得了 10.0.0.5 IP 位址,我可以瀏覽互聯網,但我的電視找不到任何 DLNA 資源。

問題

我認為資源發現只經過10.0.0.1/24,所以我的電視找不到192.168.1.100資源。請告訴我如何創造某種別名,這樣 192.168.1.100 就變成了像 10.0.0.10 這樣的別名

答案1

DLNA 僅用於廣播。因此,您將無法將廣播封包從 10.0.0.0/24 網路路由到 192.168.1.0/24 網路。

因此,最好的方法是根本不路由,而是使用筆記本作為橋樑,並將 DLNA 資源和電視放在同一網路上。這些是步驟。

  1. 擺脫筆記型電腦上的 dhcp 伺服器和 IP 表規則
  2. 橋接筆記本的介面。如何執行此操作取決於發行版,因此我將提供 debian/ubuntu 語法,您可以根據自己的發行版進行調整。

這是/etc/network/interfaces

auto lo br0 

iface lo inet loopback

iface br0 inet static
    bridge_ports eth0 wlan0
    address 192.168.1.x
    netmask 255.255.255.0

替換x為您目前的筆記型電腦 IP 位址。

3) 將電視設定為使用 DHCP

這應該就夠了。該橋將連接從電視到筆記型電腦的有線連接和從筆記型電腦到網路其餘部分的 WiFi 連接。由於它是一座橋,DLNA 廣播將通過橋轉發,並且響應將返回。

另外,橋接意味著來自電視的 DHCP 廣播也將遍歷筆記型電腦,這就是為什麼您不需要單獨的 DHCP 伺服器,它可以使用家庭網路上的伺服器。

答案2

嘗試將 DNS 伺服器新增到您的 DHCP 選項中。您的電視可能還需要其他內容,例如網域。如果你的電視與其他路由器配合使用,我會研究一個 DHCP 監控工具(不知道是哪一個),看看 DHCP 伺服器提供了哪些選項,並用你的設定來模仿它們。

還有,你有嗎echo 1 > /proc/sys/net/ipv4/ip_forward

第三,如果您的range節確實看起來range 10.0.05 10.0.0.10可能需要更改為range 10.0.0.5 10.0.0.10.

好吧,做了一些功課後,DLNA 似乎使用 SSDP 作為發現協議。來自「簡單服務發現協定」維基百科頁面:

SSDP是一種基於HTTPU的文字協定。它使用用戶資料報協定(UDP)作為底層傳輸協定。服務由主機系統透過多播尋址宣告到連接埠號碼1900 處專門指定的IP 多播位址。 c X 表示的範圍。

我對 Linux 上的多播流量沒有太多經驗,但看起來您可能需要啟用多播流量的接收和轉送才能使其工作。

相關內容