14、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)

1.        使用ifconfig查看网卡配置信息,看主要使用的网卡名称

2.        /etc/sysconfig/network-scripts/目录下查找对应的网卡配置文件

3.        主要配置项

DEVICE(设备名称)

TYPE(设备类型。端口为Ethernet)

ONBOOT(系统启动时读取)

BOOTPROTO=staticip配置协议。当前为静态ip,可设置DHCP,)

IPADDRip地址)

NETMASK(子网掩码)

GATEWAY(网关地址)

DNS1DNS服务器地址)

4.        重启网络服务 servicenetwork restart

5.        CLI中输入ping www.magedu.com/测试网络连接

15、为Linux主机配置网络信息的方式有哪些,请描述各个过程。

l ifconfig eth0 IP/mask

l ip addr add IP device eth0

l Linux网络属性配置的tui(textuser interface)system-config-network-tui

l  使用setup图形界面设置

16、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;

在线的主机使用绿色显示;

不在线的主使用红色显示;

#!/bin/bash
#
for i in {1..254};do
     ping -c 1 -w 1 "192.168.1.$i" > /dev/null
     if [ $? -eq 0 ];then
                echo -e "\033[0;32;1m 172.16.250.$i is up \033[0m"
     else
                echo -e "\033[0;31;1m 172.16.250.$i is down \033[0m"
     fi
done

17、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。

ifconfig

   常见用法:

       查看网卡信息:ifconfig [interface]

       查看所有网卡信息:ifconifg -a

       开启或关闭网卡:ifconfig IFACE [up|down]

       配置网卡参数:ifconfig interface [aftype] options | address ...

       配置网卡IP地址:

            ifconfig IFACE IP/mask [up]

            ifconfig IFACE IP network MASK

[root@localhost ~]# ifconfig
eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet192.168.2.108  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6fe80::20c:29ff:fe0d:4a8b  prefixlen64  scopeid 0x20<link>
        ether00:0c:29:0d:4a:8b  txqueuelen 1000  (Ethernet)
        RX packets6681  bytes 455288 (444.6 KiB)
        RX errors0  dropped 0  overruns 0 frame 0
        TX packets 1627  bytes 268207 (261.9 KiB)
        TX errors0  dropped 0 overruns 0  carrier 0 collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128 scopeid 0x10<host>
        loop  txqueuelen 0 (Local Loopback)
        RX packets4  bytes 340 (340.0 B)
        RX errors0  dropped 0  overruns 0 frame 0
        TX packets4  bytes 340 (340.0 B)
        TX errors0  dropped 0 overruns 0  carrier 0 collisions 0
 
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether52:54:00:47:81:6c  txqueuelen 0  (Ethernet)
        RX packets0  bytes 0 (0.0 B)
        RX errors0  dropped 0  overruns 0 frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors0  dropped 0 overruns 0  carrier 0 collisions 0

说明:

eno16777736:表示当前使用的网卡,

flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 标志状态

mtu 1500:最大数据包大小为 1500bytes

网卡的IPv地址:inet192.168.2.108

子网掩码:netmask 255.255.255.0

广播地址:broadcast 192.168.2.255

网卡的IPv6地址:inet6fe80::20c:29ff:fe0d:4a8b

网卡物理地址(MAC地址):ether00:0c:29:0d:4a:8b

lo:表示主机的回坏地址的相关信息。

virbr0:表示虚拟机桥接网络的相关信息。

 

 

 

示例3:配置IP地址

1.ens33网卡配置IP地:192.168.2.156

[root@localhost ~]# ifconfig ens33 192.168.2.156


 

 

 ip:显示/配置路由,接口,策略路由和隧道

        常见用法:

             网卡添加多一个IP地址,并设置别名为eth0:0

                 ipaddr IPADDR/MASK dev eth0 label 'eth0:0'

            显示网卡设备的信息: ipaddr show

            清除IP地址信息:ip addr flush dev interface

            添加路由:ip routeadd TARGET via GW dev INTERFACE src SOURCE_IP

            删除单条路由: iproute del TARGET

示例:

