自己搭建IntelliJ IDEA授權服務器

感謝

首先說明,服務器文件不是我寫的,我也是從lanyu大神那裏搬過來的。我這裏只是詳細介紹一下如何使用。
lanyu大神博客:http://blog.lanyus.com/archives/174.html

下載服務器文件

下載地址:https://github.com/a252937166/new-idea-server.git

本地授權

  • 找到對應系統的文件,以1017端口運行。
    比如如果你是windows系統,打開cmd.exe,進入服務器文件目錄,運行IntelliJIDEALicenseServer_windows_amd64.exe -p 1017在最新版本的jetbrains系列產品中,直接使用http://127.0.0.1:xxxx是不行的,127.0.0.1已經被jetbrains封殺了,另外激活地址中現在也不能暴露端口,不然也無法成功激活,所以我們要把它映射爲其他地址

    這裏寫圖片描述

    圖(1)

  • 運行natapp.exe

    這裏寫圖片描述

    圖(2)

    圖(2)紅色框中地址就是你1017端口對應的外網地址,這個地址不會被封。

  • 在授權窗口填入對應地址。

    這裏寫圖片描述

    圖(3)

    點擊Activte,激活成功。

  • natapp我這裏就只提供了windows的客戶端,因爲我覺得玩linux,肯定都會nginx,隨便轉發到一個域名就行了,也用不到這個工具了。我的natapp是默認映射的1017,在其他平臺一定要用這個工具,或者windows下想要以其他端口啓動的同學,建議大家去natapp官網註冊一個賬號,申請一個免費渠道,然後得到authtoken,替換一下config.ini裏的內容就行了,很簡單,這裏就不詳細說明了。

    建議大家最好還是自己申請一個authtoken吧,因爲有時我可能會因爲項目,用這個工具映射其他端口。

  • 關於沒有網絡的解決辦法:以80端口啓動,然後修改系統的hosts文件,映射一個域名對應127.0.0.1就行了。比如windows下,進入C:\Windows\System32\drivers\etc,修改hosts,添加一句127.0.0.1 mymymy.com,保存,然後在激活頁面,填入http://mymymy.com就行了。

遠程服務器授權

本地啓動最麻煩的就是每次開機都要先啓動服務器,才能打開IDEA,如果自己有服務器的同學,我建議可以把IDEA授權服務掛在到服務器上,這樣只要你的遠程服務器不掛掉,就可以永久授權了。
關於windows我就不多講了,我這裏講一下linux系統如何配置。

關於內存消耗

幾乎不消耗內存的,我服務器2G內存,我查了一下,顯示只佔用0.2%。

這裏寫圖片描述

圖(4)

啓動和停止腳本

啓動腳本

start.sh:

#!/bin/sh
rm -f tpid

nohup ../IntelliJIDEALicenseServer_linux_amd64 > info.log 2>&1 &

echo $! > tpid

這裏 ../IntelliJIDEALicenseServer_linux_amd64我使用的是相對路徑,這取決於start.sh相對於執行文件的路徑,因爲我把start.sh放在bin目錄裏面,binIntelliJIDEALicenseServer_linux_amd64同級。如果想把bin放到其他位置,那麼只需要把../IntelliJIDEALicenseServer_linux_amd64改爲IntelliJIDEALicenseServer_linux_amd64的絕對路徑就行了,nohup是後臺運行的意思,千萬不能去掉,不然只要你關閉shell工具,服務也就自然停止了。

停止腳本

stop.sh:

#!/bin/sh
tpid=`cat tpid | awk '{print $1}'`
if [ ${tpid} ]; then
 tpid=`ps -aef | grep $tpid | awk '{print $2}' |grep $tpid`
 if [ ${tpid} ]; then
  kill -9 $tpid
 fi
fi
> tpid

測試使用

啓動

進入start.sh所在目錄,一般從遠程拷到服務器上的文件是沒有執行權限的,所以我們先給文件添加執行權限。

chmod +x start.sh

順便把stop.sh的權限也加了。

chmod +x stop.sh

然後啓動腳本:

./start.sh

同級目錄下會生成info.log文件,裏面有啓動信息。
查看info.log,看下端口是多少:

這裏寫圖片描述

圖(5)

很明顯,也是1017端口。
我們只需在license server address填入服務器地址和端口就行了。
如果有域名的話,可以通過nginx把域名+/idea映射到1017端口下,我就是這樣做的(具體操作這裏就不多說了,搜一下nginx的nginx.conf就行了)。
最新版已經不支持激活地址中帶有端口號了,一定要用nginx的80端口做一下映射。
這裏寫圖片描述

圖(6)

停止

./stop.sh

這沒什麼好說的。

自定義參數

我們可以在IntelliJIDEALicenseServer_linux_amd64後面接一些參數搭建只屬於自己的服務器。

-l 指定綁定監聽到哪個IP(私人用)
-u 用戶名參數,當未設置-u參數,且計算機用戶名爲^[a-zA-Z0-9]+$時,使用計算機用戶名作爲idea用戶名
-p 參數,用於指定監聽的端口
-prolongationPeriod 指定過期時間參數,一般不設置

舉個例子:

IntelliJIDEALicenseServer_linux_amd64 -p 1000 -u ooo

這樣你的激活端口就變成了1000,而且註冊信息會顯示Your copy licensed to ooo,這裏-u後面不支持中文,我測過了。

服務器主頁

我們可以在啓動文件(比如linux就是IntelliJIDEALicenseServer_linux_amd64windows就是IntelliJIDEALicenseServer_windows_amd64.exe)的同級目錄新建一個IntelliJIDEALicenseServer.html文件,那麼在瀏覽器訪問服務器地址的時候,就會訪問到IntelliJIDEALicenseServer.html的內容,如果沒有IntelliJIDEALicenseServer.html,回訪not found字符串。
如果使用腳本文件啓動,比如start.sh,請把IntelliJIDEALicenseServer.html放在腳本文件的同級目錄。

關於2018.2.X

從2018.2.X 之後的版本要使用新版的授權服務器才能激活,我這邊也不是沒有激活,只是每次打開之後在Event log會收到Outdated License Server Detected提示,之前的版本是不受影響的。
詳情請看 https://www.jetbrains.com/license-server/outdated-ls/

我的授權服務器地址

如果你們嫌麻煩,不想自己搭,直接用https://idea.ouyanglol.com/ 就行了。

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