2012-12-07 47 views
2

我對這個問題的普遍性抱有歉意。我嘗試了很多東西,但似乎沒有任何工作。 我有一臺服務器? (我們稱之爲服務器A),它駐留在一個也有一個IP-Webcam的局域網中。那個網絡攝像頭不斷地提供一個RTSP的地址...讓我們說... rtsp://192.168.1.50:554/cam.sdp。攝像機無法訪問外部世界(它必須留在局域網中,因此只能訪問服務器A,否則服務器B),但服務器A呢。不幸的是,服務器A沒有公共IP,所以我無法從世界任何地方進入服務器A服務器A可以走出去,如果它想,但沒有一個能進入服務器A ...(這是一個被寵壞的小孩......太多的玩具,當它是一個孩子)轉發RTSP流到遠程套接字(RTSP代理?)

現在,有另一臺服務器( 服務器B,原創)在上述外部世界這是一個普通的網絡服務器,其公共IP和所有。該服務器允許人們進入它(不被寵壞,非常漂亮......設置桌子,做菜......那種東西)。這兩個服務器A服務器B是我的電腦,並運行Ubuntu 12.04和我設計的一些Python應用程序(服務器B實際上運行Django,但我不認爲這太相關)。我的意思是,我可以控制兩臺服務器上正在發生的事情。我可以安裝/卸載軟件包,我可以打開端口,關閉端口......任何需要的東西(我甚至可以格式化它們,如果我想的話,雖然我認爲這不會有太大的幫助...或者是...誰知道?)

       _____________         _____________ 
    -----------    |   |         |   | 
__ |   |    |   |         |   |  
| \| WebCam |================| Server A |===========| INTERNET |===========| Server B | 
|__/|   | ->/cam.sdp <--|   |----------------- > --------------> *   | 
    |   |    |___________|         |___________| 
    ----------- 

的問題是:我怎麼能抓住與服務器的RTSP流A轉儲到服務器B的指定插座並打開它(用能理解RTSP飼料,這樣的程序作爲VLC)?

我猜我需要類似RTSP代理的東西,也許?但我真的不知道從哪裏開始。

任何提示,鏈接......將不勝感激。

預先感謝您

+0

我不知道RTSP,但它似乎是一個標準的TCP-only協議。嘗試在服務器A上運行:'ssh -g -R 554:192.168.1.50:554 server_B_hostname'。這將打開服務器B上的公共端口554,並從A的角度將其轉發到192.168.1.50:554。 –

+0

嗯...轉發在局域網內部工作,但我仍然有問題,當涉及到公共服務器...看起來很有希望,但是,謝謝... – BorrajaX

+0

一些服務器已配置sshd拒絕'ssh -g -R'轉發(沒有很好的理由)。如果可以的話,你應該檢查服務器B上的'/ etc/ssh/sshd_config':值得注意的是,你希望'AllowTcpForwarding yes'。 –

回答

2

我不知道RTSP,但它似乎是一個標準的,只允許TCP協議。嘗試在服務器A上運行:

ssh -g -R 554:192.168.1.50:554 server_B_hostname 

這將打開服務器B上的公共端口554,並從A的角度來看轉發到192.168.1.50:554。

一些服務器配置了sshd來拒絕ssh -g -R轉發(沒有很好的理由)。如果可以,請檢查服務器B上的/ etc/ssh/sshd_config並添加AllowTcpForwarding yes