在服务器端,我添加了一个 jstatd.policy
文件:
grant codebase "jrt:/jdk.jstatd" {
permission java.security.AllPermission;
};
grant codebase "jrt:/jdk.internal.jvmstat" {
permission java.security.AllPermission;
};
并像这样启动 jstatd:
nohup /usr/local/jdk/bin/jstatd -J-Djava.security.policy=./jstatd.policy -J-Djava.rmi.server.hostname=0.0.0.0 &
然后我添加了到远程服务器的端口映射,当我在本地机器上使用visualVM连接远程服务器时,UI中没有java进程,也没有错误输出。那么问题出在哪里呢?我应该怎么做才能连接到远程服务器并监视 java 进程?这是我的 Java 信息:
[root@izbp19pke6x0v6ruecuy1yz dolphin-post]# java -version
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
我正在使用此命令检查端口:
[root@izbp19pke6x0v6ruecuy1yz ~]# lsof -i:1099
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
jstatd 25772 root 9u IPv4 172005438 0t0 TCP *:rmiregistry (LISTEN)
并扫描我本地机器上的端口:
$ nmap -p 1099 12.96.19.23 ‹ruby-2.7.2›
Starting Nmap 7.80 ( https://nmap.org ) at 2021-07-02 22:12 CST
Nmap scan report for postgres.dolphin.com (12.96.19.23)
Host is up (0.021s latency).
PORT STATE SERVICE
1099/tcp open rmiregistry
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
似乎端口没有映射到互联网,但我确定我已经配置了防火墙来打开端口。