Router

通過 XR300 路由器連接到收據列印機的 PHP 套接字

  • January 11, 2022

我有一個 PHP 應用程序試圖通過我的路由器打開與列印機的套接字連接。

需要注意的幾件事 - 我缺乏網路技能,所以我可能會遺漏一些明顯的東西,或者這甚至可能無法以我想要的方式實現。話雖如此,我已經對這個問題進行了大量搜尋,但似乎找不到任何有這個確切問題的人(只是很多人試圖遠端 SSH)。我也知道我嘗試連接的設備正在按預期工作,因為我有一個小型 nodejs 應用程序,它成功地在本地網路上打開了與它的連接。最後,我使用 Docker 在本地執行 PHP 應用程序,這可能與我的問題有關(儘管由於日誌,我知道連接正在到達路由器)。

程式碼很簡單:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_TCP, SO_DEBUG, 1);

$server_connect = socket_connect($socket, "router_public_ip", 9100);

在我的路由器中,我設置了要轉發的埠: 在此處輸入圖像描述

當我嘗試連接 PHP 時會拋出異常socket_connect(): unable to connect [111]: Connection refused並且路由器日誌顯示連接失敗。

我在路由器日誌中註意到啟動埠是隨機的,並嘗試將我的埠轉發配置更改為: 在此處輸入圖像描述

這給了我相同的結果,並且我的路由器沒有給我太多資訊(關於連接失敗的原因,是否被阻止?)。這就是日誌中顯示的全部內容:

在此處輸入圖像描述

編輯: 列印機配置實用程序菜單似乎沒有提及有關防火牆或遠端連接的任何內容。 在此處輸入圖像描述

然後我想知道列印機網路配置中的 0.0.0.0 網關。

這意味著您的列印機可以直接連接到任何 IP 地址。在正常情況下,系統只能與子網中的其他系統直接通信(見遮罩)。為了更廣泛的覆蓋範圍,它需要通過一個網關。

引用自:https://serverfault.com/questions/1089560