socket服務部署到服務端後啓動失敗Cannot assign requested address: bind 的總結

    服務端項目用socketio-netty搭建的,項目本地測試沒問題,但是部署到阿里雲的服務器後,啓動不了,報瞭如下錯誤:

Caused by: java.net.BindException: Cannot assign requested address: bind
	at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_161]
	at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_161]
	at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_161]

    socket的host配置的是遠程服務器的Ip,firewall端口已經開放,安全組端口也已經開放了,試着將host變成

wss.server.host=127.0.0.1

    然後部署到遠程服務器啓動,可以運行,不過遠程客戶端不能訪問此服務。有點疑惑,在本地測試的時候,服務器的host配置

wss.server.host=192.168.1.20

    設置的是內網Ip,客戶端的同學可以通過內網進行訪問,可能是我搜索問題的技巧不夠吧,在網上沒有看到解決辦法,於是就嘗試着自己解決。通過修改host爲127.0.0.1使得服務啓動成功後,在雲服務端的ssh客戶端,通過netstat -tunlp查看了一下服務的狀態


    有這裏可以看出,暴露在外並可以訪問的的服務對應的localAddress爲0.0.0.0,所以試着把host改爲

wss.server.host=0.0.0.0
    成功運行,在網上看了一下,0.0.0.0表示允許本機的所有ip地址和域名進行訪問。但是爲何設置成雲服務器的ip不能項目啓動失敗,之後再看看。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章