您现在的位置是:首页 > 创新技术

运维工程师必会的Linux命令之(三) 网络管理

智慧创新站 2025-05-11【创新技术】291人已围观

简介5.网络管理5.1CurlCurl是Linux下一个很强大的http命令行工具,其功能十分强大。5.1.1读取网页$curl5.1.2保存网页$curl;$5.1.3使用的proxy服务器及其端口:-x$:1080-5.1.4使用cookie来记录session信息$:1080-这个option:-...

5.网络管理5.1Curl

Curl是Linux下一个很强大的http命令行工具,其功能十分强大。

5.1.1读取网页

$curl

5.1.2保存网页

$curl;

$

5.1.3使用的proxy服务器及其端口:-x

$:1080-

5.1.4使用cookie来记录session信息

$:1080-

这个option:-D是把http的response里面的cookie信息存到一个特别的文件中去,

这样,当页面被存到的同时,cookie信息也被存到了里面了

5.1.5下一次访问的时候,继续使用上次留下的cookie信息

使用option来把上次的cookie信息追加到httprequest里面去:-b

$:1080-

5.1.6浏览器信息

$curl-A"Mozilla/4.0(compatible;;)"-:1080-

5.1.7referer

$curl-A"Mozilla/4.0(compatible;;)"-:1080-e""-

5.1.8下载文件

$

$curl-O

-O可以按照服务器上的文件名,自动存在本地

$curl-O[1-10].JPG

5.1.9批量下载

$curl-O{zzh,nick}/[001-201].JPG

这样产生的下载,就是

~zzh/001.JPG

~zzh/002.JPG

~zzh/201.JPG

~nick/001.JPG

~nick/002.JPG

~nick/201.JPG

5.1.10自定义文件名的下载

{zzh,nick}/[001-201].JPG

这样,自定义出来下载下来的文件名,就变成了这样:

原来:~zzh/001.JPG—-下载后:001-原来:~nick/001.JPG—-下载后:001-

这样一来就不怕文件重名啦

5.1.11断点续传

$curl-c-O

分块下载,我们使用这个option就可以了:-r

举例说明

比如我们有一个(赵老师的电话朗诵:D)我们就可以用这样的命令:

$curl-r0-10240-o""http://~zzh/\

$curl-r10241-20480-o""http://~zzh/\

$curl-r20481-40960-o""http://~zzh/\

$curl-r40961--o""http://~zzh/

这样就可以分块下载啦。不过你需要自己把这些破碎的文件合并起来如果你用UNIX或苹果,用*就可以如果用的是Windows,用copy/b来解决吧,呵呵

5.1.12浏览FTP

$curl-uname:passwdftp://ip:port/path/file

或者大家熟悉的

$curlftp://name:passwd@ip:port/path/file

5.1.13FTP上传

上传的option是-T

比如我们向ftp传一个文件:

$curl-Tlocalfile-uname:passwdftp://upload_site:port/path/

5.1.14HTTP上传

$curl-Tlocalfile

注意,这时候,使用的协议是HTTP的PUTmethod

5.1.15POST模式读取网页

POST模式的option则是-d

比如,

$curl-d"user=nickwolfepassword=12345"

5.1.16POST模式下的文件上传

比如

formmethod="POST"enctype="multipar/form-data"action=""

inputtype=filename=upload

inputtype=submitname=nickvalue="go"

/form

这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:

$curl-Fupload=@localfile-Fnick=go

5.2finger

5.2.1功能说明

查找并显示用户信息。

5.2.2语法

finger[-lmsp][帐号名称]

5.2.3补充说明

finger指令会去查找,并显示指定帐号的用户相关信息,包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

5.2.4参数

-l列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容。

-m排除查找用户的真实姓名。

-s列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

-p列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。

5.3ftp

5.3.1功能说明

设置文件系统相关功能。

5.3.2语法

ftp[-dignv][主机名称或IP地址]

5.3.3补充说明

FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。

5.3.4参数

-d详细显示指令执行过程,便于排错或分析程序执行的情形。

-i关闭互动模式,不询问任何问题。

-g关闭本地主机文件名称支持特殊字符的扩充特性。

-n不使用自动登陆。

-v显示指令执行过程。

5.4ifconfig

5.4.1功能说明

显示或设置网络设备。

5.4.2语法

ifconfig[网络设备][downup-allmulti-arp-promisc][add地址][del地址][hw网络设备类型硬件地址][io_addrI/O地址][irqIRQ地址][media网络媒介类型][mem_start内存地址][metric数目][mtu字节][netmask子网掩码][tunnel地址][-broadcast地址][-pointopoint地址][IP地址]

5.4.3补充说明

ifconfig可设置网络设备的状态,或是显示目前的设置。

