2011-08-23 20 views
8

JMX kích hoạt ứng dụng Java dường như mở một cổng trật tự cao ngẫu nhiên khi JMX client kết nối

Tôi đã cấu hình thành công một helloworld JMX kích hoạt chương trình, và Tôi có thể kết nối với nó bằng cách sử dụng jconsole JMX khách hàng từ một vị trí từ xa.JMX kích hoạt Java ứng dụng xuất hiện để mở một cổng trật tự cao ngẫu nhiên khi JMX client kết nối

Khi tôi cố gắng bật iptables, tôi nhận thấy rằng một cổng thứ tự cao ngẫu nhiên được thiết lập khi khách hàng đăng nhập. Cuối cùng tôi muốn theo dõi các ứng dụng Java trong các đoạn mạng tách biệt tường lửa. Chúng ta có thể kiểm soát phạm vi cổng ngẫu nhiên mở ra không?

Tôi sẽ chuyển câu hỏi này đến serverfault.com nếu được đề xuất.

+1

Cổng được thiết lập trên máy khách hoặc máy chủ? Nếu trên máy khách, tôi cho rằng đó là cổng máy khách được gắn với cổng máy chủ ... – home

+0

Câu hỏi thú vị mà bạn đặt ra. Máy khách JMX kết nối với máy chủ JMX qua cổng được máy chủ xác định. Sau khi điều này xảy ra một cổng (ngẫu nhiên?) Mở ra và được sử dụng để giao tiếp. –

+0

Vì vậy, cổng này là trên máy khách hoặc trên máy chủ? – home

Trả lời

4

Có thể điều khiển cổng được sử dụng bởi RMI. Xem: http://olegz.wordpress.com/2009/03/23/jmx-connectivity-through-the-firewall/

Điều này yêu cầu mã và tham số dòng lệnh. Không có cách nào mà tôi biết để làm điều này mà không cần mã (mặc dù mã rõ ràng có thể được đóng gói trong một cái lọ khác).

+0

Tôi thấy bài đăng trên blog này hữu ích cũng như http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx –

6

Kể từ Java 7u25 cảng RMI có thể được thay đổi với một tài sản hệ thống:

-Dcom.sun.management.jmxremote.rmi.port=1234 

Xem this answer để biết chi tiết.

0

Một cách giải quyết là để thiết lập các cổng RMI giống như các cổng JMX; sau đó chỉ có một cổng cần được mở trên Tường lửa.

Ví dụ:

-Dcom.sun.management.jmxremote.port=8989 
-Dcom.sun.management.jmxremote.rmi.port=8989 

Xem Why Java opens 3 ports when JMX is configured?

Các vấn đề liên quan