我在騰訊租了一個云服務器,公網IP是119.29.138.107。
我在 start_gateway.php 里把0.0.0.0改成119.29.138.107然后在嘗試運行,就出現了Error。
PHP Warning: stream_socket_server(): unable to connect to tcp://119.29.138.107:8282 (Cannot assign requested address) in /home/kong/GatewayWorker/Workerman/Worker.php on line 1383
Warning: stream_socket_server(): unable to connect to tcp://119.29.138.107:8282 (Cannot assign requested address) in /home/kong/GatewayWorker/Workerman/Worker.php on line 1383
PHP Fatal error: Uncaught exception 'Exception' with message 'Cannot assign requested address' in /home/kong/GatewayWorker/Workerman/Worker.php:1385
Stack trace:
#0 /home/kong/GatewayWorker/Workerman/Worker.php(522): Workerman\Worker->listen()
#1 /home/kong/GatewayWorker/Workerman/Worker.php(418): Workerman\Worker::initWorkers()
#2 /home/kong/GatewayWorker/start.php(32): Workerman\Worker::runAll()
#3 {main}
thrown in /home/kong/GatewayWorker/Workerman/Worker.php on line 1385
但是0.0.0.0或者內網則可以,并且設置0.0.0.0后,可以通過學校的電腦訪問。
請問一下這是為什么?是騰訊云的問題還是我Linux設置的問題?還是什么別的原因?
謝謝。:D
還有一個小建議:
網站發(fā)表問題下面的“瀏覽模式”經常被誤認為是編輯框,然后按一下Blackspace就整個頁面都倒退了,體驗不是很好。
參考手冊,http://doc3.workerman.net/faq/workerman-start-fail.html
Cannot assign requested address
簡單的說119.29.138.107不是你服務器的IP,無法監(jiān)聽。
你可以運行 ip addr
看下你服務器ip是多少,如果對服務器ip有疑問,可以去問下騰訊云的客服。
感謝你的建議,不過有個預覽框體驗會更好一些。
謝謝你的答復!
[root@VM_214_74_centos GatewayWorker]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:1e:dd:ba brd ff:ff:ff:ff:ff:ff
inet 10.104.214.74/18 brd 10.104.255.255 scope global eth0
valid_lft forever preferred_lft forever
這個的意思是只有內網IP嗎?但是我用監(jiān)聽0.0.0.0確實可以被外網訪問到。
遇到了同樣的問題,寫給未來同樣遇到Cannot assign requested address問題的人。
當內網ip,0.0.0.0測試可以通過但是換成公網就不可以,請參照以下步驟進行檢查:
1.ip要填對,公網ip
2.( 測試時)云服務器上,安全組配置要把端口允許的ip設為0.0.0.0/0或者其他IP
系統(tǒng)防火墻,也是要配置規(guī)則的,百度怎么配置就好了,測試時可以直接關掉。
系統(tǒng)默認防火墻是打開的,所以目測題主和我一樣問題出在了系統(tǒng)防火墻這里。
遇到過同樣的問題,后來工單咨詢阿里云得知如果是阿里云專有網絡的話,那么你的服務器的外網ip實際上不屬于你這臺服務器,這個ip實際上類似一個代理設備,客戶端發(fā)的請求先到這個代理上,然后轉發(fā)到你的真實服務器。由于這個ip不屬于你這臺服務器,所以監(jiān)聽不了,啟動會報錯。
如果是阿里云的經典網絡就沒問題,ip是真的你所在服務器的網卡上。
估計騰訊云也是類似的問題。