天天看點

running 4 TCP/IP Network Configuration

網絡裝置:

Ethernet網卡: ethX 如 eth0 eth1 。。。

即本地連接配接。實體裝置 有IP netmask 等配置 用來連接配接其他主機或網絡

網卡辨別為ethX:Y的網卡 如 eth0:1 為eth0網卡的别名 可以實作一張實體網卡配置多個ip位址 但它不支援動态位址即dhcp

Local Loopback網卡: lo

loopback回環裝置,屬于邏輯裝置負責主機自身對自身通路的網絡通信。

sit0網卡:

負責IPv6和IPv4位址協調工作。一般處于不活動狀态。

pppX:

串行裝置 如貓

檢視某個網卡目前狀況:#ifconfig ethX

#ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:F9:93:28 

          inet addr:192.168.91.130  Bcast:192.168.91.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fef9:9328/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:6999 errors:0 dropped:0 overruns:0 frame:0

          TX packets:5459 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:763902 (745.9 KiB)  TX bytes:666493 (650.8 KiB)

          Interrupt:169 Base address:0x2000

重要字段解釋:

網卡編号 eth0

由/etc/modprobe.conf定義了實體網卡的别名為eth0

每當作業系統加載時 就讀取這個檔案中的設定作為預設設定

連接配接類型 以太網 硬體位址:00:0C:29:F9:93:28

目前生效的IP位址:192.168.91.130 廣播位址192.168.91.255  子網路遮罩:

255.255.255.0

最大傳輸單元(Maximum Transmission Unit,MTU)1500

RX packets 接收的包:5999 錯誤 0丢棄0 逾時0 資料幀0

TX packets 發送的包:5459 。。。。。。。。。。。。。

沖突:0   傳送列隊(TransferQueue)長度:1000

RX bytes :接收資料流量

TX bytes :發送資料流量

interrupt :中斷号

base address:基位址

關于網卡的一些指令:

#ifconfig

檢視目前活動網卡資訊

#ifconfig –a

檢視所有網卡資訊 包括隐藏以及不活動的

#ifup ethX

臨時啟用ethX網卡

#ifdown ethX

臨時關閉ethX網卡

Linux主機網絡設定主要包括以下幾項:

Hostname

IP and Netmask

Gateway

DNS server address

配置方法:

立即生效但重新開機網絡服務後失效:

主機名:#hostname host.example.com

IP和mask :#ifconfig ethX 192.168.0.24/24

或者#ifconfig ethX 192.168.0.24 netmask 255.255.255.0

預設網關:#route add [-net|host] 0.0.0.0 gw gatewayaddress 預設路由

可以用 #route –n 檢視路由資訊

DNS位址:修改/etc/resolv.conf檔案

search example.com

nameserver DNSaddress(改為 如:192.168.0.254)

dns修改過之後永久有效

永久有效但不會立即生效:

主機名:

修改/etc/sysconfig/network檔案

networking=yes

是否啟用TCP/IP網絡協定 是

networking_IPv6=no

是否啟用IPv6協定 否

HOSTNAME= station24.example.com

主機名:station24.example.com

IP、MASK、Gateway:

修改/etc/sysconfig/network-scripts/ifcfg-ethX

BOOTPROTO=static

IPADDR=192.168.0.24

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

/etc/sysconfig/network-scripts/ifcfg-ethX其他選項解釋:

DEVICE=eth0

網卡裝置号

BOOTPROTO=dhcp|static|bootp|none

網絡連接配接方式 DHCP 靜态 bootp 無

DHCPCLASS=

dhcp類别(依網絡供應商而定)

HWADDR=00:0C:29:F9:93:28

硬體位址

ONBOOT=yes

是否開機啟動 是

USERCTL=no

普通使用者是否有禁用啟用網卡的權限 無

TYPE=

網絡裝置類型

PEERDNS=no

是否許系統自動修改dns指向 不

以上配置也可以直接在圖形界面設定 linux提供了幾種設定界面:

