ArcGIS License Manager端口設置知多少(二)

上一篇文章中介紹瞭如何設置ArcGIS License Manager的端口以及如何設置防火牆,這篇文章就看下其背後的原理。

三、ArcGIS許可服務器與ArcGIS客戶端間的通信原理:

我們知道lmgrd.exe是用於管理ArcGIS許可的,該後臺進程的端口默認是27000,那麼我們從27000端口開始順藤摸瓜,一步一步尋找答案。

在沒有修改service.txt的情況下,在許可服務器所在機器上以管理員身份運行cmd,然後輸入netstat –abn|findstr27000”查找, 發現27000與49722的端口建立了通信,注意127.0.0.1是本機地址,也就是機器內部通訊用的。
在這裏插入圖片描述
接下來查找49722端口對應什麼進程,打開任務管理器發現49722是ARCGIS.exe程序,也就是說Imgrd.exe與ARCGIS.exe產生了通信,同時ARCGIS.exe還有一個端口是49718,該端口與遠程機器192.168.100.81進行了通信。
在這裏插入圖片描述
然後打開ArcMap客戶端所在機器的任務管理器界面,發現ArcMap.exe與遠程的49718端口進行了通信,也就是上一步的ARCGIS.exe。
在這裏插入圖片描述:192.168.100.86是ArcGIS License Manager所在機器的IP,192.168.100.81是ArcMap所在機器的IP。

看到這裏相信大家就會明白,在沒有修改service.txt文件的情況下,Imgrd.exe的27000端口會先和本機的ARCGIS.exe進行通信,然後客戶端ArcMap.exe再和該ARCGIS.exe的端口進行通信,建立連接,所以這個ARCGIS.exe端口也就是上圖中的49718纔是最終ArcGIS客戶端與ArcGIS服務器端進行通信的端口,也就是需要將該端口開放給服務器端的防火牆,而27000則是本機進行通訊用的。

但由於這個端口號不固定且端口號又比較大,所以我們需要設置一個小的並且固定的端口號,以便用戶將這個固定端口開放給防火牆,設置方法就可以參考上篇文章

那麼我們看下修改service.txt文件後會有什麼變化:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
通過上圖發現,這時ARCGIS.exe就固定在1234端口了,所以原則上只需要在服務器的防火牆中只開放該端口即可,這時在客戶端直接使用1234@IP就可以成功連接。

後來我測試客戶端直接輸入服務器IP看是否可以連接,發現不行。這是爲什麼呢?因爲客戶端如果不用port@IP這種寫法,那麼就無法知道ArcMap.exe要與端口爲1234的ARCGIS.exe進行連接,也就是說ArcMap無法找到1234端口的ARCGIS.exe,建立不了通信,所以連接不上。這就是爲什麼上篇文章要強調必須要用port@IP才能連接的原因。

細心的你也許會發現,我們之前說27000端口是內部通訊用的,那麼我們爲什麼還要開放27000端口呢?答案就是27000端口可以幫助我們找到1234端口,如下圖,如果防火牆中同時開放了1234和27000端口,那麼客戶端的ArcGIS Administrator裏設置1234@IP或者27000@IP都可以直接找到端口爲1234的ARCGIS.exe:
在這裏插入圖片描述
但如果直接輸入IP,那麼ArcMap.exe會從27001端口開始一直找到27009,都沒有連接成功纔會找到1234端口,這也是爲什麼上篇文章中會說如果只設置IP的話,開啓ArcMap的過程會比設置port@IP會稍慢一點點的原因。
在這裏插入圖片描述
文章就寫到這裏,如有哪裏寫的不對的地方,歡迎大家留言。

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