为什么 PerfMon Server Agent 只监听 tcp6?
Why PerMon Sever Agent listens only on tcp6?
通过执行以下命令在服务器上启动代理
$ ./startAgent.sh
INFO 2018-03-27 18:31:04.981 [kg.apc.p] (): Binding UDP to 4444
INFO 2018-03-27 18:31:05.982 [kg.apc.p] (): Binding TCP to 4444
INFO 2018-03-27 18:31:05.986 [kg.apc.p] (): JP@GC Agent v2.2.0 started
使用 telnet
从其他服务器检查它与此代理的连接
$ telnet 192.168.1.31 4444
Could not open connection to the host, on port 4444:Connect failed
如果使用 ipv6 而不是 ipv4,它可以连接到该端口。
$ telnet fe80::250:56ff:xxxx:xxxx 4444
检查地址和端口,它只监听tcp6,所以ipv6可以连接,ipv4不能。
$netstat -ano|grep 4444
tcp6 0 0 :::4444 :::* LISTEN off (0.00/0/0)
udp6 0 0 :::4444 :::* off (0.00/0/0)
我的问题是为什么服务器代理只监听 tcp6:4444?
有什么办法可以让他监听ipv4吗?
修改 startAgent.sh
文件并添加 -Djava.net.preferIPv4Stack=true
行,使其看起来像:
#!/bin/sh
java -Djava.net.preferIPv4Stack=true -jar $(dirname [=10=])/CMDRunner.jar --tool PerfMonAgent "$@"
为了与 JMeter 玩同样的把戏,将类似的行添加到 user.properties 文件(位于 JMeter 安装的 "bin" 文件夹中)
java.net.preferIPv4Stack=true
参考文献:
通过执行以下命令在服务器上启动代理
$ ./startAgent.sh
INFO 2018-03-27 18:31:04.981 [kg.apc.p] (): Binding UDP to 4444
INFO 2018-03-27 18:31:05.982 [kg.apc.p] (): Binding TCP to 4444
INFO 2018-03-27 18:31:05.986 [kg.apc.p] (): JP@GC Agent v2.2.0 started
使用 telnet
从其他服务器检查它与此代理的连接$ telnet 192.168.1.31 4444
Could not open connection to the host, on port 4444:Connect failed
如果使用 ipv6 而不是 ipv4,它可以连接到该端口。
$ telnet fe80::250:56ff:xxxx:xxxx 4444
检查地址和端口,它只监听tcp6,所以ipv6可以连接,ipv4不能。
$netstat -ano|grep 4444
tcp6 0 0 :::4444 :::* LISTEN off (0.00/0/0)
udp6 0 0 :::4444 :::* off (0.00/0/0)
我的问题是为什么服务器代理只监听 tcp6:4444? 有什么办法可以让他监听ipv4吗?
修改 startAgent.sh
文件并添加 -Djava.net.preferIPv4Stack=true
行,使其看起来像:
#!/bin/sh
java -Djava.net.preferIPv4Stack=true -jar $(dirname [=10=])/CMDRunner.jar --tool PerfMonAgent "$@"
为了与 JMeter 玩同样的把戏,将类似的行添加到 user.properties 文件(位于 JMeter 安装的 "bin" 文件夹中)
java.net.preferIPv4Stack=true
参考文献: