Điểm:6

Làm cách nào để biết dịch vụ nào đang lắng nghe trên một cổng cụ thể của máy chủ Ubuntu mà không cần id quá trình?

lá cờ in

Tôi đã quyết định đăng câu hỏi này mặc dù có rất nhiều câu hỏi tương tự, nhưng không ai trong số họ trả lời câu hỏi của tôi.

  1. Tôi định kỳ kiểm tra các cổng mà máy chủ của tôi lắng nghe.
  2. Hệ điều hành Ubuntu của tôi bằng đầu ra của lsb_relase -a:
ID nhà phân phối: Ubuntu
Mô tả: Ubuntu 20.04.3 LTS
Phát hành: 20.04
Tên mã: tiêu cự
  1. Tôi chạy lệnh netstat -tulpn4 và đầu ra hiển thị một cổng không xác định:
tcp 0 0 127.0.0.53:53 0.0.0.0:* NGHE 580/systemd-resolve 
tcp 0 0 0.0.0.0:62176 0.0.0.0:* NGHE 900/sshd: /usr/sbin 
tcp 0 0 0.0.0.0:1122 0.0.0.0:* NGHE 1158/sshd: tên người dùng    
tcp 0 0 0.0.0.0:3333 0.0.0.0:* NGHE 1158/sshd: tên người dùng    
udp 0 0 0.0.0.0:51820 0.0.0.0:* -                   
udp 0 0 127.0.0.53:53 0.0.0.0:* 580/systemd-resolve 
udp 0 0 X.X.X.X:1194 0.0.0.0:* 870/openvpn         
  1. Tôi đã sử dụng nhiều công cụ và hướng dẫn để tìm hiểu lý do tại sao máy chủ của tôi nghe trên cổng 51820 mà không tìm ra câu trả lời.
  2. Tôi đã thử:
    • sudo lsof -i :51820 - và có một đầu ra trống.
    • sudo netstat -ltnp | grep -w ':51820' - và có một đầu ra trống.
    • cầu chì sudo 51820/udp - và có một đầu ra trống.
    • sudo netstat -đậu phộng | grep ":51820" - đầu ra là:
udp 0 0 0.0.0.0:51820 0.0.0.0:* 0 26262 -                   
udp6 0 0 :::51820 :::* 0 26263 - 
  • sudo ss -nlp | grep 51820 đầu ra là:
udp UNCONN 0 0 0.0.0.0:51820 0.0.0.0:*                                                                                                     
udp UNCONN 0 0 [::]:51820 [::]:*  
  1. Tôi đã xem các câu trả lời sau và không tìm thấy giải pháp:

Sau khi tìm kiếm trên web về cổng 51820 Tôi phát hiện ra rằng đó là "bộ bảo vệ dây" mà tôi đã cài đặt đang nghe trên cổng đó, nhưng câu hỏi vẫn giống như trong bất kỳ lệnh nào tôi đã thử, tôi không thể tìm ra câu hỏi đó.

