一般的なネットワークテストツールの使用方法

9129 ワード


  • iperf3

  • サービス側:iperf 3-s-i 1-p 1234
    クライアント(TCP):iperf 3-c 192.0.8.11-i 1-p 1234-t 60
    クライアント(UDP):iperf 3-u-c 10.10.10.2.20-p 1234-i 1-t 10-b 100 M

  • nuttcp

  • サービス側:nuttcp-S
    クライアント(TCP):nuttcp-T 30-p 5001-w 4 m-i 1[server IP address]
    クライアント(UDP):nuttcp-T 30-u-p 5001-w 4 m-R 100 M-i 1[server IP address]

  • nc

  • サービス側:nc-ul-p 70
    クライアント:nc-u IP 70

  • パッケージtcpdump

  •            tcpdump -i eth0  port 80
               tcpdump -i eth0 -enn -v
               tcpdump -i eth0 icmp -w xxx.cap

  • python httpサービスを迅速に開始

  •            ipv4:python -m SimpleHTTPServer 80
               ipv6:python -c "import socket,SocketServer,CGIHTTPServer;SocketServer.TCPServer.address_family=socket.AF_INET6;CGIHTTPServer.test()"80
  • スクリプトを使用してhttpsサービス
  • を開始
     1 import BaseHTTPServer
     2 import SimpleHTTPServer
     3 import os
     4 import socket
     5 import ssl
     6 #import SocketServer
     7 #import CGIHTTPServer
     8 
     9 script_home = os.path.dirname(os.path.abspath(__file__))
    10 #SocketServer.TCPServer.address_family = socket.AF_INET6
    11 ip = "2008:5be8::12" 
    12 port = 443
    13 
    14 def main():
    15     print ("simple https server, address:%s:%d, document root:%s" % (ip, port, script_home))
    16 
    17     httpd = BaseHTTPServer.HTTPServer(('2008:5be8::12', port), SimpleHTTPServer.SimpleHTTPRequestHandler)
    18     httpd.socket = ssl.wrap_socket(httpd.socket, certfile='./server.pem', server_side=True)
    19     httpd.serve_forever()
    20 
    21 if __name__ == '__main__':
    22     os.chdir(script_home)
    23     main()
  • nginxからhttpsサービス
  • を使用
    (1)/etc/nginxディレクトリの下にsslディレクトリを新規作成し、ファイルserver.crt,server.keyは/etc/nginx/sslディレクトリにコピーします.
    (2)etc/nginx/nginx.confファイルにssl関連構成項目が追加されました.以下に示します.
    server {
            listen       443 ssl http2 default_server;
            listen       [::]:443 ssl http2 default_server;
            server_name  _;
            root         /usr/share/nginx/html;
    
            ssl_certificate "/etc/nginx/ssl/server.crt";
            ssl_certificate_key "/etc/nginx/ssl/server.key";
            ssl_session_cache shared:SSL:1m;
            ssl_session_timeout  10m;
            ssl_ciphers HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers on;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
        }

    (3)nginxサービスを起動し、実行する:
            systemctl start nginx
    (4)ブラウザでhttps://【nginxサーバIP】:443にアクセス
  • fioテストディスク読み書き速度
  • 読み取り:fio-filename=/dev/sdb-direct=1-iodepth 1-thread-rw=read-ioengine=psync-bs=4 k-size=10 G-numjobs=10-runtime=300-group_reporting -name=mytest
    書き込み:fio-filename=/dev/sdb-direct=1-iodepth 1-thread-rw=write-ioengine=psync-bs=4 k-size=10 G-numjobs=10-runtime=300-group_reporting -name=mytest
    ランダム読み書き:fio-filename=/dev/vdb-direct=1-ioengine=libaio-iodepth=32-bs=8 k-rw=randrw-numjobs=1-runtime=300-name=test 1-group_reporting -name=mytest
  • UDPプロトコルパケットスクリプト
  • を送信
    (1)クライアント側
    import socket
    
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    addr = ("1.1.1.6", 2345)
    
    send_msg = "q"
    s.sendto(send_msg.encode("utf-8"), addr)
    response, addr = s.recvfrom(1024)
    print(response.decode())
    print("Receive from %s:%s" % addr)
    s.close()

    (2)サーバ側
    import socket
    
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.bind(("2.2.2.2", 2345))
    print("UDP bound on port 2345...")
    
    while True:
        data, addr = s.recvfrom(1024)
        print("Receive from %s:%s" % addr)
        if data == "q":
            s.sendto("Good bye!
    ", addr) break