From time to time I have to connect to the Internet in public workspaces and wifi zones, that is why I am trying to keep an eye on what ports are reachable on my laptop from outside.
Here is my finding regarding LiClipse:
$ nmap -T4 -p1-65535 192.168.1.4
Starting Nmap 7.01 ( https://nmap.org ) at 2016-07-22 12:34 EEST
Nmap scan report for 192.168.1.4
Host is up (0.00010s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE
22/tcp open ssh
45594/tcp open unknown
$ sudo netstat -tulnp | grep -w -e 45594
tcp6 0 0 :::45594 :::* LISTEN 1637/java
$ ps -f 1637 | cat
UID PID PPID C STIME TTY STAT TIME CMD
oleksiy 1637 4764 23 12:31 ? Sl 2:26 /opt/liclipse/jre/bin/java -Xms40m -Xmx512m -Declipse.p2.unsignedPolicy=allow -Declipse.log.size.max=10000 -Declipse.log.backup.max=5 -Dpydev.funding.hide=1 -Dliclipsetext.funding.hide=1 -Dfile.encoding=UTF-8 -Djava.awt.headless=true -jar /opt/liclipse//plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar -data file:/home/oleksiy/Private/workspace/ -os linux -ws gtk -arch x86_64 -showsplash -launcher /opt/liclipse/LiClipse -name LiClipse --launcher.library /opt/liclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444/eclipse_1617.so -startup /opt/liclipse//plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar --launcher.overrideVmargs -exitdata 11a800a -vm /opt/liclipse/jre/bin/java -vmargs -Xms40m -Xmx512m -Declipse.p2.unsignedPolicy=allow -Declipse.log.size.max=10000 -Declipse.log.backup.max=5 -Dpydev.funding.hide=1 -Dliclipsetext.funding.hide=1 -Dfile.encoding=UTF-8 -Djava.awt.headless=true -jar /opt/liclipse//plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
To doublecheck that the reason is pure LiClipse I removed extra plugins (Vrapper, Colorer), but the port is still open, not 45594 all times, but a random one each time LiClipse restarts. I tried to connect to and send random data and got no response.
Can someone come up with a guess regarding which part of LiClipse functionality this open TCP port relates to, and why it shouldn't be closed by default as a potential security attack endpoint?
PyDev (which LiClipse includes) creates a port which is used to communicate with a spawned Python shell used to get code-completion information. You can see its code at: https://github.com/fabioz/Pydev/blob/bbe7874a527a583c5214ade594f45d4cc35d3ab7/plugins/org.python.pydev/src_completions/org/python/pydev/editor/codecompletion/shell/AbstractShell.java