感謝
首先說明,服務器文件不是我寫的,我也是從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%。
啓動和停止腳本
啓動腳本
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
目錄裏面,bin
和IntelliJIDEALicenseServer_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,看下端口是多少:
很明顯,也是1017端口。
我們只需在license server address
填入服務器地址和端口就行了。
如果有域名的話,可以通過nginx把域名+/idea映射到1017端口下,我就是這樣做的(具體操作這裏就不多說了,搜一下nginx的nginx.conf就行了)。
最新版已經不支持激活地址中帶有端口號了,一定要用nginx的80端口做一下映射。
停止
./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_amd64
,windows
就是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/ 就行了。