Điểm:0

80 cổng Kết nối bị từ chối

lá cờ cn

Tôi chưa quen với tường lửa Ubuntu và tôi có máy chủ Ubuntu 20.04.

Tất cả các cổng 8080, 81... đều có sẵn bên ngoài, nhưng khi tôi thử điện thoại IP 80 Tôi đã nhận được telnet: Không thể kết nối với máy chủ từ xa: Kết nối bị từ chối

trạng thái ufw dài dòng Là:

Trạng thái: Đang hoạt động
Ghi nhật ký: bật (thấp)
Mặc định: từ chối (đến), cho phép (đi), từ chối (được định tuyến)
Hồ sơ mới: bỏ qua

Đến hành động từ
-- ------ ----
80 CHO PHÉP Ở BẤT CỨ ĐÂU                  
80/tcp CHO PHÉP Ở mọi nơi                  
22/tcp CHO PHÉP Ở mọi nơi                  
4000 CHO PHÉP Ở mọi nơi                  
443 CHO PHÉP Ở MỌI ĐÂU                  
80/tcp (Nginx HTTP) CHO PHÉP Ở mọi nơi                  
81 CHO PHÉP VÀO BẤT KỲ NƠI NÀO                  
80 (v6) CHO PHÉP Ở Mọi ĐÂU (v6)             
80/tcp (v6) CHO PHÉP Ở mọi nơi (v6)             
22/tcp (v6) CHO PHÉP Ở Mọi Nơi (v6)             
4000 (v6) CHO PHÉP Ở Mọi nơi (v6)             
443 (v6) CHO PHÉP Ở Mọi Nơi (v6)             
80/tcp (Nginx HTTP (v6)) CHO PHÉP TRONG Anywhere (v6)             
81 (v6) CHO PHÉP Ở Mọi ĐÂU (v6)  

Những câu hỏi tương tự giúp tôi mở rộng kiến ​​thức về chủ đề này:

https://serverfault.com/questions/129086/how-to-start-stop-iptables-on-ubuntu

Kết nối cổng 80 bị từ chối

Liên kết cuối cùng hướng dẫn khởi động lại iptables, nhưng tôi hy vọng rằng tôi đã bỏ lỡ điều gì đó khác và tôi không phải khởi động lại iptables của mình.

Vui lòng hướng dẫn tôi nên làm gì tốt hơn trong tình huống này và cách nhận quyền truy cập công khai vào Máy chủ của tôi bằng cổng 80.

Cảm ơn rất nhiều vì sự hỗ trợ.

Andrej Podzimek avatar
lá cờ cn
Rõ ràng, khi bạn nhận được thông báo *kết nối bị từ chối*, thì cổng đó **không** bị chặn. (Ngoài ra, cài đặt tường lửa ngày nay được gọi là nftables (lệnh: `nft`), không phải iptables.) Bạn có chắc là có thứ gì đó đang lắng nghe trên cổng `80` của bạn không? Khi bạn xem `netstat -atpn`, cổng `80` của bạn có ở trạng thái `LISTEN` không? (Một lưu ý khác là bạn **không** cần sử dụng cổng `80` trong những ngày này, cổng `443` là đủ. Cổng `80`, khi sử dụng, chỉ nên chuyển hướng đến `https` trên cổng `443` để tương thích với các máy khách rất cũ.)
dos4dev avatar
lá cờ cn
Xin chào @AndrejPodzimek, `netstat -atpn` cho tôi kết quả tiếp theo `tcp6 0 0 127.0.0.1:80 :::* LISTEN 55264/java ` Tôi sử dụng 80 cho mục đích kiểm tra/tìm hiểu. Mình phải chuyển sang cổng 443, nhưng mình muốn hiểu tình hình này.
dos4dev avatar
lá cờ cn
@AndrejPodzimek bạn có thể vui lòng giải thích lý do tại sao tôi có thể kết nối cục bộ với máy chủ Java của mình nhưng không công khai không?
dos4dev avatar
lá cờ cn
Tôi cho rằng tôi sẽ gặp vấn đề tương tự với cổng 443 `tcp6 0 0 127.0.0.1:443 :::* LISTEN 55264/java ` Nó chỉ có sẵn tại địa phương.
Tilman avatar
lá cờ cn
Đáng tiếc là bạn đã không đưa ra lệnh chính xác mà bạn đã sử dụng. Tôi đoán nơi bạn đã viết `IP`, bạn thực sự đã sử dụng một địa chỉ IP. Địa chỉ đó có phải là `127.0.0.1` không? Bởi vì theo đầu ra `netstat` của bạn, đó là địa chỉ duy nhất mà máy chủ của bạn lắng nghe trên cổng 80.
dos4dev avatar
lá cờ cn
Xin chào @Tilman Tôi không biết cách che dấu địa chỉ IP thực của mình trong câu hỏi. Đối với telnet, tôi đã sử dụng địa chỉ IP thực của mình.
dos4dev avatar
lá cờ cn
@AndrejPodzimek xin lỗi vì câu hỏi giả. Điều đó có nghĩa là tôi phải điều chỉnh ứng dụng Java của mình phải không? Tôi muốn tránh nó vì tôi không có nhiều quyền truy cập vào ứng dụng java.
Andrej Podzimek avatar
lá cờ cn
`::1` sẽ là địa chỉ chỉ có `localhost`. Đầu ra `netstat` hiển thị ổ cắm `tcp6` (tức làngăn xếp kép, như lẽ ra) đang lắng nghe địa chỉ `localhost` đã lỗi thời từ một thử nghiệm thất bại năm 1975 có tên là IPv4, [làm tổn thương Internet](https://docs.google.com/document/d/1YgiM5K16mlRWwqf6DNKU3--IkmtEViyN72MADgTPcZs /). Để lắng nghe trên một giao diện cụ thể, hãy `bind()` (hoặc xây dựng) [`ServerSocket`](https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java /net/ServerSocket.html) bằng một trong các địa chỉ của giao diện. Để nghe địa chỉ _any_, `bind()` đến địa chỉ *ký tự đại diện* `::`.
Andrej Podzimek avatar
lá cờ cn
@ dos4dev Điều này phụ thuộc vào địa chỉ đến từ đâu. Nếu nó được lập trình sẵn trong mã, bạn có thể cần phải sửa đổi mã. Nếu nó đến từ tệp cấu hình, thì chỉ cần chỉnh sửa tệp cấu hình và đặt (ví dụ:) `::` làm địa chỉ để nghe. Nhân tiện, tài liệu cho biết: *Nếu `bindAddr` là `null`, nó sẽ mặc định chấp nhận các kết nối trên bất kỳ/tất cả các địa chỉ cục bộ.* Tuy nhiên, nếu ứng dụng luôn sử dụng một chuỗi địa chỉ nào đó (ví dụ: từ tệp cấu hình), thì bạn có thể cần chỉ định rõ ràng `::`.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.