⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0140networkcommand.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 5 页
字号:
</span>
</div>


<!-- 本文的正式部分 -->
<hr /><a NAME="network_setup"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">网路参数设定指令∶</span><br />
<div class=block1>
	任何时刻如果你想要做好你的网路参数设定,包括 IP 参数、路由参数与无线网路等等,
	就得要了解底下这些相关的指令才行!其中以 route 及 ip  这两支指令算是较重要的喔! ^_^
	当然,比较早期的用法,我们都是使用 ifconfig 的啦!<br />
	<ul>
	<li><span class=text_import1>ifconfig</span>∶查询、设定网路卡与 IP 网域等相关参数;
	<li><span class=text_import1>ifup, ifdown</span>∶这两个档案是 script ,透过更简单的方式来启动网路介面;
	<li><span class=text_import1>route</span>∶查询、设定路由表 (route table)
	<li><span class=text_import1>ip</span>∶复合式的指令,可以直接修改上述提到的功能;</ul>

	<hr /><a NAME="network_setup_ip"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">ifconfig, ifup, 
	ifdown</span><br />
	<div class=block2>
		这三个指令的用途都是在启动网路介面,不过, ifup 与 ifdown 仅能就 /etc/sysconfig/network-scripts
		内的 ifcfg-ethx (x 为数字) 进行启动或关闭的动作,并不能直接修改网路参数,除非手动调整 
		ifcfg-ethx 档案才行。至于 ifconfig 则可以直接手动给予某个介面 IP 或调整其网路参数!
		底下我们就分别来谈一谈先!<br /><br />

		<hr><li><a name="ifconfig"></a><span class=text_import1>ifconfig</span><br />
		<div class=block2>
			ifconfig 主要是可以手动的启动、观察与修改网路介面的相关参数,可以修改的参数很多啊,
			包括 IP 参数以及 MTU 等等都可以修改,他的语法如下∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ifconfig {interface} {up|down}</span>  <span class=term_say>&lt;== 观察与启动介面</span>
[root@linux ~]# <span class=term_command>ifconfig interface {options}  </span>  <span class=term_say>&lt;== 设定与修改介面</span>
<span class=term_say>参数∶
interface∶网路卡介面代号,包括 eth0, eth1, ppp0 等等
options  ∶可以接的参数,包括如下∶
    up, down ∶启动 (up) 或关闭 (down) 该网路介面(不涉及任何参数)
    mtu      ∶可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte)
    netmask  ∶就是子遮罩网路;
    broadcast∶就是广播位址啊!
范例∶</span>

<span class=term_hd>范例一∶观察所有的网路介面(直接输入 ifconfig)</span>
[root@linux ~]# <span class=term_command>ifconfig</span>
eth0      Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2
          inet addr:192.168.10.100  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20f:eaff:fe73:682/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3439 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2735 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:646935 (631.7 KiB)  TX bytes:562313 (549.1 KiB)
          Interrupt:209 Memory:fb000000-0