#system-config-network

#system-config-network-cmd

#system-config-network-gui 圖形界面

#system-config-network-tui 文本界面

為了友善管理和配置 這些網絡設定過程可以寫成bash shell 當需要設定它們時運作即可

下面是幾個簡單的實作:

(1)修改主機名

sethostname.sh

#!/bin/bash

sethostt (){

        hostname $1

        echo -e " \033[36m`hostname`\033[0m  ;temporary set already"

}

sethostr (){

        sed -i 's/^HOSTNAME.*/HOSTNAME='$1'/g' /etc/sysconfig/network

        echo -e " \033[32m$1\033[0m   ;permanent set already"

}

while getopts "n:tr" SWITCH; do

        case $SWITCH in

        n);;

        t)sethostt $2 ;;

        r)sethostr $2 ;;

        *)echo "Usage:`basename $0` -n value –t -r"

        esac

done

-n value 指定hostname –t 臨時 –r 永久

#./sethostname.sh –n hostname –t –r

(2) 修改IP mask dns Gateway 臨時|永久 檢視IP,dns,Gateway

setip.sh

FILEDNS="/etc/resolv.conf"

FILEIP="/etc/sysconfig/network-scripts/ifcfg-eth0"

ETH='eth0'

STAT=0

ethset() {

ETH=$1

FILEIP="/etc/sysconfig/network-scripts/ifcfg-$1"

setip() {

if [ $STAT -eq 0 ];then

        ifconfig $ETH $1

        echo -e "IP address set $1 \033[36malready\033[0m"

else

        if grep "^IPADDR" $FILEIP &>/dev/null ;then

                sed -i 's/^IPADDR.*/IPADDR='$1'/g' $FILEIP

                echo -e  "IP address set $1  \033[32malready\033[0m"

        else

                sed -i '/^BOOTPROTO.*/a \IPADDR='$1'' $FILEIP

        fi

fi

setmask() {

        ifconfig $ETH netmask $1

        echo -e " NATEMASK set $1 \033[36malready\033[0m"

        if grep "^NETMASK" $FILEIP &>/dev/null ;then

                sed -i 's/^NETMASK.*/NETMASK='$1'/g' $FILEIP

                echo -e  "NETMASK set $1  \033[32malready\033[0m"

                sed -i '/^IPADDR.*/a \NETMASK='$1'' $FILEIP

setgate() {

        route add -net 0.0.0.0 gw $1

        echo -e "GATEWAY set $1 \033[36malready\033[0m"

        if grep "^GATEWAY" $FILEIP &>/dev/null ;then

                sed -i 's/^GATEWAY.*/GATEWAY='$1'/g' $FILEIP

                echo -e  "GATEWAY set $1  \033[32malready\033[0m"

                sed -i '/^IPADDR.*/a \GATEWAY='$1'' $FILEIP

setdns() {

if grep "^nameserver" $FILEDNS >/dev/null;then

        sed -i 's/^nameserver.*/nameserver '$1'/g' $FILEDNS

        echo -e  "DNS set $1  \033[32malready\033[0m"

        echo -e  "nameserver $1" > $FILEDNS

view() {

if [ $1 = ip ];then

viewip

elif [ $1 = gateway ];then

viewgate

elif [ $1 = dns ];then

viewdns

elif [ $1 = all ];then

viewip() {

ifconfig $ETH|grep "inet addr";echo ""

viewgate() {

route -n|head -2|tail -1

route -n|tail -1

echo ""

viewdns() {

grep "^nameserver" /etc/resolv.conf;echo ""

help() {

HELPFILE=`mktemp /tmp/helpfile.XXXXXX`

cat &gt;&gt;$HELPFILE<&lt;EOF

------------------------------------HELP-------------------------------------

usage:  setip.sh  -r|t [-iamgns] [-i Ethernet_Adapter_num] [-a IPv4_address]

[-m netmask] [-g gateway] [-n dns_server_address] [-s ip|gateway|dns|all]