2013-05-04 23 views
5

你怎麼能強制播放框架監聽本地主機只
我想,該劇將偵聽localhsot:9000,而不是0.0.0.0:9000
所以它贏得可以訪問外部IP
我試圖在application.conf中使用
http.address = 127.0.0.1 ,但似乎沒有做任何改變。
用netstat我看到那部戲使用0.0.0.0:9000強制播放框架來監聽本地主機只

感謝

+0

我不明白你的問題。我認爲與http.address = 127.0.0.1和播放「運行8080」..應參加127.0.0.1:8080。 – Gere 2013-05-04 05:07:40

+0

@Gere,謝謝基爾,但我怎麼能讓它更清晰。我不想將我的應用程序暴露給外部世界。正如你所看到的,我在application.conf中使用了http.address = 127.0.0.1。但該過程似乎綁定到可連接到所有IP的0.0.0.0地址。綁定到127.0.0.1將只接受來自本地主機的連接 – jojo 2013-05-04 05:14:01

回答

10

你需要使用 「localhost」 作爲http.address目標。

play start -Dhttp.address=localhost 

出於某種原因,指定127.0.0.1作爲http.address導致它綁定到0.0.0.0,這似乎是我的錯誤。然而,使用localhost的作品。

+0

感謝隊友,但它沒有幫助。我試了兩個玩起動-Dhttp.address =本地主機和播放開始-Dhttp.address = 127.0.0.1相同的結果 – jojo 2013-05-04 09:31:42

+1

這是令人失望的。我使用的是Play 2.0.4,它似乎在爲我工作。您可以嘗試在Play Framework網站上提交錯誤。 – PowerPanda 2013-05-04 09:45:58

+0

我使用玩2.10.0。至少我在正確的軌道上,這是可能的待辦事項。所以它在我的環境中一定是錯的。如果沒有其他人會提出一些其他解決方案,我會將您的答案標記爲已接受。再次感謝 – jojo 2013-05-04 10:25:20

0

令人傷心的黑客攻擊只是將該端口阻擋在外面的世界。下面你允許本地訪問,但禁止其他人。這將防止人們繞過您的代理(即,如果您終止了HTTPS,則繞過HTTPS)。

iptables -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 9000 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 9000 -j DROP 

如果您設置了iptables設置,請運行以下命令重置它們。 PS,如果你在遠程虛擬機上,請不要使用端口22。 ;)

iptables -F