• 深入网络操作命令(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
    
    # 如果本地网络通过网关连到了另一网络,则另一网络并不能算作本地网络。
    
    
  • 相关阅读:
    anguar使用指令写选项卡
    前端性能优化
    有关楼层般的侧导航
    我对面向对象的深刻理解
    jq中的表单验证插件------jquery.validate
    JavaScript 语言中的 this
    闭包,作用域链,垃圾回收,内存泄露
    angular.extend、angular.$watch、angular.bootstrap
    Angular路由(三)
    Angular基础(二)
  • 原文地址:https://www.cnblogs.com/akiz/p/11218770.html
Copyright © 2020-2023  润新知