Linux作業(4)-04

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 ~]#

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章