感谢
首先说明,服务器文件不是我写的,我也是从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
- 1
- 2
- 3
- 4
- 5
- 6
这里 ../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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
测试使用
启动
进入start.sh
所在目录,一般从远程拷到服务器上的文件是没有执行权限的,所以我们先给文件添加执行权限。
chmod +x start.sh
- 1
顺便把stop.sh
的权限也加了。
chmod +x stop.sh
- 1
然后启动脚本:
./start.sh
- 1
同级目录下会生成info.log
文件,里面有启动信息。
查看info.log,看下端口是多少:
很明显,也是1017端口。
我们只需在license server address
填入服务器地址和端口就行了。
如果有域名的话,可以通过nginx把域名+/idea映射到1017端口下,我就是这样做的(具体操作这里就不多说了,搜一下nginx的nginx.conf就行了)。
停止
./stop.sh
- 1
这没什么好说的。
自定义参数
我们可以在IntelliJIDEALicenseServer_linux_amd64
后面接一些参数搭建只属于自己的服务器。
-l 指定绑定监听到哪个IP(私人用)
-u 用户名参数,当未设置-u参数,且计算机用户名为^[a-zA-Z0-9]+$时,使用计算机用户名作为idea用户名
-p 参数,用于指定监听的端口
-prolongationPeriod 指定过期时间参数,一般不设置
- 1
- 2
- 3
- 4
- 5
举个例子:
IntelliJIDEALicenseServer_linux_amd64 -p 1000 -u ooo
- 1
- 2
这样你的激活端口就变成了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
放在脚本文件的同级目录。
我的授权服务器地址
如果你们嫌麻烦,不想自己搭,直接用https://idea.ouyanglol.com/ 就行了。