mẹo và thủ thuật netstat


13

Cũng giống như các câu hỏi "Dòng lệnh hữu ích" (dành cho Windows , LinuxMac ), tôi nghĩ sẽ rất hữu ích khi có "cách hữu ích để sử dụng câu hỏi tiện ích x". Các trang hướng dẫn cho bạn biết các tham số làm gì, nhưng không nhất thiết là tại sao bạn sẽ sử dụng chúng, kết quả có nghĩa là gì, những điều hữu ích mà lệnh bạn không bao giờ biết mà không cần thử nghiệm rộng rãi hoặc làm thế nào để có câu trả lời bạn thực sự muốn.

Tôi muốn biết về netstat . Có vẻ như tôi sẽ có thể hình dung được các quá trình đang sử dụng băng thông, và thực sự, hệ thống đang sử dụng băng thông nhanh như thế nào. Nó cũng có vẻ hữu ích để phát hiện các kết nối không mong muốn (có khả năng là virii) và nó cung cấp tất cả các loại thông tin định tuyến (mà tôi chỉ phải chơi khi cố gắng tạo ra một chiếc máy Zaurus sắc nét sử dụng TCP / IP qua USB.) Nói cách khác, nó Nghe có vẻ như là một mỏ vàng và tôi đã hy vọng một số bạn sẽ chia sẻ những thông tin bạn đã tìm thấy.

Vui lòng bao gồm phiên bản của netstat và HĐH của bạn trong câu trả lời của bạn. Sẽ thật tuyệt khi thấy một số đầu ra mẫu và biết ý nghĩa của nó. Tôi đã đánh dấu câu hỏi này là wiki cộng đồng và tôi hy vọng bạn sẽ làm tương tự trong câu trả lời của mình, để những người khác, biết một hệ điều hành khác, có thể đưa ra một lệnh gần tương đương nếu họ biết, trong cùng một câu trả lời, và sau đó chúng ta có thể bỏ phiếu cho câu trả lời nào là hữu ích nhất.

Câu trả lời:


4

Hiển thị các cổng TCP / UDP nghe cục bộ và quy trình chúng thuộc về:

sudo netstat -tulpn

4
Mac gần tương đương có vẻ là "sudo lsof -i -n -P | grep LISTEN". (Việc xóa các cờ -n và -P sẽ làm cho nó tìm kiếm tên máy chủ và cổng).
Clinton Blackmore

1
Clinton - đó là một mệnh lệnh tuyệt vời.
SpacemanSpiff

3

Bảng định tuyến Netstat

[Điều này đã được thử nghiệm trên Mac OS X 10.5.7. Tôi nghi ngờ kết quả gần như giống nhau trên tất cả các nền tảng, vì nó được chỉ định hoạt động trên Solaris.]

netstat -r 

sẽ cung cấp cho bạn một bảng định tuyến.

netstat -nr

là như nhau, nhưng sẽ cung cấp cho bạn IP thô thay vì tìm kiếm tên máy. Đầu ra của nó trông như thế này (chỉ dài hơn):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

Cột:

Điểm đến và Cổng: Đích là một địa chỉ (hoặc phạm vi địa chỉ) mà chúng tôi có thể muốn gửi thông tin đến. Tất cả dữ liệu được gửi đến đích đó sẽ được chuyển đến cổng kết hợp. Cổng biết nơi gửi dữ liệu tới 'hop' tiếp theo trên hành trình. Nếu chúng tôi muốn gửi dữ liệu đến đích không có mục trong bảng định tuyến, nó sẽ đi qua cổng mặc định.

Cờ: Trang người đàn ông / thông tin liệt kê tất cả các cờ. Dưới đây là ý nghĩa của cài đặt trên cổng mặc định của tôi:

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

Điều đó gây tò mò rằng nó tuyên bố sẽ được thêm thủ công, vì nó đã xuất hiện trên DHCP.

Refs: "Trường refcnt cung cấp số lần sử dụng hoạt động hiện tại của tuyến đường. Các giao thức hướng kết nối thường giữ một tuyến duy nhất trong suốt thời gian kết nối trong khi các giao thức không kết nối có được một tuyến trong khi gửi đến cùng đích." (Trang nam)

Sử dụng: "Trường sử dụng cung cấp số lượng gói được gửi bằng tuyến đó."

Netif: "Mục giao diện cho biết giao diện mạng được sử dụng cho tuyến đường."

Trên máy Mac của tôi,

  • lo0 là giao diện loopback.
  • en0 là ethernet.
  • en1 là không dây.
  • en2 và en3 được sử dụng bởi một máy ảo.

Hết hạn: Từ một trang dành cho phiên bản netstat khác: "Hiển thị thời gian (tính bằng phút) còn lại trước khi tuyến hết hạn."



2

Trong cửa sổ:

c:>netstat -a | find /c "TCP"
68

