我有一個簡單的Sinatra服務器,我通過textmate運行,但無法從同一網絡上的另一臺計算機訪問。無法從同一網絡上的另一臺計算機訪問本地Sinatra服務器
我在Mac OS 10.8.3上運行Ruby 1.9.3p327和Sinatra 1.4.1。防火牆已禁用。
我在不同的網絡和計算機上測試過相同的場景。
計算機響應簡單的ping,但是當我嘗試遠程登錄端口4567時,我無法建立連接。
我有一個簡單的Sinatra服務器,我通過textmate運行,但無法從同一網絡上的另一臺計算機訪問。無法從同一網絡上的另一臺計算機訪問本地Sinatra服務器
我在Mac OS 10.8.3上運行Ruby 1.9.3p327和Sinatra 1.4.1。防火牆已禁用。
我在不同的網絡和計算機上測試過相同的場景。
計算機響應簡單的ping,但是當我嘗試遠程登錄端口4567時,我無法建立連接。
有一個recent commit to Sinatra由於安全考慮,在開發模式下將默認監聽地址從0.0.0.0
更改爲localhost
。
爲了明確允許從網絡訪問,您需要以其他模式(例如生產)運行您的應用,或將bind
option設置爲0.0.0.0
。
您可以使用使用-o
選擇建在服務器命令行做到這一點:
$ ./my_sinatra_file.rb -o 0.0.0.0
這工作!謝謝! –
,近期提交了最近在@馬特的答案的時候,但在這裏它是一年後,默認綁定埋在西納特拉文檔,並在入門沒有提及。綁定,「0.0.0.0'' –
您也可以直接使用'設置設置它在你的應用程序! – GuiSim
確保sinatra服務器不僅僅監聽本地主機(127.0.0.1)的IP地址。
我該怎麼做?對不起,我是一個完整的noob :) –
閱讀西納特拉幫助,或者用'-h'標誌運行服務器。它告訴如何做到這一點 –
我插嘴一點點額外的信息,可以幫助我這樣的人敲打他們的頭靠在壁。
我在Windows機器上,而不是Mac機上,我不得不打開我使用的端口(默認爲Sinatra是4567)給公衆(即使我在大學網絡上)。
要在Windows 10這樣做:
現在要考慮的另一件事是誰可以訪問您的Web服務器。如果你想要任何人,然後選擇公開。我不確定(並且會喜歡其他人的輸入)如何只在同一個公共網絡上連接設備。你也可以允許特定的IP地址,但爲此我建議你自己做一些研究。
你爲什麼使用telnet?我不明白你想在這裏實現什麼。 Sinatra是一個Web框架。嘗試使用瀏覽器。 –
不適用於瀏覽器 –
只是爲了確保:您是否在IP地址末尾包含端口號?例如:your.ip.address:4567 –