📄 0140networkcommand.htm
字号:
<span class=term_say>参数∶
show ∶单纯的显示出介面的 IP 资讯啊;
add|del ∶进行相关参数的增加 (add) 或删除 (del) 设定,主要有∶
IP 参数∶主要就是网域的设定,例如 192.168.100.100/24 之类的设定喔;
dev ∶这个 IP 参数所要设定的介面,例如 eth0, eth1 等等;
相关参数∶主要有底下这些∶
broadcast∶设定广播位址,如果设定值是 + 表示『让系统自动计算』
label ∶亦即是这个装置的别名,例如 eth0:0 就是了!
scope ∶这个介面的领域,通常是这几个大类∶
global ∶允许来自所有来源的连线;
site ∶仅支援 IPv6 ,仅允许本主机的连线;
link ∶仅允许本装置自我连线;
host ∶仅允许本主机内部的连线;
所以当然是使用 global 棉!预设也是 global 啦!</span>
<span class=term_hd>范例一∶显示出所有的介面之 IP 参数∶</span>
[root@linux ~]# <span class=term_command>ip address show</span>
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
<span class=term_write>inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0</span>
inet6 fe80::250:fcff:fe22:9acb/64 scope link
valid_lft forever preferred_lft forever
3: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
</pre></td></tr></table>
看到上面那个特殊的字体吗?没错!那就是 IP 参数啦!也是 ip address 最主要的功能。
底下我们进一步来新增虚拟的网路介面试看看∶<br />
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>范例二∶新增一个介面,名称假设为 eth0:vbird </span>
[root@linux ~]# <span class=term_command>ip address add 192.168.50.50/24 broadcast + \</span>
> <span class=term_command>dev eth0 label eth0:vbird</span>
[root@linux ~]# <span class=term_command>ip address show eth0</span>
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
<span class=term_write>inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird</span>
inet6 fe80::240:d0ff:fe13:c346/64 scope link
valid_lft forever preferred_lft forever
<span class=term_say># 看到上面的特殊字体了吧?多出了一行新的介面,且名称是 eth0:vbird
# 至于那个 broadcast + 也可以写成 broadcast 192.168.50.255 啦!</span>
[root@linux ~]# <span class=term_command>ifconfig</span>
<span class=term_write>eth0:vbir</span> Link encap:Ethernet HWaddr 00:40:D0:13:C3:46
inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:5 Base address:0x3e00
<span class=term_say># 如果使用 ifconfig 就能够看到这个怪东西了!可爱吧! ^_^</span>
<span class=term_hd>范例三∶将刚刚的介面删除 </span>
[root@linux ~]# <span class=term_command>ip address del 192.168.50.50/24 dev eth0</span>
<span class=term_say># 删除就比较简单啊! ^_^</span>
</pre></td></tr></table><br />
</div>
<hr><li><span class=text_import1>关于路由的相关设定∶ ip route</span></li>
<div class=block2>
呵呵,这个项目当然就是路由的观察与设定棉!事实上, ip route 的功能几乎与 route
这个指令差不多,但是,他还可以进行额外的参数设计,例如 MTU 的规划等等,相当的强悍啊!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ip route show</span> <span class=term_say><==单纯的显示出路由的设定而已</span>
[root@linux ~]# <span class=term_command>ip route [add|del] [IP或网域] [via gateway] [dev 装置]</span>
<span class=term_say>参数∶
show ∶单纯的显示出路由表,也可以使用 list ;
add|del ∶增加 (add) 或删除 (del) 路由的意思。
IP或网域∶可使用 192.168.50.0/24 之类的网域或者是单纯的 IP ;
via ∶从那个 gateway 出去,不一定需要;
dev ∶由那个装置连出去,这就需要了!
mtu ∶可以额外的设定 MTU 的数值喔!</span>
<span class=term_hd>范例一∶显示出目前的路由资料</span>
[root@linux ~]# <span class=term_command>ip route show</span>
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
169.254.0.0/16 dev eth1 scope link
default via 192.168.1.254 dev eth1
</pre></td></tr></table>
如上表所示,最简单的功能就是显示出目前的路由资讯,其实跟 route 这个指令相同啦!
指示必须要注意几个小东西∶<ul>
<li>proto∶此路由的路由协定,主要有 redirect, kernel, boot, static, ra 等,
其中 kernel 指的是直接由核心判断自动设定。
<li>scope∶路由的范围,主要是 link ,亦即是与本装置有关的直接连线。</ul>
再来看一下如何进行路由的增加与删除吧!<br />
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>范例二∶增加路由,主要是本机直接可沟通的网域</span>
[root@linux ~]# <span class=term_command>ip route add 192.168.5.0/24 dev eth0</span>
<span class=term_say># 针对本机直接沟通的网域设定好路由,不需要透过外部的路由器</span>
[root@linux ~]# <span class=term_command>ip route show</span>
192.168.5.0/24 dev eth0 scope link
<span class=term_say>....以下省略....</span>
<span class=term_hd>范例三∶增加可以通往外部的路由,需透过 router 喔!</span>
[root@linux ~]# <span class=term_command>ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0</span>
[root@linux ~]# <span class=term_command>ip route show</span>
192.168.5.0/24 dev eth0 scope link
<span class=term_say>....其他省略....</span>
192.168.10.0/24 via 192.168.5.100 dev eth0
<span class=term_say># 仔细看喔,因为我有 192.168.5.0/24 的路由存在 (我的网卡直接联系),
# 所以才可以将 192.168.10.0/24 的路由丢给 192.168.5.100
# 那部主机来帮忙传递喔!与之前提到的 route 指令是一样的限制!</span>
<span class=term_hd>范例四∶增加预设路由</span>
[root@linux ~]# <span class=term_command>ip route add default via 192.168.1.2 dev eth0</span>
<span class=term_say># 那个 192.168.1.2 就是我的预设路由器 (gateway) 的意思啊! ^_^
# 真的记得,只要一个预设路由就 OK !</span>
<span class=term_hd>范例五∶删除路由</span>
[root@linux ~]# <span class=term_command>ip route del 192.168.10.0/24</span>
[root@linux ~]# <span class=term_command>ip route del 192.168.5.0/24</span>
</pre></td></tr></table><br />
</div>
事实上,这个 ip 的指令实在是太博大精深了!刚接触 Linux 网路的朋友,可能会看到有点晕~
不要紧啦!您先会使用 ifconfig, ifup , ifdown 与 route 即可,
等以后有经验了之后,再继续回来玩 ip 这个好玩的指令吧! ^_^
有兴趣的话,也可以自行参考 ethtool 这个指令喔! (man ethtool)。<br /><br />
</div>
<hr /><a NAME="iw_cmd"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">iwlist, iwconfig</span><br />
<div class=block2>
这两个指令您必须要有无线网卡才能够进行喔!这两个指令的用途是这样的∶<ul>
<li>iwlist∶利用无线网卡进行无线 AP 的侦测与取得相关的资料;
<li>iwconfig∶设定无线网卡的相关参数。
</ul>
这两个指令的应用我们在前一章里面的 <a href="0130internet_connect.php#wireless_connect">无线网卡设定</a>
谈了很多了,所以这里我们不再详谈,有兴趣的朋友应该先使用 man iwlist 与 man iwconfig 了解一下语法,
然后再到前一章的无线网路小节查一查相关的用法,就了解了啦! ^_^<br /><br />
</div>
<hr /><a NAME="dhclient"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">dhclient</span><br />
<div class=block2>
如果你是使用 DHCP 协定在区域网路内取得 IP 的话,那么是否一定要去编辑 ifcfg-eth0 内的 BOOTPROTO 呢?
嘿嘿!有个更快速的作法,那就是利用 dhclient 这个指令~因为这个指令才是真正发送 dhcp
要求工作的程式啊!那要如何使用呢?很简单!如果不考虑其他的参数,使用底下的方法即可∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>dhclient eth0</span>
</pre></td></tr></table>
够简单吧!这样就可以立刻叫我们的网路卡以 dhcp 协定去尝试取得 IP 喔!
不过在 SuSE distribution 里面,他仅有 dhcpcd 这支程式,他与 dhclient 是相同的咚咚啦! ^_^<br /><br />
</div>
</div>
<hr /><a NAME="network_test"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">网路侦错与观察指令∶</span><br />
<div class=block1>
在网路的互助论坛中,最常听到的一句话就是∶『<span class=text_import2>高手求救!我的
Linux 不能连上网路了!</span>』我的天呐!不能上网路的原因多的很!而要完全搞懂也不是一件简单的事情呢!
不过,事实上我们可以自己使用测试软体来追踪可能的错误原因,而很多的网路侦测指令其实在
Linux 里头已经都预设存在了,只要您好好的学一学基本的侦测指令,那么一些朋友在告诉您如何侦错的时候,
您应该就立刻可以知道如何来搞定他棉!好了,底下我们就简单的来谈一谈几个很基本的网路常用的侦错指令啦!<br /><br />
<hr /><a NAME="ping"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">ping</span><br />
<div class=block2>
这个 ping 是很重要的指令,ping 主要透过 <a href="0110network_basic.php#protocol_icmp">ICMP 封包</a>
来进行整个网路的状况报告,当然啦,最重要的就是那个 ICMP type 0, 8 这两个类型,
分别是要求回报与主动回报网路状态是否存在的特性。要特别注意的是, ping 还是需要透过
<a href="0110network_basic.php#ipandmac_head">IP 封包</a>来传送 ICMP 封包的,
而 IP 封包里面有个相当重要的 TTL (Time To Live) 属性,这是很重要的一个路由特性,
详细的 IP 与 ICMP 表头资料请参考<a href="0110network_basic.php">网路基础</a>的详细介绍。<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ping [-bcstnM] IP</span>
<span class=term_say>参数∶
-b ∶后面接的是 broadcast 的 IP,用在你『需要对整个网域的主机进行 ping 』时;
-c ∶后面接的是执行 ping 的次数,例如 -c 5 ;
-n ∶不进行 IP 与主机名称的反查,直接使用 IP ;
-s ∶发送出去的 ICMP 封包大小,预设为 56(bytes),再加 8 bytes 的 ICMP 表头资料
-t ∶TTL 的数值,预设是 255,每经过一个节点就会少一;
-M [do|dont] ∶主要在侦测网路的 MTU 数值大小,两个常见的项目是∶
do ∶代表传送一个 DF (Don't Fragment) 旗标,让封包不能重新拆包与打包;
dont∶代表不要传送 DF 旗标,表示封包可以在其他主机上拆包与打包</span>
<span class=term_hd>范例一∶侦测一下 168.95.1.1 这部 DNS 主机是否存在?</span>
[root@linux ~]# <span class=term_command>ping -c 3 168.95.1.1</span>
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms
--- 168.95.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2
</pre></td></tr></table>
ping 最简单的功能就是传送 ICMP 封包去要求对方主机回应是否存在于网路环境中,
上面的回应讯息当中,几个重要的项目是这样的∶<br />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -