Tôi có một máy chủ ubuntu mà tôi đã triển khai bộ chứa docker đang chạy một số ứng dụng. Đối với một số thử nghiệm tôi cần, tôi đã thêm một mục nhập iptables trong máy ubuntu - để định tuyến lưu lượng truy cập từ cổng 443 đến cổng 8443. Thực hiện như sau:
sudo iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443
Bây giờ, tôi thấy rằng ứng dụng tôi đang chạy bên trong bộ chứa docker đang gặp phải một số vấn đề lớn hơn. Ví dụ: bản thân ứng dụng gọi một số dịch vụ bên ngoài khác qua ssl. Điều đó hiện đang thất bại. Báo lỗi cho tôi: Đã hết thời gian kết nối với ***.abc.com:443. Tôi biết rằng dịch vụ bên ngoài này đang hoạt động từ các máy khác có cấu hình tương tự.
Tôi gặp sự cố tương tự với các dịch vụ bên ngoài khác mà ứng dụng của tôi đang cố gắng tiếp cận qua ssl.
Có vẻ như tôi đã làm hỏng điều gì đó với lệnh iptables ở trên. Do đó, tôi đã tra cứu một chút và thử như sau:
Sudo iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 443
sudo iptables -D PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443
Tôi nghĩ rằng dòng đầu tiên sẽ đảm bảo tất cả lưu lượng truy cập đến cổng 443 thực sự đi đến cổng 443 và dòng thứ 2 sẽ hoàn tác mục nhập iptables mà tôi đã thêm trước đó.
Tôi cũng đã thử khởi động lại dịch vụ iptables. (Vì mình không lưu mục iptables)
Tuy nhiên, tôi vẫn thấy vấn đề được đề cập ở trên. Tôi không hiểu tại sao nó lại ảnh hưởng đến lưu lượng truy cập từ trong vùng chứa docker của tôi ra thế giới bên ngoài.
Bất kỳ thông tin đầu vào nào về vấn đề là gì.
TIA - Ôm.