如果提示找不到命令,可用/sbin/ifconfig。

5.4.4参数

add地址设置网络设备IPv6的IP地址。

del地址删除网络设备IPv6的IP地址。

down关闭指定的网络设备。

hw网络设备类型硬件地址设置网络设备的类型与硬件地址。

io_addrI/O地址设置网络设备的I/O地址。

irqIRQ地址设置网络设备的IRQ。

media网络媒介类型设置网络设备的媒介类型。

mem_start内存地址设置网络设备在主内存所占用的起始地址。

metric数目指定在计算数据包的转送次数时,所要加上的数目。

mtu字节设置网络设备的MTU。

netmask子网掩码设置网络设备的子网掩码。

tunnel地址建立IPv4与IPv6之间的隧道通信地址。

up启动指定的网络设备。

-broadcast地址将要送往指定地址的数据包当成广播数据包来处理。

-pointopoint地址与指定地址的网络设备建立直接连线,此模式具有保密功能。

-promisc关闭或启动指定网络设备的promiscuous模式。

[IP地址]指定网络设备的IP地址。

[网络设备]指定网络设备的名称。

5.5ip

5.5.1功能说明

ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如:ifconfig、route等。

5.5.2语法

ip[选项][动作][指令]

5.5.3参数

动作:={link|addr|route|rule|neigh|tunnel|maddr|mroute|monitor}

选项:={-V[ersion]|-s[tatistics]|-r[esolve]|-f[amily]{inet|inet6|ipx|dnet|link}|-o[neline]}

5.5.4装置介面(device)的相关设定:iplink

iplink可以设定与装置(device)有关的相关设定,包括MTU以及该网路介面的MAC等等,当然也可以启动(up)或关闭(down)某个网路介面啦!整个语法是这样的:

[root@linux~]iplinkset[device][动作与参数]

参数:

show:仅显示出这个装置的相关内容,如果加上-s会显示更多统计数据;

set:可以开始设定项目,device指的是eth0,eth1等等介面代号;

动作与参数:包括有底下的这些动作:

up|down:启动(up)或关闭(down)某个介面,其他参数使用预设的乙太网路;

address:如果这个装置可以更改MAC的话,用这个参数修改!

name:给予这个装置一个特殊的名字;

mtu:就是最大传输单元啊!

范例一:显示出所有的介面资讯

[root@linux~]ip-slinkshoweth0

RX:bytespacketserrorsdroppedoverrunmcast

484010000

TX:bytespacketserrorsdroppedcarriercollsns

2977530000

使用iplinkshow可以显示出整个装置介面的硬体相关资讯,如上所示,包括网卡位址(MAC)、MTU等等,比较有趣的应该是那个sit0的介面了,那个sit0的介面是用在IPv4及IPv6的封包转换上的,对於我们仅使用IPv4的网路是没有作用的。lo及sit0都是主机内部所自行设定的。而如果加上-s的参数後,则这个网路卡的相关统计资讯就会被列出来,包括接收(RX)及传送(TX)的封包数量等等,详细的内容与ifconfig所输出的结果相同的。

范例二:启动、关闭与设定装置的相关资讯

[root@linux~]启动eth0这个装置介面;

[root@linux~]阿就关闭啊!简单的要命~

[root@linux~]更改MTU的值,达到1000bytes,单位就是bytes啊!

更新网路卡的MTU使用ifconfig也可以达成啊!没啥了不起,不过,如果是要更改『网路卡代号、MAC位址的资讯』的话,那可就得使用ip罗~不过,设定前得要先关闭该网路卡,否则会不成功。如下所示:

范例三:修改网路卡代号、MAC等参数

[root@linux~]因为该装置目前是启动的,所以不能这样做设定。你应该要这样做:

[root@linux~]iplinkseteth0namevbird==重新设定

[root@linux~]怕了吧!连网路卡代号都可以改变!不过,玩玩後记得改回来啊!

iplinksetvbirdnameeth0==介面改回来

[root@linux~]iplinkshoweth0

那么上面这个动作就可以更改你的网路卡位址了!厉害吧!

ipaddressshow==就是查阅IP参数啊!

[root@linux~]ipaddressshow

/8scopehostlo

inet6::1/128scopehost

valid_lftforeverpreferred_lftforever

/24

inet6fe80::250:fcff:fe22:9acb/64scopelink

看到上面那个特殊的字体吗?没错!那就是IP参数啦!也是ipaddress最主要的功能。底下我们进一步来新增虚拟的网路介面试看看:

范例二:新增一个介面,名称假设为eth0:vbird

[root@linux~]ipaddressshoweth0

2:eth0:mtu1500qdiscpfifo_fastqlen1000

link/ether00:40:d0:13:c3:46brdff:ff:ff:ff:ff:ff