anx avatar
lá cờ fr
anx
liên quan: [bộ bảo vệ dây không nghe trên cổng](https://serverfault.com/questions/1015322/the-wireguard-not-listening-on-port-after-started)
CrazyTux avatar
lá cờ in
@anx tnx cho nhận xét của bạn, dịch vụ "bảo vệ dây" của tôi đang hoạt động tốt và các câu trả lời trong bài đăng liên quan vẫn không giải quyết được vấn đề của tôi trong việc phát hiện quá trình gây ra việc nghe cổng cụ thể bằng lệnh đầu cuối.
djdomi avatar
lá cờ za
sau đó cập nhật câu hỏi để cụ thể hơn. Bạn đi vòng quanh vấn đề của mình mà bạn muốn giải quyết.
CrazyTux avatar
lá cờ in
Làm thế nào tôi có thể được cụ thể hơn? Tôi thực sự đang cố gắng tìm câu trả lời cho tiêu đề câu hỏi và tôi đã liệt kê tất cả các giải pháp mà tôi đã thử.
Điểm:5
lá cờ cn

Bạn đang chạy hệ điều hành triển khai Wireguard làm mô-đun hạt nhân. Hạt nhân của bạn đang lắng nghe trên cổng này và vì không có tiến trình nào sở hữu ổ cắm đó nên không có PID nào được báo cáo bởi netstat.

Michael Hampton avatar
lá cờ cz
Làm thế nào để bạn tìm ra dịch vụ hạt nhân nào đang lắng nghe cổng đó?
Peter Zhabin avatar
lá cờ cn
Tôi đã từng dành khá nhiều thời gian để đào mã hạt nhân để tìm hiểu xem có cách nào để làm như vậy không và phát hiện ra rằng hạt nhân ghi lại một tham chiếu đến mô-đun sở hữu một ổ cắm trong trường `proto_ops` của ổ cắm hạt nhân, nhưng tôi không biết của các công cụ userland có thể kết xuất nó.
CrazyTux avatar
lá cờ in
Câu trả lời của bạn rất hay và đã giúp ích rất nhiều, nếu bạn tìm ra cách loại bỏ các ổ cắm hạt nhân đó và chỉnh sửa câu trả lời đó thành câu trả lời của bạn, tôi sẽ chứng minh điều đó, tôi đã bình chọn cho câu trả lời đầy thông tin.
Michael Hampton avatar
lá cờ cz
@CrazyTux Tôi cũng đã xem xét điều này và phát hiện ra rằng kernel không xuất thông tin này sang vùng người dùng. Tôi không nghĩ là có thể trừ khi một bản cập nhật kernel cung cấp chức năng này bằng cách nào đó.
Điểm:2
lá cờ in

thể loại:

Sau hai ngày tìm kiếm xung quanh vấn đề này, tôi thấy giống như Michael Hampton và Peter Zhabin rằng không có giải pháp hiện có nào hiển thị id tiến trình nhân thông qua một cổng nghe.

Ngoài ra trong hai ngày đó tôi cũng đã tìm kiếm một số mệnh lệnh các kết hợp có thể mang lại câu trả lời mong muốn và không tìm thấy cách nào đơn giản hoặc thuận tiện để thực hiện việc này.

Giải pháp tôi tạo là giải pháp sơ bộ và tôi chắc chắn rằng nó có thể được cải thiện bởi các thành viên cộng đồng.

Giảm giá để xác định vị trí quy trình

  • Quá trình đang chạy ở cấp độ hạt nhân hoặc bất kỳ cấp độ nào khác tránh quá trình có id (PID).
  • Id quy trình hoặc chương trình quy trình không được tìm thấy bởi đầu ra của các lệnh đã cho: lsof, netstat, ss, bộ nhiệt áp.
  • Chúng tôi đã tìm thấy một cổng nghe từ đầu ra của các lệnh trên - Nhưng chúng tôi không thể định cấu hình chương trình hoặc pid gây ra việc nghe.

Trong khoảng tiếng kêu:

Chúng tôi sẽ sử dụng tiếng kêu để tìm thêm thông tin về cổng mở.

tiếng kêu - in các dòng phù hợp với các mẫu.

Từ tiếng kêu trang người đàn ông thông qua người đàn ông chỉ huy.

SỰ MIÊU TẢ
grep tìm kiếm MẪU trong mỗi TẬP TIN. MẪU là một hoặc nhiều
       các mẫu được phân tách bằng các ký tự dòng mới và grep in từng dòng
       phù hợp với một mẫu. Thông thường MẪU nên được trích dẫn khi grep
       được sử dụng trong lệnh shell.
  • Đây là một chủ đề tuyệt vời về cách sử dụng lệnh một cách chính xác và hiệu quả.

Cách xác định vị trí PID hoặc chương trình sử dụng cổng đã cho qua tiếng kêu:

Trong trường hợp của tôi thực hiện sudo grep --exclude-dir={sys,proc} -rnw / -e 51820 | cổng grep -i đã giải quyết vấn đề và hiển thị thông tin phân bổ về chương trình sử dụng cổng.

Đầu ra đã cho:

iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j CHẤP NHẬN
/home/username/wireguard-install.sh:238: read -p "Port [51820]: " port
/home/username/wireguard-install.sh:241: read -p "Port [51820]: " cổng
/home/username/wireguard-install.sh:243: [[ -z "$port" ]] && port="51820"
/usr/share/doc/netplan/examples/wireguard.yaml:9: cổng: 51820
/etc/wireguard/wg0.conf:8:ListenPort = 51820
/etc/systemd/system/wg-iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j CHẤP NHẬN
/etc/systemd/system/wg-iptables.service:10:ExecStop=/usr/sbin/iptables -D INPUT -p udp --dport 51820 -j CHẤP NHẬN

Lý do có nhiều cờ là các kết hợp khác mà tôi đã thử có một lượng lớn đầu ra không mong muốn.

Lập luận của gì tiếng kêu Lệnh là viết tắt của:

  • --exclude-dir - Bỏ qua bất kỳ thư mục dòng lệnh nào có hậu tố tên phù hợp hoa văn.

Và bỏ qua cụ thể hệ thốngproc thư mục trong trường hợp cụ thể của chúng tôi là để tránh đầu ra không mong muốn.

Ví dụ: grep --exclude-dir={dir1,dir2} sẽ tránh dir1 và dir2 trong quá trình tìm kiếm.

  • -r hoặc -R là đệ quy.
  • -N là số dòng.
  • -w là viết tắt của phù hợp với toàn bộ từ.
  • / là viết tắt của thư mục "cao nhất" để bắt đầu tìm kiếm từ trên xuống dưới.
  • -e - là mẫu được sử dụng trong quá trình tìm kiếm.
  • 51820 trong trường hợp cụ thể của chúng tôi là số cổng được tìm thấy bởi một trong các lệnh giám sát mạng ở trên.
  • | - là đường dẫn để chuyển hướng đầu ra của phần lệnh đầu tiên sang phần thứ hai.

Trong trường hợp của chúng tôi: chuyển hướng sudo grep --exclude-dir={sys,proc} -rnw / -e 51820 xuất ra lệnh tiếp theo cổng grep -i

  • -tôi - Bỏ qua phân biệt chữ hoa chữ thường trong các mẫu và dữ liệu đầu vào, sao cho các ký tự chỉ khác nhau trong trường hợp khớp với nhau.
  • Hải cảng - Đã tìm thấy để thu hẹp kết quả theo mục đích mà chúng tôi thực hiện tìm kiếm, tìm thêm thông tin về cổng cụ thể được xác định sau -e lá cờ.

Lời khuyên:

  • Tạo bản quét lớn nhất có thể trong các bước đầu tiên bằng cách bắt đầu từ / và sử dụng các cờ tối thiểu để lọc đầu ra, nhằm đảm bảo bạn sẽ không bỏ lỡ bất kỳ chi tiết nào mà chúng tôi có thể đạt được.
  • Sau khi tìm thấy đầu ra mong muốn hoặc gặp sự cố với việc tìm đầu ra mong muốn do phân bổ đầu ra không mong muốn, hãy bắt đầu thêm từng cờ một.
  • Chỉ định số cổng làm mẫu, sau tất cả, đây là điểm bắt đầu và mục tiêu cuối cùng của chúng tôi.
  • Sử dụng gấp đôi tiếng kêu các lệnh chuyển hướng lần quét đầu tiên thành Hải cảng bộ lọc mẫu, nó có thể xác định chính xác chúng tôi và tăng tốc giải pháp, sau tất cả, chúng tôi đang tìm kiếm một số dưới dạng mẫu và điều này có thể dẫn đến nhiều kết quả không mong muốn.
  • Nếu bạn không thể đi đến kết luận với kết quả đã cho, hãy tìm kiếm trên web bằng các từ khóa đã chọn mà bạn đã tìm thấy.

Đă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.