Hiển thị số lượng kết nối TCP / IP. Hữu ích nếu bạn đang khắc phục sự cố các hệ thống mạng cao sắp hết cổng TCP và cần tăng MaxUserPorts .


OS X 10.5.7 tương đương: netstat -a | grep -c tcp
Clinton Blackmore

2

Tỷ lệ truyền / tiếp nhận

Trên máy Mac [OS X 10.5.7]:

netstat -i -w 10

[Xem câu trả lời của chuck để biết các lưu ý về việc sử dụng trên Solaris và Linux.]

Đầu ra trông như vậy:

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

Điều này cho thấy có bao nhiêu gói và byte được truyền trong một khoảng thời gian nhất định. (10 giây trong ví dụ này). Tôi đã được kết nối với youtube và đang tải xuống hơn 1 MB mỗi lần, cho đến khi tôi đóng tab trình duyệt và tỷ lệ chạm đáy.

Điều này có thể hữu ích nếu bạn đang chờ tải lên hoặc tải xuống để hoàn tất. Theo dõi tỷ lệ, và khi nó giảm đáng kể, bạn biết nó đã được thực hiện.

Lưu ý rằng lệnh trên cho bạn thấy tất cả thông lượng trên tất cả các giao diện. Để phạm vi nó đến một giao diện cụ thể (WiFi trong ví dụ này), hãy sử dụng -Icờ, như vậy:

netstat -I en1 -w 10

1

Các cửa sổ:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Hiển thị các kết nối TCP hoạt động, nhưng không có hoạt động UDP.

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Hiển thị tất cả các kết nối TCP đang hoạt động, cũng như nghe các kết nối TCP và UDP. Không hiển thị hoạt động UDP bên ngoài ở đây.


Bây giờ tôi sẽ thêm một nhận xét, nhưng khi tôi có đủ đại diện, tôi sẽ chỉnh sửa câu trả lời. netstat trên Mac OS X 10.5.7 tương đương - thêm -p tcp để nó bị giới hạn ở tcp protocoal. I E. netstat -p tcp -n, hoặcnetstat -p tcp -an
Clinton Blackmore

Một vài công tắc hữu ích khác trên Windows là -o (hiển thị PID sở hữu của từng ổ cắm) và -b (hiển thị tên quy trình sở hữu của từng ổ cắm). Đặc biệt tiện dụng khi điều tra máy bạn nghi ngờ đã bị xâm nhập.
Murali Suriar

netstat -nt làm điều tương tự (chỉ số và tcp)
Jauder Ho


1

Windows 7 (có thể kể từ trước đó):

netstat -ano

liệt kê các phiên hoạt động với các PID liên quan

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

hoặc để lưu một bước

netstat -anb

(từ dấu nhắc CMD nâng cao) cung cấp tên quy trình

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING

1

Tôi chắc chắn rằng tôi đang phát minh lại bánh xe nhưng đây là một kịch bản Perl đơn giản để chạy netstat và sắp xếp đầu ra để các IP hiện được kết nối chủ yếu xuất hiện trên đầu trang. Điều này được sử dụng tốt nhất với chương trình 'xem' để cập nhật trong khoảng thời gian 2 giây.

Cập nhật: viết lại đáng kể 2013/02/11 để thoát khỏi nhiều vấn đề và hiển thị tên máy chủ

Đầu ra mẫu:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED


0

Từ cuốn sách W Shell Cool Shell Sc Script:

Tập lệnh # 90.1 : Cứ sau vài phút, lấy các giá trị netstats (thông qua crontab)

Kịch bản # 90.2 : Phân tích nhật ký hiệu suất chạy netstat, xác định các kết quả và xu hướng quan trọng.

(Yêu cuốn sách này - cũng đáng mua!)


0

Trên Solaris, rất nhiều người đã quen làm "netstat -i 1" để có được số lượng gói đang chạy. Linux netstat có một phiên bản vô dụng của tính năng này, vì nó cho bạn thấy số lượng thô và không phải là một delta. Để có kết quả tương tự, hãy thực hiện "sar -n DEV 1 0". Hãy xem xét thực sự "LANG = C sar -n DEV 1 0 | grep interacename" (sar đặt thời gian với AM và PM ở đầu dòng ở một số địa phương nhất định, vì vậy tốt nhất nên tập thói quen luôn chạy "LANG = C sar "trong trường hợp bạn sẽ phân tích nó).


Để biết kết quả đầu ra mẫu và sử dụng máy Mac, hãy xem serverfault.com/questions/11289/netstat-tips-and-tricks/ .
Clinton Blackmore

0

Trên Solaris,

netstat -k

Hiển thị một bản tóm tắt của các số liệu thống kê khác nhau. Hữu ích cho việc kiểm tra lỗi, vv


0

Vì chưa có ai đề cập đến nó:

netstat -s 

cung cấp rất nhiều số liệu thống kê hữu ích theo giao thức trong linux.

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.