netstat -tulnap
แสดงให้ฉันเห็นว่าพอร์ตใดที่ใช้งานอยู่ จะเพิ่มพอร์ตใน Linux ได้อย่างไร
netstat -tulnap
แสดงให้ฉันเห็นว่าพอร์ตใดที่ใช้งานอยู่ จะเพิ่มพอร์ตใน Linux ได้อย่างไร
คำตอบ:
อย่างที่คนอื่นพูดคุณจะต้องฆ่ากระบวนการทั้งหมดที่กำลังฟังบนพอร์ตนั้น วิธีที่ง่ายที่สุดในการทำเช่นนั้นคือใช้คำสั่ง fuser (1) ตัวอย่างเช่นหากต้องการดูกระบวนการทั้งหมดที่รับฟังคำขอ http บนพอร์ต 80 (เรียกใช้เป็นรูทหรือใช้ sudo):
# fuser 80/tcp
หากคุณต้องการที่จะฆ่าพวกเขาเพียงแค่เพิ่มตัวเลือก -k
sudo yum install psmisc
)
kill -9 $(fuser 80/tcp 2>/dev/null)
หากต้องการฆ่าพอร์ตเฉพาะใน Linux ให้ใช้คำสั่งด้านล่าง
sudo fuser -k Port_Number/tcp
แทนที่ Port_Number ด้วยพอร์ตที่คุณใช้งานอยู่
คุณสามารถใช้tcpkill
(ส่วนหนึ่งของdsniff
แพ็คเกจ) เพื่อฆ่าการเชื่อมต่อที่อยู่ในพอร์ตที่คุณต้องการ:
sudo tcpkill -9 port PORT_NUMBER
$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
ในประเภทอาคาร:
netstat -anp|grep "port_number"
มันจะแสดงรายละเอียดพอร์ต ไปที่คอลัมน์สุดท้าย มันจะอยู่ในรูปแบบนี้ ตัวอย่างเช่น: - PID / java
จากนั้นดำเนินการ:
kill -9 PID. Worked on Centos5
สำหรับ MAC:
lsof -n -i :'port-number' | grep LISTEN
การตอบสนองตัวอย่าง:
java 4744 (PID) test 364u IP0 asdasdasda 0t0 TCP *:port-number (LISTEN)
แล้วดำเนินการ:
kill -9 PID
ทำงานบน Macbook
sudo netstat
จริงเห็น PIDs :) ความ
"netstat --programs"
คำสั่งจะให้ข้อมูลกระบวนการสมมติว่าคุณกำลังราก จากนั้นคุณจะต้องฆ่ากระบวนการ "โจมตี" ซึ่งอาจเริ่มต้นใหม่อีกครั้งเพียงเพื่อรบกวนคุณ :-)
คุณพยายามทำอะไรที่นี่จริง ๆ ? โซลูชั่นจะแตกต่างกันไปตามกระบวนการที่ถือพอร์ตเหล่านั้น
วิธีตรวจสอบพอร์ตทั้งหมด:
netstat -lnp
วิธีปิดพอร์ตที่เปิดอยู่:
fuser -k port_no/tcp
ตัวอย่าง:
fuser -k 8080/tcp
ในทั้งสองกรณีคุณสามารถใช้sudo
คำสั่งหากจำเป็น
ฆ่ากระบวนการที่กำลังฟังพอร์ตที่เป็นปัญหา ฉันเชื่อว่า netstat แสดงรหัสกระบวนการให้คุณ
หากคุณต้องการที่จะฆ่ากระบวนการทันทีคุณส่งสัญญาณ KILL แทนสัญญาณ TERM (การร้องขอหลังหยุดการทำงานครั้งแรกจะมีผลทันทีโดยไม่มีการล้างข้อมูลใด ๆ ) มันง่ายที่จะทำ:
kill -KILL <pid>
โปรดทราบว่าขึ้นอยู่กับโปรแกรมที่คุณหยุดสถานะอาจได้รับความเสียหายอย่างรุนแรงเมื่อทำเช่นนั้น โดยปกติคุณต้องการส่งสัญญาณ KILL เมื่อการเลิกจ้างปกติไม่ทำงาน ฉันสงสัยว่าปัญหาพื้นฐานคืออะไรที่คุณพยายามแก้ไขและการฆ่าเป็นทางออกที่ถูกต้องหรือไม่
ฉันคิดว่าวิธีเดียวที่จะหยุดกระบวนการที่ได้เปิดพอร์ต
sudo killall -9 "ชื่อกระบวนการ"
การปิดเครื่องคอมพิวเตอร์จะฆ่ากระบวนการสำหรับฉันทุกครั้ง