2
如何欺騙Java RMI從外部本地主機訪問而無需對IP進行硬編碼?如何欺騙Java RMI/JMX從外部本地主機訪問而無需對IP進行硬編碼?
如何欺騙Java RMI從外部本地主機訪問而無需對IP進行硬編碼?如何欺騙Java RMI/JMX從外部本地主機訪問而無需對IP進行硬編碼?
由於無法將RMI綁定到0.0.0.0,因此解決方案是檢測IP並使用它。
我用下面在Linux和OS X的解決方案:
IP=$(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
# if we have several IPs found, we pick the first one
for IP in $IP:
do
break
done
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=8081 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=${IP} "
顯然,這對其進行配置不安全的方式,但你可以自由地調整它來滿足您的需求。
將RMI綁定到0.0.0.0是不可能的。這正是它默認的做法。這也是無關緊要的。 -1 – EJP
你爲什麼認爲RMI不能從其他主機訪問?你確定你沒有將RMI綁定與防火牆規則混淆? – chrylis