Mở cổng 80 trên máy chủ Ubuntu


17

Tôi mới bắt đầu sử dụng Ubuntu / Linux và gặp một số khó khăn khi mở cổng 80 cho các kết nối đến.

Tôi đã chạy sudo ufw allow 80/tcplệnh và khi tôi chạy sudo ufw statuskết quả trông như thế này:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)

Tuy nhiên, tôi vẫn gặp lỗi này khi cố gắng kết nối với cổng bằng cURL.

Không thể kết nối với cổng MY_IP_ADDRESS 80: Kết nối bị từ chối

Khi tôi chạy lệnh này netstat -ntlp | grep LISTENđể xem cổng nào đang mở, tôi nhận được kết quả này:

(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -         

Điều đó không có vẻ hứa hẹn ..

Làm cách nào để mở cổng 80 cho các kết nối đến?

Câu trả lời:


12

Không có chương trình nghe trên cổng 80 nên nó đã đóng và bạn không thể kết nối với nó.

Bạn có thể dùng

sudo python -m SimpleHTTPServer 80

để bắt đầu một máy chủ web đơn giản lắng nghe trên cổng 80 hoặc cài đặt một cái gì đó như Apache (gói apache2) nếu bạn muốn một máy chủ web đầy đủ.


7

UFW Tường lửa không biến chứng . Nó quản lý những cổng nào trên máy tính của bạn có thể được mở để nghe bởi một ứng dụng. sudo ufw allow 80/tcpcó nghĩa là cho phépkết nối TCP tới cổng 80 .

Tuy nhiên, không có gì thực sự lắng nghe đằng sau cổng. Đến curlcổng, cần có một ứng dụng sẽ gửi trả lời. Điều này thường được gọi là một máy chủ. Như điểm @Florian ra, bạn có thể sử dụng PythonSimpleHTTPServerđể kiểm tra nó.


cái này có vĩnh viễn không?
Marcelo Filho

5

Vâng, những gì làm việc cho tôi là sử dụng iptable

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

1
Như một lưu ý này không phải là vĩnh viễn. Sẽ thiết lập lại khi khởi động lại.
Oliver Dixon

@OliverDixon, đúng rồi
azerafati

4

Sử dụng:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Sau đó, để ngăn nó mất cấu hình iptables khi khởi động lại, hãy sử dụng:

sudo apt-get install iptables-persistent

3
Đây sẽ là một chỉnh sửa tuyệt vời cho câu trả lời ngày 4/2016
Charles Green

1

bạn có thể sử dụng sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTcổng này để chấp nhận cổng khi cấu hình với cổng để tránh mất dòng mã đầu cuối này, bạn có thể sử dụng sudo apt-get install iptables-persistent Lý do để sudo trong việc xin lệnh là để cho nó chạy như siêu người dùng liên tục sử dụng nó như một kết nối liên tục đến cổng được cung cấp. Bạn cũng có thể sử dụng bạn có thể sử dụng Python SimpleHTTPServerđể kiểm tra nó! Đây là một câu hỏi tuyệt vời! Cảm ơn bạn!


0

Điều này làm việc cho tôi Chỉ cho phép 80 từ iptables

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.