[root@wangyafei ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:65:87:db brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.107/24 brd 192.168.2.255 scope global dynamic ens33
       valid_lft 4860sec preferred_lft 4860sec
    inet6 fe80::1efb:59d6:3462:a123/64 scope link
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:26:96:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:26:96:17 brd ff:ff:ff:ff:ff:ff
[root@wangyafei ~]#

 

 

 route:路由管理命令

            查看路由条目:route-n

            添加路由条目:routeadd

            route add [-net|-host] target[netmask Nm] [gw Gw] [[dev] if]

            删除路由:routedel

            route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]

示例

[root@wangyafei ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG    100    0        0 ens33
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@wangyafei ~]#

 

netstat:显示网络连接、路由表、接口数据统计、伪装连接、组播成员关系

    常用选项:

                        -t : 显示TCP协议相关已建立的连接(ESTABLISHED

                        -u : 显示UDP协议相关已建立的连接(ESTABLISHED

                        -r : 显示raw socket(裸套接字)相关已建立的连接(ESTABLISHED

                        -l : 处于监听状态的连接

                        -n : 以数字显示IP和协议端口(默认显示协议名称,如SSH

                        -a : 显示所有状态的连接

                        -e : 扩展格式

                        -p : 显示相关进程及PID

 

常用组合:

                        -tan , -uan , -tnl -unl-tunlp

示例

[root@wangyafei ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0     52 wangyafei:ssh           192.168.2.100:49291     ESTABLISHED
[root@wangyafei ~]# netstat -u
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 wangyafei:58937         85.199.214.101:ntp      ESTABLISHED
udp        0      0 wangyafei:48190         161.53.131.133:ntp      ESTABLISHED

ss:网络状态查看工具

常见选项:

    -t : tcp协议相关

    -u : udp协议相关

    -w : 裸套接字相关

    -x : unix sock相关

   -l : listen状态的连接

   -a : 所有

   -n : 数字格式

   -p : 相关的程序及PID

   -e : 扩展的信息

   -m : 内存用量

   -o : 计时器信息

   常用组合:

                        -tan , -tanl , -tanlp ,-uan-tunlp

[root@wangyafei ~]# ss -tan
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128            *:111                        *:*
LISTEN      0      5      192.168.122.1:53                         *:*
LISTEN      0      128            *:22                         *:*
LISTEN      0      128    127.0.0.1:631                        *:*
LISTEN      0      100    127.0.0.1:25                         *:*
LISTEN      0      128    127.0.0.1:6010                       *:*
ESTAB       0      52     192.168.2.107:22                 192.168.2.100:49291
LISTEN      0      128           :::111                       :::*
LISTEN      0      128           :::22                        :::*
LISTEN      0      128          ::1:631                       :::*
LISTEN      0      100          ::1:25                        :::*
LISTEN      0      128          ::1:6010                      :::*
[root@wangyafei ~]#

18、写一个脚本,完成以下功能

(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

(4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
declare -i k=0,s=0
for i in $(ls /etc/rc.d/rc3.d/K* | grep -o "[^/]*$");do
    echo "$i stop"
    let k++
done
for j in $(ls /etc/rc.d/rc3.d/S* | grep -o "[^/]*$");do
    echo "$j start"
    let s++
done
echo "S开头的文件有$s个"
echo "K开头的文件有$k个"

19、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

#!/bin/bash
#
 for ((i=20;i<=100;i++));do
        ping -w 1 -c 1 172.16.250.$i &>/dev/null
        if [ $? -eq 0 ];then
        echo "172.16.250.$i online"
        fi
done

20、打印九九乘法表;

[root@wangyafei ~]# vim test11.sh
[root@wangyafei ~]# cat test11.sh
#!/bin/bash
#Authen:wangyafei
 
i=1
 
j=1
 
for i in {1..9};do
      for j in $(seq 1 $i);do
            echo -e -n "${i}*${j}=$[$i*$j]\t"
 
      done
 
      echo
 
done
[root@wangyafei ~]# bash test11.sh
1*1=1
2*1=2     2*2=4
3*1=3     3*2=6     3*3=9
4*1=4     4*2=8     4*3=12    4*4=16
5*1=5     5*2=10    5*3=15    5*4=20    5*5=25
6*1=6     6*2=12    6*3=18    6*4=24    6*5=30    6*6=36
7*1=7     7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49
8*1=8     8*2=16    8*3=24    8*4=32    8*5=40    8*6=48    8*7=56    8*8=64
9*1=9     9*2=18    9*3=27    9*4=36    9*5=45    9*6=54    9*7=63    9*8=72    9*9=81
[root@wangyafei ~]#