1. 程式人生 > >自己搭建IntelliJ IDEA授權伺服器

自己搭建IntelliJ IDEA授權伺服器

感謝

首先說明,伺服器檔案不是我寫的,我也是從lanyu大神那裡搬過來的。我這裡只是詳細介紹一下如何使用。
lanyu大神部落格:http://blog.lanyus.com/archives/174.html

下載伺服器檔案

本地授權

  • 找到對應系統的檔案,以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)**

啟動和停止指令碼

啟動指令碼

#!/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工具,服務也就自然停止了。

停止指令碼

#!/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

從2018.2.X 之後的版本要使用新版的授權伺服器才能啟用,2018.2只是每次開啟之後在Event log會收到Outdated License Server Detected提示,但是不影響使用。
詳情請看 https://www.jetbrains.com/license-server/outdated-ls/。

2018.2.x

從2018.2.1開始,Lisense Sever的破解方式已經不能用了,新的破解方法請見:
IDEA2018.2.X破解方法

我的授權伺服器地址

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