Làm thế nào để đóng hoặc (hủy liên kết?) Một cổng bị mở bởi một ứng dụng giả mạo?


19

Tôi đang sử dụng Fedora 13 64 bit. Chương trình nhật thực của tôi khởi động một máy chủ trên cổng 9050 nhưng tôi tắt chương trình, nhật thực không tắt máy chủ đúng cách. Khởi động lại nhật thực không có tác dụng.

Làm thế nào tôi có thể đóng hoặc hủy liên kết một cổng cưỡng bức từ dòng lệnh?

Tôi biết khởi động lại hoặc đăng xuất và bật lại sẽ xóa các cổng nhưng quá trình này chậm hơn nhiều đối với tôi. Tôi đang tìm cách buộc đóng cổng trong dòng lệnh.

Câu trả lời:


10

Cách duy nhất để đóng mạnh một cổng nghe là giết quá trình đang nghe trên đó. Sử dụng lsof, netstat, fuser- như là người chủ - để tìm hiểu quá trình ID. Khi quá trình thoát (tự nó hoặc bị giết), kernel sẽ tự động dọn sạch tất cả các ổ cắm mà nó đã mở. (Tuy nhiên, có thể có trường hợp các chương trình sẽ bị từ chối nghe trên cùng một cổng trong vài phút; trong trường hợp này, tất cả những gì bạn có thể làm là chờ đợi.)


19
lsof -n -i

Tìm quá trình bạn đang tìm kiếm và giết nó.

Từ lsofhướng dẫn :

-n Tùy chọn này ngăn chặn việc chuyển đổi số mạng thành tên máy chủ cho các tệp mạng. Ức chế chuyển đổi có thể làm cho lsof chạy nhanh hơn. Nó cũng hữu ích khi tra cứu tên máy chủ không hoạt động đúng.

-i [i] Tùy chọn này chọn danh sách các tệp mà bất kỳ địa chỉ Internet nào khớp với địa chỉ được chỉ định trong i. Nếu không có địa chỉ được chỉ định, tùy chọn này sẽ chọn danh sách của tất cả các tệp mạng Internet và x.25 (HP-UX).

Tôi nghĩ rằng cùng một câu trả lời cho câu hỏi này .


7
Ném vào | grep ":9050"(hoặc bất kỳ số cổng nào) để dễ dàng lọc đầu ra
isaacparrot

9

Bạn có thể sử dụng fuserlệnh với công -ktắc.

Ví dụ: để đóng cổng 111, bạn có thể thực hiện các thao tác sau: fuser -k 111/tcp (điều này cũng giúp bạn tránh được rắc rối khi tìm ID của quy trình để giết nó như trình giả mạo thực hiện trong ngầm)

Lưu ý rằng một số quy trình tự động khởi động lại sau khi đóng. Để làm được điều đó, bạn cần kiểm tra tệp cấu hình của mỗi tiến trình để đưa ra cách giải quyết phù hợp.


-3

Tôi gặp vấn đề tương tự, chỉ cần tìm quá trình whicj đang nghe cổng đó bằng lệnh cmd trên windows

netstat -a -b

sau đó bạn có thể tắt nó với trình quản lý tác vụ


2
Xin lỗi, tôi đã đánh giá thấp. Bạn đề cập đến "trên Windows". Tham số "-b" cho netstat, hiển thị tên thực thi, dành riêng cho Microsoft Windows. (Các biến thể Unix netstat có thể có chức năng tương tự, nhưng thường không sử dụng cùng tham số đó.) Tuy nhiên, câu hỏi cho biết "Fedora", vì vậy người hỏi của câu hỏi này đang tìm kiếm thông tin về Fedora 13 64bit, một hệ điều hành khác. Trang con người của netstat cho Fedora chỉ ra rằng việc sử dụng -phiển thị PID (có thể được sử dụng để xác định tên của tệp thực thi).
TẤT CẢ NGÀY

1
Có một vài sai lầm trong câu trả lời này. Câu trả lời có lỗi ngữ pháp có thể tránh được. Câu trả lời cũng không được áp dụng cho Fedora, được đề cập rõ ràng, trong câu đầu tiên của câu hỏi. Nó không giống như câu hỏi không chứa thông tin này khi câu trả lời này đã được gửi 30 phút trước, câu hỏi chưa được chỉnh sửa kể từ tháng 7 năm 2011, mà gần 5 năm trước. Vì vậy, tôi đang sử dụng câu trả lời này cho nó là gì, một câu trả lời "tôi cũng vậy", rất hiếm khi thực sự hữu ích.
Ramhound
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.