</pre></td></tr></table>

			一般来说,<span class=text_import2>直接输入 ifconfig 就会列出目前已经被启动的卡</span>,
			不论这个卡是否有给予 IP ,都会被显示出来。而<span class=text_import2>如果是输入 ifconfig eth0 ,
			则会秀出这张介面的相关资料,而不管该介面是否有启动</span>。所以如果您想要知道某张网路卡的
			Hardware Address,直接输入『 ifconfig "网路介面代号" 』即可喔! ^_^!
			至于上表出现的各项资料是这样的(资料排列由上而下、由左而右)∶<br />
			<ul>
			<li><span class=text_import1>eth0</span>∶就是网路卡的代号,也有 lo 这个 loopback ;</li>
			<li><span class=text_import1>HWaddr</span>∶就是网路卡的硬体位址,俗称的 MAC 是也;</li>
			<li><span class=text_import1>inet addr</span>∶IPv4 的 IP 位址,后续的 Bcase, Mask 分别代表的是
				Broadcast 与 netmask 喔!</li>
			<li><span class=text_import1>inet6 addr</span>∶是 IPv6 的版本的 IP ,我们没有使用,所以略过;</li>
			<li><span class=text_import1>MTU</span>∶就是 
				<a href="0110network_basic.php#protocol_mtu">MTU</a> 啊!</li>
			<li><span class=text_import1>RX</span>∶那一行代表的是网路由启动到目前为止的封包接收情况,
				packets 代表封包数、errors 代表封包发生错误的数量、 dropped 
				代表封包由于有问题而遭丢弃的数量等等</li>
			<li><span class=text_import1>TX</span>∶与 RX 相反,为网路由启动到目前为止的传送情况;</li>
			<li><span class=text_import1>collisions</span>∶代表封包碰撞的情况,如果发生太多次,
				表示您的网路状况不太好;</li>
			<li><span class=text_import1>txqueuelen</span>∶代表用来传输资料的缓冲区的储存长度;</li>
			<li><span class=text_import1>RX bytes, TX bytes</span>∶总传送、接收的位元组总量</li>
			<li><span class=text_import1>Interrupt, Memory</span>∶网路卡硬体的资料, IRQ 岔断与记忆体位址;</li>
			</ul>
			透过观察上述的资料,大致上可以了解到您的网路情况,尤其是那个 RX, TX 内的 error 数量,
			以及是否发生严重的 collision 情况,都是需要注意的喔! ^_^<br />

<table class="term"><tr><td class="term"><pre>
<span class=term_hd>范例二∶暂时修改网路介面</span>
[root@linux ~]# <span class=term_command>ifconfig eth0 192.168.100.100</span>
<span class=term_say># 如果不加任何其他参数,则系统会依照该 IP 所在的 class 范围,
# 自动的计算出 netmask 以及 network, broadcast 等 IP 参数;</span>

[root@linux ~]# <span class=term_command>ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \</span>
> <span class=term_command>mtu 8000 </span>
<span class=term_say># 设定网路介面,同时设定 MTU 的数值!</span>

[root@linux ~]# <span class=term_command>ifconfig eth0 mtu 9000</span>
<span class=term_say># 仅修改该介面的 MTU 数值,其他的保持不动!</span>

[root@linux ~]# <span class=term_command>ifconfig eth0:0 192.168.50.50</span>
<span class=term_say># 仔细看那个介面, eth0:0 喔!那就是在该网路介面上,再模拟一个网路介面,
# 亦即是在一张网路卡上面设定多个 IP 的意思啦!</span>

[root@linux ~]# <span class=term_command>ifconfig</span>
eth0      Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2
          inet addr:192.168.10.100  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3669 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:667547 (651.9 KiB)  TX bytes:584799 (571.0 KiB)
          Interrupt:209 Memory:fb000000-0

eth0:0    Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2
          inet addr:192.168.200.2  Bcast:192.168.200.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:209 Memory:fb000000-0
<span class=term_say># 仔细看,是否与硬体有关的资讯都相同啊!没错!因为是同一张网卡嘛!</span>

[root@linux ~]# <span class=term_command>ifconfig eth0:0 down</span>
<span class=term_say># 关掉 eth0:0 这个介面。如果想要启动 eth1 ,并且不给予任何网路参数,
# ifconfig eth1 up 就可以达到了!</span>

