1,网络参数设定使用的指令
ifconfig 查询 设定网络卡与 IP 网域等相关参数; ifup, ifdown 这两个档案是 script,透过更简单的方式来启动网络接口; route 查询 设定路由表 (route table) ip 复合式的指令, 可以直接修改上述提到的功能;
2,ifconfig
用法: [root@www ~]# ifconfig {interface} {up|down} <== 观察与启动接口 [root@www ~]# ifconfig interface {options} <== 设定与修改接口 选项与参数: interface:网络卡接口代号,包括 eth0, eth1, ppp0 等等 options :可以接的参数,包括如下: up, down :启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数) mtu :可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte) netmask :就是子屏蔽网络; broadcast:就是广播地址啊!
#范例一:观察所有的网络接口(直接输入 ifconfig)
[root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BD inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 net.qiang@hotmail.com RX packets:2555 errors:0 dropped:0 overruns:0 frame:0 TX packets:70 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:239892 (234.2 KiB) TX bytes:11153 (10.8 KiB)
范例二:暂时修改网络接口,给予 eth0 一个 192.168.100.100/24 的参数
[root@www ~]# ifconfig eth0 192.168.100.100 #如果不加任何其他参数,则系统会依照该 IP 所在的 class 范围,自动的计算出 #netmask 以及 network, broadcast 等 IP 参数, #若想改其他参数则: [root@www ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 mtu 8000
范例三:一个网络接口多个IP
[root@www ~]# ifconfig eth0:0 192.168.50.50 net.qiang@hotmail.com #仔细看那个界面是 eth0:0 喔!那就是在该实体网卡上,再仿真一个网络接口, #亦即是在一张网络卡上面设定多个 IP 的意思! [root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BD inet addr:192.168.100.100 Bcast:192.168.100.127 Mask:255.255.255.128 inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 RX packets:2555 errors:0 dropped:0 overruns:0 frame:0 TX packets:70 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:239892 (234.2 KiB) TX bytes:11153 (10.8 KiB) eth0:0 Link encap:Ethernet HWaddr 08:00:27:71:85:BD inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 #仔细看,是否与硬件有关的信息都相同啊!没错!因为是同一张网卡嘛! #那如果想要将刚刚建立的那张 eth0:0 关闭就好,不影响原有的 eth0 呢? [root@www ~]# ifconfig eth0:0 down #关掉 eth0:0 这个界面。那如果想用默认值启动
#范例四:将手动的处理全部取消,使用原有的设定值重建网络参数:
[root@www ~]# /etc/init.d/network restart ifup ifdown 用法 [root@www ~]# ifup {interface} [root@www ~]# ifdown {interface} [root@www ~]# ifup eth0
3,route 用法
[root@www ~]# route [-nee] [root@www ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev] [root@www ~]# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev] 观察的参数: -n : 不要使用通讯协议或主机名,直接使用 IP 或 port number; -ee :使用更详细的信息来显示 增加 (add) 与删除 (del) 路由的相关参数: -net : 表示后面接的路由为一个网域; -host :表示后面接的为连接到单部主机的路由; netmask :与网域有关,可以设定 netmask 决定网域的大小; gw : gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同; dev :如果只是要指定由那一块网络卡联机出去,则使用这个设定,后面接 eth0 等
范例一:单纯的观察路由状态
[root@www ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.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 1002 0 0 eth0 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 Destination, Genmask:这两个玩意儿就是分别是 network 与 netmask 啦!所以这两个咚咚就组合成为一个完整的网域! Gateway:该网域是通过哪个 gateway 连接出去的?如果显示 0.0.0.0 表示该路由是直接由本机传送,亦即可以透过局域网络的 MAC 直接传讯;如果有显示 IP 的话,表示该路由需要经过路由器的帮忙才能够传送出去。 Flags:总共有多个旗标,代表的意义如下: o U (route is up):该路由是启动的; o H (target is a host):目标是一部主机 (IP) 而非网域; o G (use gateway):需要透过外部的主机 (gateway) 来转递封包; o R (reinstate route for dynamic routing):使用动态路由时,恢复路由信息的旗标; o D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由 o M (modified from routing daemon or redirect):路由已经被修改了; o ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!) Iface:这个路由传递封包的接口。
范例二:路由的增加与删除
[root@www ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0 #上面这个动作可以删除掉 169.254.0.0/16 这个网域! #请注意,在删除的时候,需要将路由表上面出现的信息都写入 #包括 netmask , dev 等等参数! [root@www ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0 #透过 route add 来增加一个路由!请注意,这个路由的设定必须要能够与你的网络互通。 #举例来说,如果我下达底下的指令就会显示错误: #route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254 #因为我的主机内仅有 192.168.1.11 这个 IP ,所以不能直接与192.168.200.254 #这个网段直接使用 MAC 互通!
范例三:默认路由设定
[root@www ~]# route add default gw 192.168.1.250 #增加预设路由的方法!请注意,只要有一个预设路由就够了 #同样的,那个 192.168.1.250 的 IP 也需要能与你的 LAN 沟通才行! #在这个地方如果你随便设定后,记得使用底下的指令重新设定你的网络 #service network restart 注意: 你所规划的路由必须要是你的装置 (如 eth0) 或 IP 可以直接沟通(broadcast) 的情况才行
4,网络参数综合指令:ip
基本上是整合了ifconfig与route两个指令; [root@www ~]# ip [option] [动作] [指令] 选项与参数: option :设定的参数,主要有: -s :显示出该装置的统计数据(statistics),例如总接受封包数等; 动作:亦即是可以针对哪些网络参数进行动作,包括有: link :关于装置 (device) 的相关设定,包括 MTU, MAC 地址等等 addr/address :关于额外的 IP 协议,例如多 IP 的达成等等; route :与路由有关的相关设定
关于装置接口 (device) 的相关设定: ip link ip link 可以设定与装置 (device) 有关的相关参数,包括 MTU 以及该网络接口的 MAC 等等,当然也可以启动 (up) 或关闭 (down) 某个网络接口啦!
用法 [root@www ~]# ip [-s] link show <== 单纯的查阅该装置相关的信息 [root@www ~]# ip link set [device] [动作与参数] 选项与参数: show:仅显示出这个装置的相关内容,如果加上 -s 会显示更多统计数据; set :可以开始设定项目, device 指的是 eth0, eth1 等等界面代号;
动作与参数:包括有底下的这些动作: up|down :启动 (up) 或关闭 (down) 某个接口,其他参数使用默认的以太网络; address :如果这个装置可以更改 MAC 的话,用这个参数修改! name :给予这个装置一个特殊的名字; mtu :就是最大传输单元啊!
范例一:显示出所有的接口信息
[root@www ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 08:00:27:2a:30:14 brd ff:ff:ff:ff:ff:ff 4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN link/sit 0.0.0.0 brd 0.0.0.0
[root@www ~]# ip -s link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 314685 3354 0 0 0 0 TX: bytes packets errors dropped carrier collsns 27200 199 0 0 0 0
范例二:启动、关闭与设定装置的相关信息
[root@www ~]# ip link set eth0 up #启动 eth0 这个装置接口; [root@www ~]# ip link set eth0 down #阿就关闭啊!简单的要命~ [root@www ~]# ip link set eth0 mtu 1000 #更改 MTU 的值,达到 1000 bytes,单位就是 bytes 啊!
范例三:修改网络卡代号、 MAC 等参数
[root@www ~]# ip link set eth0 name vbird SIOCSIFNAME: Device or resource busy #因为该装置目前是启动的,所以不能这样做设定。你应该要这样做: [root@www ~]# ip link set eth0 down <==关闭界面 [root@www ~]# ip link set eth0 name vbird <==重新设定 [root@www ~]# ip link show <==观察一下 2: vbird: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff #怕了吧!连网络卡代号都可以改变!不过,玩玩后记得改回来啊! #因为我们的 ifcfg-eth0 还是使用原本的装置代号!避免有问题,要改回来 [root@www ~]# ip link set vbird name eth0 <==界面改回来 [root@www ~]# ip link set eth0 address aa:aa:aa:aa:aa:aa [root@www ~]# ip link show eth0 #如果你的网络卡支持硬件地址(MAC)可以更改的话,上面这个动作就可以更改 #你的网络卡地址了!厉害吧!不过,还是那句老话,测试完之后请立刻改回来啊!
关于额外的IP相关设定:ip address 如果说 ip link 是与 OSI 七层协定 的第二层资料连阶层有关的话,那么 ipaddress (ip addr) 就是与第三层网络层有关的参数啦! 主要是在设定与 IP 有关的各项参数,包括 netmask, broadcast 等等 用法 [root@www ~]# ip address show <==就是查阅 IP 参数啊! [root@www ~]# ip address [add|del] [IP 参数] [dev 装置名] [相关参数] 选项与参数: 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 :仅允许本主机内部的联机;
范例一:显示出所有的接口之 IP 参数:
[root@www ~]# ip address show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 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,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 inet6 fe80::a00:27ff:fe71:85bd/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 08:00:27:2a:30:14 brd ff:ff:ff:ff:ff:ff 4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN link/sit 0.0.0.0 brd 0.0.0.0
范例二:新增一个接口,名称假设为 eth0:vbird
[root@www ~]# ip address add 192.168.50.50/24 broadcast + dev eth0 label eth0:vbird [root@www ~]# ip address show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird inet6 fe80::a00:27ff:fe71:85bd/64 scope link valid_lft forever preferred_lft forever #看到上面的特殊字体了吧?多出了一行新的接口,且名称是 eth0:vbird #至于那个 broadcast + 也可以写成 broadcast 192.168.50.255 啦! [root@www ~]# ifconfig eth0:vbird Link encap:Ethernet HWaddr 08:00:27:71:85:BD inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 #如果使用 ifconfig 就能够看到这个怪东西了!
范例三:将刚刚的界面删除
[root@www ~]# ip address del 192.168.50.50/24 dev eth0 #删除就比较简单啊!
关于路由的相关设定: ip route
ip route 的功能几乎与 route这个指令差不多,但是,他还可以进行额外的参数设计,例如 MTU 的规划等等,相当的强悍啊 用法: [root@www ~]# ip route show <==单纯的显示出路由的设定而已 [root@www ~]# ip route [add|del] [IP 或网域] [via gateway] [dev 装置] 选项与参数: show : 单纯的显示出路由表,也可以使用 list ; add|del :增加 (add) 或删除 (del) 路由的意思。 IP 或网域:可使用 192.168.50.0/24 之类的网域或者是单纯的 IP ; via :从那个 gateway 出去,不一定需要; dev :由那个装置连出去,这就需要了! mtu :可以额外的设定 MTU 的数值喔!
范例一:显示出目前的路由资料
[root@www ~]# ip route show 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.1.254 dev eth0
范例二:增加路由,主要是本机直接可沟通的网域
[root@www ~]# ip route add 192.168.5.0/24 dev eth0 #针对本机直接沟通的网域设定好路由,不需要透过外部的路由器 [root@www ~]# ip route show 192.168.5.0/24 dev eth0 scope link ....(省略)....
范例三:增加可以通往外部的路由,需透过 router
[root@www ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0 [root@www ~]# ip route show 192.168.5.0/24 dev eth0 scope link ....(其他省略).... 192.168.10.0/24 via 192.168.5.100 dev eth0 #仔细看喔,因为我有 192.168.5.0/24 的路由存在 (我的网卡直接联系), #所以才可以将 192.168.10.0/24 的路由丢给 192.168.5.100 #那部主机来帮忙传递喔!与之前提到的 route 指令是一样的限制!
范例四:增加预设路由
[root@www ~]# ip route add default via 192.168.1.254 dev eth0 #那个 192.168.1.254 就是我的预设路由器 (gateway) 的意思啊! ^_^ #真的记得,只要一个预设路由就 OK !
范例五:删除路由
[root@www ~]# ip route del 192.168.10.0/24 [root@www ~]# ip route del 192.168.5.0/24
5,常用的网络命令还有 ping,traceroute,netstat,nmap,nslookup,host,dig,telnet,tcpdump,lsof ,curl,wget .......
6,可供参考的内容如下 https://www.cnblogs.com/Aiapple/p/5952201.html
















