Tôi cũng vừa theo dõi vấn đề này. Các triệu chứng của tôi giống hệt như của bạn và tôi thậm chí đã thử những thứ chính xác mà bạn đã thử. Tóm lại, sự cố của tôi chỉ xảy ra vì tôi đang sử dụng tomcat trên centos với SELinux.
Một số người đã giúp tôi chẩn đoán bằng cách sử dụng các lệnh sau để xem các sự kiện bảo mật và lý do tại sao một số hành động không được phép:
sudo ausearch -m avc
sudo grep "tcp_socket" /var/log/audit/audit.log | audit2why // translates log into some human readable reasons why the audit record was generated
Tôi thấy các mục như:
Và sau đó tìm thấy bài viết này về tomcat và SELinux https://noobient.com/post/165972214381/selinux-woes-with-tomcat-on-centos-74
Bạn có thể chạy lệnh sau để xem tomcat có đang chạy trong ngữ cảnh bảo mật tomcat_t hay không.
$ps auxZ | grep tomcat
Với mục đích thực sự xác định xem lỗi của tôi có phải là SELinux hay không, tôi đã tắt SELinux
$ sestatus // shows: SELinux status: enabled
$ sudo vim /etc/selinux/config // set "SELINUX=disabled"
$ sudo shutdown -r now
$ sestatus // shows: SELinux status: disabled
đã khởi động lại máy của tôi và thấy rằng tomcat hiện đang tạo kết nối ra ngoài.
Tuyệt vời, bây giờ ít nhất tôi biết TẠI SAO điều đó lại xảy ra. Tất nhiên nếu bạn cần SELinux, thì việc tắt nó KHÔNG phải là một giải pháp. Một giải pháp khác có lẽ không phải là giải pháp là cài đặt tomcat mà không cần thông qua yum. Yum sẽ cài đặt tomcat bằng ngữ cảnh bảo mật.
Tôi nghĩ hành động bây giờ là sửa đổi bối cảnh bảo mật hoặc bộ quy tắc quản lý tomcat để cho phép tomcat thực hiện các kết nối đi.