intellij

感谢

首先说明,服务器文件不是我写的,我也是从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封杀了,所以我们要把它映射为其他地址。

    intellij

    图(1)

  • 运行natapp.exe

    intellij

    图(2)

    图(2)红色框中地址就是你1017端口对应的外网地址,这个地址不会被封。

  • 在授权窗口填入对应地址。

    intellij

    图(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%。

intellij

图(4)

启动和停止脚本

启动脚本

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目录里面,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
  • 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,看下端口是多少:

intellij

图(5)

很明显,也是1017端口。
我们只需在license server address填入服务器地址和端口就行了。
如果有域名的话,可以通过nginx把域名+/idea映射到1017端口下,我就是这样做的(具体操作这里就不多说了,搜一下nginx的nginx.conf就行了)。
intellij

图(6)

停止

./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_amd64windows就是IntelliJIDEALicenseServer_windows_amd64.exe)的同级目录新建一个IntelliJIDEALicenseServer.html文件,那么在浏览器访问服务器地址的时候,就会访问到IntelliJIDEALicenseServer.html的内容,如果没有IntelliJIDEALicenseServer.html,回访not found字符串。
如果使用脚本文件启动,比如start.sh,请把IntelliJIDEALicenseServer.html放在脚本文件的同级目录。

我的授权服务器地址

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

上一篇:Spring Boot中使用LDAP来统一管理用户信息


下一篇:开放分布式追踪(OpenTracing)入门与 Jaeger 实现