1

【茶包射手日記】WebATM 安控元件捉鬼記

 2 years ago
source link: https://blog.darkthread.net/blog/webatm-service-issue/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【茶包射手日記】WebATM 安控元件捉鬼記

2022-08-20 06:04 PM 6 4,064

開了慣用的 WebATM 網站要轉帳,使用讀卡機時出現 "此智慧卡目前被另一個處理程序共用" 之類的錯誤訊息(當時沒詳記,後來沒能重現,但大概是這個意思)。重開瀏覽器、由 Edge 換 Chrome、重開機都不管用,我決定啟動 3R 程序的 Reinstall - 重新安裝銀行提供 WebATM 安控元件。

不料,重裝完更慘,WebATM 網頁說測不到安控元件一直叫我更新,依照官方 FAQ 說明,右下角工作列有看到小圖示就代表安控元件運作中,更何況我才重新安裝,保證是最新版,到底是怎麼一回事?

本想連絡客服求助,但想想客服人員非 IT 專業,又看不到我的桌面跟工作管理員,要通靈幫我查原因也太為難人家了。平時最討厭接這種隔空抓藥的案例,己所不欲,勿施於人啊,還是捲起袖子自己來吧。

用 F12 查出來網頁會用 11808、22808、33808 等三個 Port 的 URL 呼叫安控元件,但連線沒有回應:

Fig1_637965869207445373.png

由工作管理員確定安控元件 EXE 在執行中,進一步用 Process Explorer 檢查,發現它聽的 Port 是 12118,非網頁預期的三個 Port 之一。

Fig2_637965866985235240.png

不懂為何安控元件會去聽一個不在網頁預期清單的 Port,想說該不會是我的機器被寫入了什麼設定檔或 Registry 錯指埠號,開了 Process Monitor 檢查亦無所獲。最後,福至心靈,我想到該不會是 11808 Port 被佔用了?延伸閱讀:清除 Windows TCP Port 保留區段

Bingo! 11711-11810 被列為保留區,導致 11808 無法使用。

Fig3_637965866985759650.png

但問題來,網頁之所以輪流試探 11808、22808 跟 33808,應該就是為了防範指定的 Port 在主機上被佔用,跟安控元件約定好,萬一 11808 不能用就走 22808,再不行走 33808。而我的電腦上,安控元件發現 11808 不能用,也自動跳號了,但跳到 12118 是哪招?感覺網頁開發單位與安控元件開發單位沒溝通好,三壘手離開壘包接球,游擊手迅速補位... 到二壘。

知道原因,問題就好解。net stop winnat 再從工作管理員砍掉安控元件重新執行,WebATM 就正常惹。而如果當初我鄉愿一點,發現有問題就再重開機一次,保留 Port 被釋放應該也會不藥而瘉,無腦解決問題很好,但這就少了探索原理,解決問題的樂趣,呵。

補充:被讀者慫恿做了實驗,用 IIS 佔掉 Port,測得安控元件選 Port 順序為 11808、12118、13118,確認為 Bug。改網站比客戶端更新安控元件容易,立即排工單處理。(講得好像網站是你在管的一樣)

Fig4_637966029239479190.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK