網絡裝置:
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 >>$HELPFILE<<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]