/24

/24:vbird

inet6fe80::240:d0ff:fe13:c346/64scopelink

至於那个broadcast+也可以写成啦!

[root@linux~]如果使用ifconfig就能够看到这个怪东西了!

范例三:将刚刚的介面删除

[root@linux~]iprouteshow==单纯的显示出路由的设定而已

[root@linux~]iprouteshow

192.168.1.0/24

169.254.0.0/16deveth1scopelink

如上表所示,最简单的功能就是显示出目前的路由资讯,其实跟route这个指令相同啦!指示必须要注意几个小东西:

proto:此路由的路由协定,主要有redirect,kernel,boot,static,ra等,其中kernel指的是直接由核心判断自动设定。

scope:路由的范围,主要是link,亦即是与本装置有关的直接连线。

再来看一下如何进行路由的增加与删除吧!

范例二:增加路由,主要是本机直接可沟通的网域

[root@linux~]针对本机直接沟通的网域设定好路由,不需要透过外部的路由器

192.168.5.0/24deveth0scopelink

.以下省略.

范例三:增加可以通往外部的路由,需透过router喔!

[root@linux~]仔细看喔,因为我有192.168.5.0/24的路由存在(我的网卡直接联系),

那部主机来帮忙传递喔!与之前提到的route指令是一样的限制!

范例四:增加预设路由

[root@linux~]那个192.168.1.2就是我的预设路由器(gateway)的意思啊!^_^

/24

[root@linux~]route[-add][-net|-host]targetaddress[-netmaskNm][dev]If]

#route[-delete][-net|-host]targetaddress[gwGw][-netmaskNm][dev]If]

5.10.3参数

-add:增加路由。

-delete:删除路由。

-net:路由到达的是一个网络,而不是一台主机。

-host:路由到达的是一台主机。

-netmaskNm:指定路由的子网掩码。

gw:指定路由的网关。

[dev]If:强迫路由链指定接口。

5.10.4例子

表示到202.96.96.0/255.255.255.0这个网络的信息通过你的第一块网卡发送,默认网关的地址是192.168.1.10

5.11tcpdump

5.11.1功能说明

倾倒网络传输数据。

5.11.2语法

tcpdump[-adeflnNOpqStvx][-c数据包数目][-dd][-ddd][-F表达文件][-i网络界面][-r数据包文件][-s数据包大小][-tt][-T数据包类型][-vv][-w数据包文件][输出数据栏位]

5.11.3补充说明

执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。

5.11.4参数

-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数据包文件把数据包数据写入指定的文件。

5.12telnet

5.12.1功能说明

远端登入。

5.12.2语法

telnet[-8acdEfFKLrx][-b主机别名][-e脱离字符][-k域名][-l用户名称][-n记录文件][-S服务类型][-X认证形态][主机名称或IP地址通信端口]

5.12.3补充说明

执行telnet指令开启终端机阶段作业,并登入远端主机。

5.12.4参数

-8允许使用8位字符资料,包括输入与输出。

-a尝试自动登入远端系统。

-b主机别名使用别名指定远端主机名称。

-c不读取用户专属目录里的.telnetrc文件。

-d启动排错模式。

-e脱离字符设置脱离字符。

-E滤除脱离字符。

-f此参数的效果和指定"-F"参数相同。

-F使用KerberosV5认证时,加上此参数可把本地主机的认证数据上传到远端主机。

-k域名使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。

-K不自动登入远端主机。

-l用户名称指定要登入远端主机的用户名称。

-L允许输出8位字符资料。

-n记录文件指定文件记录相关信息。

-r使用类似rlogin指令的用户界面。

-S服务类型设置telnet连线所需的IPTOS信息。

-x假设主机有支持数据加密的功能,就使用它。

-X认证形态关闭指定的认证形态。

5.13traceroute

5.13.1功能说明

显示数据包到主机间的路径。

5.13.2语法

5.13.3补充说明

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

5.13.4参数

-d使用Socket层级的排错功能。

-f存活数值设置第一个检测数据包的存活数值TTL的大小。

-F设置勿离断位。

-i网络界面使用指定的网络界面送出数据包。

-I使用ICMP回应取代UDP资料信息。

-m存活数值设置检测数据包的最大存活数值TTL的大小。

-n直接使用IP地址而非主机名称。

-p通信端口设置UDP传输协议的通信端口。

-r忽略普通的RoutingTable,直接将数据包送到远端主机上。

-t服务类型设置检测数据包的TOS数值。

-v详细显示指令的执行过程。

-w超时秒数设置等待远端主机回报的时间。

-x开启或关闭数据包的正确性检验。

点赞收藏不迷路,更多精彩,敬请期待!

很赞哦!(117)