[root@linux ~]# <span class=term_command>/etc/init.d/network restart</span>
<span class=term_say># 刚刚设定的资料全部失效,会以 ifcfg-ethx 的设定为主!</span>
</pre></td></tr></table>

			呵呵!使用 ifconfig 可以暂时手动来设定或修改某个介面卡的相关功能,
			并且也可以透过 eth0:0 这种虚拟的网路介面来设定好一张网路卡上面的多个 IP 喔!
			手动的方式真是简单啊!并且设定错误也不打紧,因为我们可以利用 
			<span class=text_import2>/etc/init.d/network restart</span>
			来重新启动整个网路介面,那么之前手动的设定资料会全部都失效喔!另外,
			要启动某个网路介面,但又不让他具有 IP 参数时,直接给他 
			<span class=text_import2>ifconfig eth0 up</span> 即可!
			这个动作<span class=text_import2>经常在无线网卡当中会进行</span>,
			因为我们必须要启动无线网卡让他去侦测 AP 存在与否啊!<br /><br />
		</div>

		<hr><li><a name="ifup"></a><span class=text_import1>ifup, ifdown</span><br />
		<div class=block2>
			即时的手动修改一些网路介面参数,可以利用 ifconfig 来达成,如果是要直接以设定档,
			亦即是在 /etc/sysconfig/network-scripts 里面的 ifcfg-ethx 等档案的设定参数来启动的话,
			那就得要透过 ifdown 或 ifup 来达成了。<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ifup   {interface}</span>
[root@linux ~]# <span class=term_command>ifdown {interface}</span>

[root@linux ~]# <span class=term_command>ifup eth0</span>
</pre></td></tr></table>

			ifup 与 ifdown 真是太简单了!这两支程式其实是 script 而已,他会直接到 
			/etc/sysconfig/network-scripts 目录下搜寻对应的设定档,例如 
			ifup <span class=text_import1>eth0</span> 时,他会找出 
			ifcfg-<span class=text_import1>eth0</span> 这个档案的内容,然后来加以设定。
			关于 ifcfg-eth0 的设定则请参考前一章<a href="0130internet_connect.php">连上 Internet</a>
			的说明。<br /><br />

			不过,由于这两支程式主要是搜寻设定档 (ifcfg-ethx) 来进行启动与关闭的,
			所以在使用前请确定 ifcfg-ethx 是否真的存在于正确的目录内,否则会启动失败喔!
			另外,<span class=text_import2>如果以 ifconfig eth0 .... 来设定或者是修改了网路介面后,
			那就无法再以 ifdown eth0 的方式来关闭了</span>!因为 ifdown 会分析比对目前的网路参数与 ifcfg-eth0
			是否相符,不符的话,就会放弃该次动作。因此,使用 ifconfig 修改完毕后,应该要以 
			ifconfig eth0 down 才能够关闭该介面喔!<br /><br />
		</div>
	</div>

	<hr /><a NAME="route"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">路由修改 route</span><br />
	<div class=block2>
		我们在<a href="0110network_basic.php">网路基础</a>的时候谈过关于路由的问题,
		两部主机之间一定要有路由才能够互通 TCP/IP 的协定,否则就无法进行连线啊!
		一般来说,只要有网路介面,该介面就会产生一个路由,例如在鸟哥实验室内部的主机有一个 eth0 及 lo ,
		所以∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>route [-nee]</span>
[root@linux ~]# <span class=term_command>route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]</span>
[root@linux ~]# <span class=term_command>route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]</span>
<span class=term_say>观察的参数∶
   -n  ∶不要使用通讯协定或主机名称,直接使用 IP 或 port number;
   -ee ∶使用更详细的资讯来显示
增加 (add) 与删除 (del) 路由的相关参数∶
   -net    ∶表示后面接的路由为一个网域;
   -host   ∶表示后面接的为连接到单部主机的路由;
   netmask ∶与网域有关,可以设定 netmask 决定网域的大小;
   gw      ∶gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
   dev     ∶如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等
</span>
<span class=term_hd>范例一∶单纯的观察路由状态</span>
[root@linux ~]# <span class=term_command>route -n</span>
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
<span class=term_write>0.0.0.0         192.168.10.30   0.0.0.0</span>         UG    0      0        0 eth0

[root@linux ~]# <span class=term_command>route</span>
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -