zoukankan      html  css  js  c++  java
  • 深入网络操作命令(9条命令)

    nmap命令

    nmap命令:网络探索工具和安全/端口扫描器

    格式:nmap [Scan Type...] [Options] {target specification}

    参数:

    -O:激活操作探测;
    -P0:值进行扫描,不ping主机;
    -PT:是同TCP的ping;
    -sV:探测服务版本信息;
    -sP:ping扫描,仅发现目标主机是否存活;
    -ps:发送同步(SYN)报文;
    -PU:发送udp ping;
    -PE:强制执行直接的ICMPping;
    -PB:默认模式,可以使用ICMPping和TCPping;
    -6:使用IPv6地址;
    -v:得到更多选项信息;
    -d:增加调试信息地输出;
    -oN:以人们可阅读的格式输出;
    -oX:以xml格式向指定文件输出信息;
    -oM:以机器可阅读的格式输出;
    -A:使用所有高级扫描选项;
    --resume:继续上次执行完的扫描;
    -P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
    -e:在多网络接口Linux系统中,指定扫描使用的网络接口;
    -g:将指定的端口作为源端口进行扫描;
    --ttl:指定发送的扫描报文的生存期;
    --packet-trace:显示扫描过程中收发报文统计;
    --scanflags:设置在扫描报文中的TCP标志。
    

    例子:

    [root@xxx ~]# nmap localhost
    
    Starting Nmap 6.40 ( http://nmap.org ) at 2019-07-18 23:33 EDT
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.0000030s latency).
    Other addresses for localhost (not scanned): 127.0.0.1
    Not shown: 998 closed ports
    PORT   STATE SERVICE
    22/tcp open  ssh
    25/tcp open  smtp
    
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
    
    

    lsof命令

    lsof命令: 显示打开的文件

    格式:

    lsof [ -?abChlnNOPRtUvVX ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ +|-D
    D ] [ +|-e s ] [ +|-f [cfgGn] ] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k
    ] [ -K k ] [ +|-L [l] ] [ +|-m m ] [ +|-M ] [ -o [o] ] [ -p s ] [ +|-r
    [t[m]] ] [ -s [p:s] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -x
    [fl] ] [ -z [z] ] [ -Z [Z] ] [ -- ] [names]

    参数:

    -a:列出打开文件存在的进程;
    -c<进程名>:列出指定进程所打开的文件;
    -g:列出GID号进程详情;
    -d<文件号>:列出占用该文件号的进程;
    +d<目录>:列出目录下被打开的文件;
    +D<目录>:递归列出目录下被打开的文件;
    -n<目录>:列出使用NFS的文件;
    -i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
    -p<进程号>:列出指定进程号所打开的文件;
    -u:列出UID号进程详情;
    -h:显示帮助信息;
    -v:显示版本信息。
    

    例子:

    [root@xxx ~]# lsof | head -10
    COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
    systemd       1          root  cwd       DIR              253,0       236         64 /
    systemd       1          root  rtd       DIR              253,0       236         64 /
    systemd       1          root  txt       REG              253,0   1620416     119959 /usr/lib/systemd/systemd
    systemd       1          root  mem       REG              253,0     20112      71476 /usr/lib64/libuuid.so.1.3.0
    systemd       1          root  mem       REG              253,0    265624      71459 /usr/lib64/libblkid.so.1.1.0
    systemd       1          root  mem       REG              253,0     90248      46297 /usr/lib64/libz.so.1.2.7
    systemd       1          root  mem       REG              253,0    157424      71466 /usr/lib64/liblzma.so.5.2.2
    systemd       1          root  mem       REG              253,0     23968      90446 /usr/lib64/libcap-ng.so.0.0.0
    systemd       1          root  mem       REG              253,0     19896      71194 /usr/lib64/libattr.so.1.1.0
    
    

    mail命令

    mail命令:命令行的电子邮件发送和接收工具。

    格式:

    mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-
              addr] [-r from-addr] [-h hops] [-A account] [-S vari‐
              able[=value]] to-addr . . .
       mailx [-BDdeEHiInNRv~] [-T name] [-A account] [-S variable[=value]] -f
              [name]
       mailx [-BDdeEinNRv~] [-A account] [-S variable[=value]] [-u user]
    

    参数:

    -b<地址>:指定密件副本的收信人地址;
    -c<地址>:指定副本的收信人地址;
    -f<邮件文件>:读取指定邮件文件中的邮件;
    -i:不显示终端发出的信息;
    -I:使用互动模式;
    -n:程序使用时,不使用mail.rc文件中的设置;
    -N:阅读邮件时,不显示邮件的标题;
    -s<邮件主题>:指定邮件的主题;
    -u<用户帐号>:读取指定用户的邮件;
    -v:执行时,显示详细的信息。
    

    安装:yum install -y mailx sendmail

    例子:

    # 使用管道进行邮件发送
    
    echo "hello,this is the content of mail.welcome to www.linuxde.net" | mail -s "Hello from linuxde.net by pipe" admin@linuxde.net
    # 使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。
    
    # 使用文件进行邮件发送
    mail -s "Hello from linuxde.net by file" admin@linuxde.net < mail.txt
    # 使用上面的命令后,我们就可以把mail.txt文件的内容作为邮件的内容发送给admin@linuxde.net了。
    
    #很多情况下,我们也需要使用邮件来发送附件,在linux下使用mail命令发送附件也很简单,不过首先需要安装uuencode软件包,这个程序是对二进制文件进行编码使其适合通过邮件进行发送,在CentOS上安装该软件包如下:
    
    yum install sharutils
    #安装完成后我们就可以来进行附件的发送了,使用如下命令:
    
    uuencode test.txt test | mail -s "hello,see the attachement" admin@linuxde.net<mail.txt
    

    mutt命令

    mutt命令:Mutt邮件用户代理

    格式:

       mutt [-nRyzZ] [-e cmd] [-F file] [-m type] [-f file]
       
       mutt  [-nx]  [-e cmd] [-F file] [-H file] [-i file] [-s subj] [-b addr]
       [-c addr] [-a file [...] --] addr|mailto_url [...]
    
       mutt [-nx] [-e cmd] [-F file] [-s subj] [-b addr] [-c  addr]  [-a  file
       [...] --] addr|mailto_url [...]  < message
    
       mutt [-n] [-e cmd] [-F file] -p
    
       mutt [-n] [-e cmd] [-F file] -A alias
    
       mutt [-n] [-e cmd] [-F file] -Q query
    
       mutt -v[v]
    
       mutt -D
    

    参数:

     -a <文件> 在邮件中加上附加文件。
     -b <地址> 指定密件副本的收信人地址。
     -c <地址> 指定副本的收信人地址。
     -f <邮件文件> 指定要载入的邮件文件。
     -F <配置文件> 指定mutt程序的设置文件,而不读取预设的.muttrc文件。
     -h 显示帮助。
     -H <邮件草稿> 将指定的邮件草稿送出。
     -i <文件> 将指定文件插入邮件内文中。
     -m <类型> 指定预设的邮件信箱类型。
     -n 不要去读取程序培植文件(/etc/Muttrc)。
     -p 在mutt中编辑完邮件后,而不想将邮件立即送出,可将该邮件暂缓寄出。
     -R 以只读的方式开启邮件文件。
     -s <主题> 指定邮件的主题。
     -v 显示mutt的版本信息以及当初编译此文件时所给予的参数。
     -x 模拟mailx的编辑方式。
     -z 与-f参数一并使用时,若邮件文件中没有邮件即不启动mutt。
    

    例子:

    [root@xxx ~]# mutt xxxxx@163.com -s "随便发送" -a 1.txt </etc/passwd 
    

    nslookup命令

    nslookup命令:常用域名查询工具,就是查DNS信息用的命令。

    格式:nslookup(选项)(参数)

    参数:

    -sil:不显示任何警告信息。
    

    安装:

    [root@xxx ~]# yum install -y bind-utils
    

    例子:

    [root@xxx ~]# nslookup www.baidu.com
    Server:         192.168.141.2
    Address:        192.168.141.2#53
    
    Non-authoritative answer:
    www.baidu.com   canonical name = www.a.shifen.com.
    Name:   www.a.shifen.com
    Address: 183.232.231.174
    Name:   www.a.shifen.com
    Address: 183.232.231.172
    
    

    dig命令

    dig命令:DNS查找工具

    格式:

       dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m]
               [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4]
               [-6] [name] [type] [class] [queryopt...]
               
       dig [-h]
    
       dig [global-queryopt...] [query...]
    

    参数:

    @<服务器地址>:指定进行域名解析的域名服务器;
    -b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
    -f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
    -P:指定域名服务器所使用端口号;
    -t<类型>:指定要查询的DNS数据类型;
    -x<IP地址>:执行逆向域名查询;
    -4:使用IPv4;
    -6:使用IPv6;
    -h:显示指令帮助信息。
    

    例子:

    [root@xxx ~]# dig 114.114.114.114
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> 114.114.114.114
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 50543
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;114.114.114.114.               IN      A
    
    ;; AUTHORITY SECTION:
    .                       5       IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2019071801 1800 900 604800 86400
    
    ;; Query time: 18 msec
    ;; SERVER: 192.168.141.2#53(192.168.141.2)
    ;; WHEN: Fri Jul 19 01:26:27 EDT 2019
    ;; MSG SIZE  rcvd: 108
    
    

    host命令

    host命令:DNS查找工具

    格式:

    host [-aCdlnrsTwv] [-c class] [-N ndots] [-R number] [-t type]
    [-W wait] [-m flag] [-4] [-6] {name} [server]

    参数:

    -a:显示详细的DNS信息;
    -c<类型>:指定查询类型,默认值为“IN“;
    -C:查询指定主机的完整的SOA记录;
    -r:在查询域名时,不使用递归的查询方式;
    -t<类型>:指定查询的域名信息类型;
    -v:显示指令执行的详细信息;
    -w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
    -W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
    -4:使用IPv4;
    -6:使用IPv6.
    

    例子:

    [root@xxx ~]# host www.baidu.com
    www.baidu.com is an alias for www.a.shifen.com.
    www.a.shifen.com has address 183.232.231.172
    www.a.shifen.com has address 183.232.231.174
    
    # 显示详细的DNS信息
    [root@xxx ~]# host -a  www.baidu.com
    Trying "www.baidu.com"
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.baidu.com.                 IN      ANY
    
    ;; ANSWER SECTION:
    www.baidu.com.          5       IN      CNAME   www.a.shifen.com.
    
    Received 58 bytes from 192.168.141.2#53 in 2012 ms
    
    
    

    traceroute命令

    traceroute命令:追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。

    格式:

     traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,...]
                   [-i device] [-m max_ttl] [-p port] [-s src_addr]
                   [-q nqueries] [-N squeries] [-t tos]
                   [-l flow_label] [-w waittime] [-z sendwait] [-UL] [-D]
                   [-P proto] [--sport=port] [-M method] [-O mod_options]
                   [--mtu] [--back]
                   host [packet_len]
           traceroute6  [options]
    
    

    参数:

    -d:使用Socket层级的排错功能;
    -f<存活数值>:设置第一个检测数据包的存活数值TTL的大小;
    -F:设置勿离断位;
    -g<网关>:设置来源路由网关,最多可设置8个;
    -i<网络界面>:使用指定的网络界面送出数据包;
    -I:使用ICMP回应取代UDP资料信息;
    -m<存活数值>:设置检测数据包的最大存活数值TTL的大小;
    -n:直接使用IP地址而非主机名称;
    -p<通信端口>:设置UDP传输协议的通信端口;
    -r:忽略普通的Routing Table,直接将数据包送到远端主机上。
    -s<来源地址>:设置本地主机送出数据包的IP地址;
    -t<服务类型>:设置检测数据包的TOS数值;
    -v:详细显示指令的执行过程;
    -w<超时秒数>:设置等待远端主机回报的时间;
    -x:开启或关闭数据包的正确性检验。
    
    

    例子:

    [root@xxx ~]# traceroute www.baidu.com
    traceroute to www.baidu.com (183.232.231.174), 30 hops max, 60 byte packets
     1  gateway (192.168.141.2)  0.089 ms  0.032 ms  0.065 ms
     2  * * *
     3  * * *
     4  * * *
     5  * * *
     6  * * *
     7  * * *
     8  * * *
    
    

    tcpdump命令

    tcpdump命令:命令行的抓包工具。

    格式:

    tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
                   [ -c count ]
                   [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
                   [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
                   [ --number ] [ -Q|-P in|out|inout ]
                   [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
                   [ -W filecount ]
                   [ -E spi@ipaddr algo:secret,...  ]
                   [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
                   [ --time-stamp-precision=tstamp_precision ]
                   [ --immediate-mode ] [ --version ]
                   [ expression ]
    
    
    

    参数:

    -a:尝试将网络和广播地址转换成名称;
    -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作;
    -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出;
    -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出;
    -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出;
    -e:在每列倾倒资料上显示连接层级的文件头;
    -f:用数字显示网际网络地址;
    -F<表达文件>:指定内含表达方式的文件;
    -i<网络界面>:使用指定的网络截面送出数据包;
    -l:使用标准输出列的缓冲区;
    -n:不把主机的网络地址转换成名字;
    -N:不列出域名;
    -O:不将数据包编码最佳化;
    -p:不让网络界面进入混杂模式;
    -q :快速输出,仅列出少数的传输协议信息;
    -r<数据包文件>:从指定的文件读取数据包数据;
    -s<数据包大小>:设置每个数据包的大小;
    -S:用绝对而非相对数值列出TCP关联数;
    -t:在每列倾倒资料上不显示时间戳记;
    -tt: 在每列倾倒资料上显示未经格式化的时间戳记;
    -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型;
    -v:详细显示指令执行过程;
    -vv:更详细显示指令执行过程;
    -x:用十六进制字码列出数据包资料;
    -w<数据包文件>:把数据包数据写入指定的文件。
    
    

    例子:

    # 直接启动tcpdump将监视第一个网络接口上所有流过的数据包
    tcpdump
    
    # 监视指定网络接口的数据包
    tcpdump -i eth1
    
    # 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。
    
    # 监视指定主机的数据包
    
    # 打印所有进入或离开sundown的数据包。
    tcpdump host sundown
    也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包
    
    tcpdump host 210.27.48.1
    # 打印helios 与 hot 或者与 ace 之间通信的数据包
    
    tcpdump host helios and ( hot or ace )
    
    # 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信
    tcpdump host 210.27.48.1 and  (210.27.48.2 or 210.27.48.3 )
    
    # 打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包.
    tcpdump ip host ace and not helios
    
    # 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
    tcpdump ip host 210.27.48.1 and ! 210.27.48.2
    
    # 截获主机hostname发送的所有数据
    tcpdump -i eth0 src host hostname
    
    # 监视所有送到主机hostname的数据包
    tcpdump -i eth0 dst host hostname
    
    # 监视指定主机和端口的数据包
    如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令
    tcpdump tcp port 23 host 210.27.48.1
    
    # 对本机的udp 123 端口进行监视 123 为ntp的服务端口
    tcpdump udp port 123
    
    # 监视指定网络的数据包
    #打印本地主机与Berkeley网络上的主机之间的所有通信数据包
    tcpdump net ucb-ether
    # ucb-ether此处可理解为“Berkeley网络”的网络地址,此表达式最原始的含义可表达为:打印网络地址为ucb-ether的所有数据包
    
    # 打印所有通过网关snup的ftp数据包
    
    tcpdump 'gateway snup and (port ftp or ftp-data)'
    # 注意:表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析
    
    # 打印所有源地址或目标地址是本地主机的IP数据包
    tcpdump ip and not net localnet
    
    # 如果本地网络通过网关连到了另一网络,则另一网络并不能算作本地网络。
    
    
  • 相关阅读:
    Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)
    Luogu 1314 【NOIP2011】聪明的质检员 (二分)
    Luogu 1315 【NOIP2011】观光公交 (贪心)
    Luogu 1312 【NOIP2011】玛雅游戏 (搜索)
    Luogu 1525 【NOIP2010】关押罪犯 (贪心,并查集)
    Luogu 1514 引水入城 (搜索,动态规划)
    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
    Luogu 1437 [HNOI2004]敲砖块 (动态规划)
    Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
    HDU 1176 免费馅饼 (动态规划)
  • 原文地址:https://www.cnblogs.com/akiz/p/11218770.html
Copyright © 2011-2022 走看看