Linux常用的网络命令420李花.docx
《Linux常用的网络命令420李花.docx》由会员分享,可在线阅读,更多相关《Linux常用的网络命令420李花.docx(12页珍藏版)》请在冰豆网上搜索。
Linux常用的网络命令420李花
Linux常用的网络命令
网络参数设置命令
1.ifconfig
用于设置网络参数。
语法:
#ifconfiginterface[options]
Interface:
网络适配卡的代号,例如:
eth0、eth1…
Options:
主要有以下几个参数
Network:
网段
Broadcast:
广播网段
Netmask:
子网掩码
Up|down:
启动|关闭网络接口
例:
1.#ifconfig这个命令在没有加网卡(interface)参数时,会将所有的网络接口内容都显示出来。
2.#ifconfigeth0192.168.0.2netmask255.255.255.0\>broadcast192.168.0.255
上面再将eth0这个网络接口的IP地址改为:
192.168.0.2,广播地址也跟着改变了!
3.#ifconfigeth0将修改完的内容显示出来
4.#ifconfigeth0down停止eth0网卡
5.#ifconfigeth0up启动eth0网卡
显示eth0网卡信息
我们来说明上面几个参数内容:
●eth0:
表示网卡代号
●lo:
表示“环回IP”的网卡代号,请注意,这个内部的interface一定要存在!
千万不要关掉它!
(注:
这里我们的网卡信息没有lo参数)
●HWaddr:
是网卡的硬件地址,也就是MAC。
●Inetaddr:
是网卡IP
●Bcast:
是广播地址
●Mask:
是子网掩码
●MTU:
是MaximumTransmissionUnit,最大传输单位(以字节为单位),即此接口一次所能传输的最大数据包,这个数值并非越大越好,也非越小越好,不过,设置错误时,可能会让你的网络无法连接某些网站。
●RX:
网络从启动到目前为止的接收情况。
●TX:
网络从启动到目前为止的传送情况。
●Collisions:
网络信号碰撞的情况说明。
●Txqueuelen:
传输缓冲区长度大小。
●Interrupt:
IRQ中断地址。
●Baseaddress:
I/O地址。
可以在网卡上设置IRQ与I/O,设置的地方可以是/etc/lilo.conf。
如果你的主机上有多张网卡,就可以用它解决问题。
总之,要清楚的一点就是ifconfigeth0up或ifconfigeth0down可以使用ifupeth0或ifdowneth0来代替,不过ifup与ifdown是以/etc/sysconfig/network-scripts/ifcfg-ethn的文件进行启动的,所以ifcfg-eth0必须存在才能使用ifup。
2.ifup和ifdown
用于启动与关闭某个网络适配卡。
语法:
#ifup[interface]
#ifdown[interface]
范例:
#ifupeth0启动eth0网卡
#ifdowneth0关闭eth0网卡
说明:
手动修改网络参数可以使用ifconfig,但是文件设置方式的启动与关闭就的使用ifup与ifdown。
这两个命令比ifconfig简单的多!
但是它必须要有相关的文件存在才能启动。
例如,上面我们要启动eth0网卡时,Linux系统中必须存在/etc/sysconfig/network-scripts/ifcfg-eth0这个网络适配卡的设置文件。
同理可知,如果要启动eth1,除了存在eth1这个网卡之外,还要存在ifcfg-eth1.一定要了解这一点。
3.route
用于显示/修改路由表(routetable)。
语法:
#route[-nee]
#routeadd[-net|-host]目标主机或网段[netmask][gw|dev]
#routedel[-net|-host]目标主机或网段[netmask][gw|dev]
参数说明:
●-n:
列出的信息以IP地址方式显示。
●-ee:
列出较长列的信息。
●Add:
增加路由信息。
●Del:
删除一个路由信息。
●-net:
增加一个网段的路由,例如Cclass的网段。
●-host:
增加到某个IP主机的路由。
●Netmask:
就是netmask。
●Gw:
这是路由的网关,gw是以IP地址来设置的。
●Dev:
这是路由的网关,dev是以接口(interface)代号来设置的。
范例:
#route看路由的信息
#route–n以IP方式显示路由
注意:
route、route–n这两个例子。
使用-n与否会影响domain是否进行查询,一般来说,我喜欢加上-n,因为不必进行正向和逆向查询,显示速度较快,此外,defaultgeteway就是0.0.0.0。
#routeadd–net192.168.0.0netmask255.255.255.0deveth0新增一个路由规则
#routedel–net192.168.0.0netmask255.255.255.0deveth0删除一个路由
#routeadddefaultgw192.168.1.2增加一个defaultgateway
注意:
gw后面接的是IP地址,而dev后面接的是接口代号。
Route用途:
1.显示当前主机上的路由信息。
2.修改(删除或增加)主机上的路由表,可以设置router!
Route显示的内容意义:
●Destination:
目标,可以是IP地址,也可以是网段!
如果没有规定则以默认值显示!
以上面为例,当我的机器要去192.168.220.0的时候,则以上面192.168.220.0那一行的设置为主,但如果要去,由于没有指定,所以使用default的默认路由。
因此会通过192.168.220.1这个网关传送我的数据包。
●Gateway:
设置该目标要通过哪一个网关传送。
●Genmask:
就是该destination的netmask。
例如:
192.168.220.0就是255.255.255.0这个CClass网段!
如果是default,就显示0.0.0.0,即不论是在哪里,都使用这一个网关。
●Flags:
标记,有下面几种标记。
U(routeisup):
该路由已经启动。
H(targeisahost):
目标是一个主机(IP)。
G(usegateway):
用来作为gateway的设置。
R(reinstateroutefordynamicrouting):
使用动态路由时,恢复路由信息的标记。
D(dynamicallyinstalledbydaemonorredirect):
已经由服务或转端口功能设置为动态路由。
M(modifiedfromroutingdaemonorredirect):
路由已经被修改。
!
(rejectroute):
这个路由将不会被接受(用来阻止不安全的网段)。
●Iface:
该设置使用的网络接口。
注意:
当你发现输入route后显示的速度很慢时,通常是你的路由信息存在一定的问题!
果真如此的话,请务必仔细检查设置,否则你的网络速度会又迟滞现象。
一些网络诊断命令
1.ping
传送一个ICMP数据包给某台主机。
语法:
#ping[-bbroadcast]
#ping[-cnumber]host
参数说明:
-bbroadcast:
当要ping一个网段时,可以使用这个方式来广播。
-cnumber:
后面加number(数字)可以限制ping的次数。
范例:
#ping–c5192.168.220.47除了IP也可以ping域名!
#ping–b192.168.220.255–c2这里必须是广播地址
说明:
这个指令很好用,无论在哪一个操作系统中,它都是相当有用的网络诊断命令!
例如你要检测你的网卡是否正确运行,可以使用pingyour.NIC.IP.address。
当然,加上次数更好:
ping–c5your.NIC.IP.address。
这个命令一定要记住。
●icmp:
指的是ICMP这个协定。
●ttl:
指的是timetolive,当经过一个节点,ttl就会减少1。
默认是255个。
以上面为例,我的linux主机连接到192.168.220.47共经过186个gateway,所有只剩下64。
2.traceroute
调查连接到某台主机时每个节点的连网速度。
语法:
#traceroute[-iinterface][-ggateway][host|IP]
参数说明:
-i:
使用这个interface连出去!
例如eth0,ppp0等。
-g:
使用这个gateway连出去!
例如192.168.1.2,140.116.141.29等。
说明:
这个命令相当有用,它可以用来判断当一台远程主机无法连网时,数据包到底停顿在哪一个节点上,因为很多时候,你会发现“网络速度怎么变慢了?
”然后自己的主机似乎没有问题,这时可以使用这个命令检查是否在连网过程中有些节点停机了。
不过,在traceroute的输出结果中如果出现了*****,就表示改路由器有问题,得赶紧想上面报告,以便维修。
网络查询命令
1.netstat
网络信息查询命令。
语法:
#netstat[-r][-Iinterface]
#netstat[-antulp]
参数说明:
-r:
显示route的含义。
-i:
显示interface的信息,跟ifconfig类似!
-a:
显示当前所有的网络连接状态!
-n:
默认情况下,host会以hostname来显示,若为n,则可以使port与host都
以数字显示。
-t:
仅显示tcp数据包的连接行为。
-u:
仅显示udp的数据包连接状态。
-l:
仅显示LISTEN的内容。
-p:
同时显示此连接的PID(注意:
只有root才能使用此功能)。
范例:
#netstat–r显示当前的路由表,与route命令的功能相同。
#netstat–ieth0看看下面内容是否跟ifconfigeth0类似?
#netstat–an显示所有的连接状态,并且以数字方式显示
#netstat–tul显示LISTEN及tcp与udp的连接状态,如下:
注意:
上面的LISTEN表示该端口已经在监听网络服务!
而左边的tcp指的是tcp数据包。
#netstat–anp|more这个命令很常用,请记住。
2.host
显示主机名称(domainname)。
语法:
#host[-a]domain_name
参数说明:
-a:
显示所有信息。
范例:
#host仅显示主机的IP
#host–a显示所有的主机信息
说明:
这个功能和nslookup几乎相同,但是nslookup附加了较多功能。
使用这个命令时,系统会自动查找/etc/resolv.conf文件下设置的DNS的IP,然后根据该IP检测我们想要知道的主机对应的IP!
3.nslookup
查询主机名称与IP的对应。
语法:
#nslookup[domain_name|IP]
范例:
#nslookup由domain_name查询IP
#nslookup192.168.220.47由IP查询domain_name
说明:
这个命令如同前面的host提到的,就是正查逆向查询的命令,也是利用/etc/resolv.conf的内容来查询。
远程连接使用命令:
telnet,ftp,ncftp
1.telnet
用来连接远程主机,当然,BBS主机也可以连接。
语法:
#telnet[-8][host|IP][port]
参数说名:
-8:
可以减少乱码情况。
Port:
服务的端口,例如POP3的110,SMTP的25等。
telnet可用来检测这些服务。
范例:
#telnet-8bbs.sayya.org
#telnetlocalhost110
说明:
除了连接到主机以进行远程控制之外,telnet最好用的地方还在于:
●帮助你连接上BBS,查询数据。
●帮你测试服务器端某个端口的连接情况。
2.ftp
它是远程文件传送中速度最快的协议之一。
语法:
#ftp[-p]host[port]
参数说明:
-p:
启动PASSIVE模式。
范例:
#ftplocalhost默认是以端口21进行连接
#ftplocalhost1354如果你设置的ftp的端口是非正规的21,则可以这样使用!
#ftplocalhost连接到远程主机
ftp>dir显示远程主机的文件目录
ftp>cd改变远程主机的当前目录
ftp>closeorbyeorexit退出远程主机
ftp>getfile下载远程主机上文件名为file的文件
ftp>mgetfile取得所有文件,比get好用!
如:
mget.bash*
ftp>putfile将客户端文件的文件file上传到远程主机上
ftp>mputfile将一些文件上传
ftp>deletefile杀掉远程主机的file文件
ftp>help显示帮助命令
ftp>mkdirdir在远程主机上建立目录
ftp>lcd变换本地端路径
ftp>asciiorbinary以ASCII模式或BINARY模式传输数据
说明:
这个命令是用于文件传输的相当好用的软件之一,尤其是在可匿名登录的ftp网站,不过,由于这个数据在传送时是以明文方式传送的,所以不安全,建议多用sftp。
另外,它最大的好处就是可以指定端口,当你使用的端口不是21,就可以使用这个命令加上端口号来连接。
3.ncftp
登入匿名主机最好用的文本模式FTP软件。
语法:
#ncftp[host]
#ncftp[ftp:
//domain.nam/path]
参数说明:
可以直接连接到host主机,也可以是直接连接到主机的某个路径之下,相当方便。
范例:
#ncftpftp:
nsysu.edu.tw连接到中山大学FTP站
#ncftpftp:
//ftp.nsysu.deu.tw/Linux直接连接到该FTP主机里的Linux目录下,不过由于画面经过转存,所有产生了乱码,在Putty客户端软件下是正常的。
连不上某些网站的处理方法:
修改MTU
在网络介质的最大传输单位中(MaximumTransmissionUnit,MTU,即一个数据包的最大字节数)。
如果我们设置的最大传输单位超过网络媒体所能负荷的大小,那么除非你的操作系统本身就支持数据包分片,否则可能会造成数据包无法传递的问题。
此外,如果数据包的大小与最大传输单位无法配合,导致数据包在传送时一再地进行分片,将导致网络传输效能下降。
所以,网卡的MTU设置最好能够针对网络接口进行最优化。
一般而言,MTU在网卡(EtherNet)的默认值为1500,至于其他接口,如下图:
网络接口
MTU
EtherNet(一般的网络接口,这也是默认值)
1500
PPPoE(ASDL用)
1492
Dial-up(modem)
576
1.找出MTU值
A.Windows系统上的检测
1.进入MSDOS命令提示符。
2.输入ping–f–lIP,如下所示:
其中的-l是L的小写,而bytes则是本机送出的数据包大小,IP则是Gateway的IP。
在上面的测试中,当数据包大小为1500时,结果出现PacketneedstobefragmentedbutDFset这个消息,意思是说,这个数据包的大小超过MTU能够接受的大小,但是由于我们使用了-f参数,所以数据包没有办法重新组合,因此发生错误!
也就是说,如果要优化,MTU数值的设置要更小。
那么当我们使用1464来测试时:
结果表明出现响应了,这表示这个MTU值是可行的,不过,强烈建议找出可行的最大MTU值,这样一来,在设置时才可以达到最优的网络效率。
3.MTU数值的计算
上面我们找的数据其实是数据包的大小,但是每个数据包还都具有包头,这个包头部分占了28bytes,所以,最终的MTU数值其实是1684+28=1492。
B.Linux系统的检测
在终端机上输入ping–c-Mdo–sIP,其中number是次数,则是数据包的大小,结果如下:
结果发现数值为1472,其他的如同前面所述,MTU=1472+28=1500。
2.修改MTU
Linux:
使用ifconfig加mtu参数即可。
如:
ifconfigeth0mtu1500