เปิดพอร์ต 80 บนเซิร์ฟเวอร์ Ubuntu


18

ฉันเพิ่งเริ่มใช้งาน Ubuntu / Linux และมีปัญหาในการเปิดพอร์ต 80 สำหรับการเชื่อมต่อขาเข้า

ฉันรันsudo ufw allow 80/tcpคำสั่งและเมื่อฉันรันsudo ufw statusผลลัพธ์จะมีลักษณะเช่นนี้:

Status: active

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

อย่างไรก็ตามฉันยังคงได้รับข้อผิดพลาดนี้เมื่อพยายามเชื่อมต่อกับพอร์ตด้วย cURL

ไม่สามารถเชื่อมต่อกับพอร์ต MY_IP_ADDRESS 80: การเชื่อมต่อถูกปฏิเสธ

เมื่อฉันรันคำสั่งนี้netstat -ntlp | grep LISTENเพื่อดูว่าพอร์ตใดที่เปิดอยู่ฉันจะได้ผลลัพธ์นี้:

(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      -         

ซึ่งไม่ได้ดูเหมือนว่ามีแนวโน้ม ..

ฉันจะเปิดพอร์ต 80 สำหรับการเชื่อมต่อขาเข้าได้อย่างไร

คำตอบ:


12

ไม่มีโปรแกรมที่ฟังบนพอร์ต 80 ดังนั้นจึงปิดและคุณไม่สามารถเชื่อมต่อได้

คุณสามารถใช้ได้

sudo python -m SimpleHTTPServer 80

เพื่อเริ่มเว็บเซิร์ฟเวอร์แบบง่าย ๆ ฟังที่พอร์ต 80 หรือติดตั้งบางอย่างเช่น Apache (แพ็คเกจapache2) หากคุณต้องการเว็บเซิร์ฟเวอร์แบบเต็ม


8

UFWเป็นที่ไม่ซับซ้อน Firewall มันจัดการสิ่งที่พอร์ตบนคอมพิวเตอร์ของคุณสามารถเปิดฟังได้โดยแอปพลิเคชัน sudo ufw allow 80/tcpวิธีการอนุญาตให้ TCPการเชื่อมต่อกับพอร์ต 80

อย่างไรก็ตามไม่มีอะไรฟังที่อยู่เบื้องหลังพอร์ตจริงๆ ไปcurlยังพอร์ตควรมีแอปพลิเคชันที่จะส่งคำตอบ โดยทั่วไปเรียกว่าเซิร์ฟเวอร์ ในฐานะที่เป็นจุด @Florian ออกคุณสามารถใช้Python 's SimpleHTTPServerเพื่อทดสอบ


เป็นการถาวรหรือไม่
Marcelo Filho

5

สิ่งที่ดีสำหรับฉันคือการใช้ iptable

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

2
ตามบันทึกนี้ไม่ถาวร จะรีเซ็ตเมื่อรีบูต
Oliver Dixon

@OliverDixon ใช่ถูกต้อง
azerafati

5

ใช้:

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

จากนั้นเพื่อป้องกันไม่ให้สูญเสียการกำหนดค่า iptables เมื่อรีสตาร์ทให้ใช้:

sudo apt-get install iptables-persistent

3
นี่จะเป็นการแก้ไขคำตอบที่ยอดเยี่ยมลงวันที่ 4/2016
Charles Green

2

คุณสามารถใช้sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTสิ่งนี้ยอมรับพอร์ตเมื่อมันตั้งค่ากับพอร์ตเพื่อป้องกันการสูญเสียบรรทัดของเทอร์มินัลของรหัสที่คุณสามารถใช้sudo apt-get install iptables-persistent เหตุผลสำหรับ sudo ในการเริ่มต้นของคำสั่งนี้คือให้มันทำงานเป็น superuser ไปยังพอร์ตที่ให้มา คุณสามารถใช้คุณสามารถใช้ Python SimpleHTTPServerเพื่อทดสอบมันได้! นี่เป็นคำถามที่ยอดเยี่ยม! ขอขอบคุณ!


0

มันใช้งานได้สำหรับฉันแค่อนุญาต 80 จาก iptables

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.