1.ifcfg命令家族
1.1 ifconfig命令
ifconfig 用來查看和管理接口及地址
查看: ifconfig [INTERFACE]
ifconfig -a 顯示所有接口,包括inactive狀態的接口管理: ifconfig interface [aftype] options | address ...
[options] :
[-]promisc 啓用或禁用混雜模式
[-]allmulti 啓用或禁用組播
用來設置IP地址有兩種方式:
ifconfig IFACE IP/MASK [up]ifconfig IFACE IP netmask NETMASK
管理ipv6地址:
ifconfig add addr/prefixlen 添加地址ifconfig del addr/prefixlen 刪除地址
例:設置eth1地址爲192.168.10.10,掩碼爲255.255.255.0
~]# ifconfig eth1 192.168.10.10/24 ~]# ifconfig eth1 192.168.10.10 netmask 255.255.255.0
1.2 route命令
route 管理及查看路由
查看:
route -n 顯示路由條目添加:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]]示例:
~]# route add -net 192.168.10.0 gw 192.168.1.1 dev eth1
刪除:
route del [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]示例:
~]# route del -net 192.168.10.0/24
1.3 netstat命令
netstat 用來顯示網絡連接、路由信息、接口狀態......
顯示路由信息:
netstat -rn
-r :顯示內核路由表
-n :以數字格式顯示
顯示網絡連接:
netstat [--tcp|-t] [--udp|-u] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:TCP協議的相關鏈接,鏈接均有其狀態,FSM
-u:UDP協議的相關鏈接
-U:簡裝版的UDP的相關鏈接
-w:raw socket(裸套接字)相關鏈接
-l:處於監聽狀態的鏈接
-a:所有狀態
-n:以數字格式顯示IP和Port
-e:擴展格式
-p:顯示相關的進程及PID
顯示接口的統計數據:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]
所有接口:
netstat -i
指定接口:
netstat -I<IFace>
例1:查看TCP協議所有處於監聽狀態的鏈接
~]# netstat -tnl
例2:查看UDP協議下所有的狀態並顯示相關PID
~]# netstat -unap
1.4 配置主機名
CentOS :
hostname命令:
查看: hostname
配置: hostname HOSTNAME
當前系統有效,重啓後無效
CentOS 7:
hostnamectl命令:
hostnamectl status 顯示當前主機名信息
hostnamectl set-hostname :設定主機名,永久有效
例:
~]# hostnamectl set-hostname ch
2.iproute2家族
2.1 ip命令
ip 查看或設置路由、網絡配置......
用法:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT = { link | addr | route | netns}...
ip link set 修改設備屬性
dev NAME (default) :指明要管理的設備,/dev可省略
up and down 啓用或禁用接口
arp on or arp off 啓用或禁用arp地址解析
multicast on or multicast off :啓用或禁用多播功能
例:ip link set eth0 multicast on
name NAME:重命名接口
txqlen :設置隊列長度
mtu NUMBER: 設置MTU的大小,默認爲1500
netns PID :ns爲namespace(名稱空間),用於將接口移動到指定的網絡名稱空間
例:ip link set eth1 netns mynet
ip netns : 管理網絡名稱空間
ip netns list 列出所有的netns
ip netns add NAME 創建指定的netns
例:ip netns add mynet
ip netns del NAME 刪除指定的netns
ip netns exec NAME COMMAND 在指定的netns中運行命令
例:ip netns exec mynet ip link show
ip link show 顯示設備屬性
ip address ip地址管理
ip address add 添加
ip addr add IFADDR dev IFACE
label NAME :爲額外添加的地址指明接口別名
例:ip addr add 192.168.10.10/24 dev eth1 label eth1:1
[broadcast ADDRESS] 廣播地址,會根據IP和NETMASK自己計算
[scope SCOPE_VALUE] 作用域:
global:全局可用
link :接口可用
host:僅本機可用
ip address delete 刪除
ip addr delete IFADDR dev IFACE
ip address show 顯示地址
[IFACE] 僅顯示指定接口的地址
ip address flush 清空指定接口的所有地址
ip addr flush dev IFACE
ip route 路由管理
ip route add 添加路由
ip route change 修改路由
ip route replace 修改或添加路由
ip route add TYOE PREFIX via [GW] [dev IFACE] [srv SOURCE_ip]
例:ip route add 192.168.30.0/24 via 192.168.20.1 dev eth1
ip route delete 刪除路由
ip route del TYPE PREFIX
例: ip route del 192.168.30.0/24
ip route show 顯示路由
ip route flush 刷新路由表
ip route get 獲取某路由條目的相關信息
ip route get TYPE PREFIX
例:ip route get 192.168.0.0/24
2.2 ss命令
ss 是用來取代netstat命令的
用法:
ss [optins] [FILTER]
[optins]:
-t :TCP協議的相關鏈接
-u :UDP協議的相關鏈接
-w :raw socket相關鏈接
-l :監聽狀態的鏈接
-a :所有狀態的鏈接
-n :數字格式
-p :相關的程序及其PID
-e :擴展格式信息
-m :內存用量
-o :計時器信息
[FILTER]:
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
EXPRESSION:
dport= 目標端口
sport= 源端口
示例'( dport=:22 or sport=:22 )'
例: ss -tan '( dport=:22 or sport=:22 )'
3.修改配置文件
3.1 主機名的配置文件
配置文件位置:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>
3.2 DNS的配置文件
配置文件位置:/etc/resolv.conf
nameserver DNS_SERVER_IP
最多可以有3個DNS服務器地址
3.3 本地hosts文件
配置文件位置:/etc/hosts
IP FQDN
3.4 路由的配置文件
配置文件位置:/etc/sysconfig/network-scripts/route-IFACE
支持兩種配置方式,但兩者不可混用
1.每行一個路由條目
TARGET via GW
2.每三行一個路由條目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
#:代表數字,第幾組
3.5 網卡的配置文件
配置文件位置:/etc/sysconfig/network-scripts/ifcfg-IFACE
配置文件參數:
DEVICE:此配置文件對應的設備的名稱
ONBOOT:在系統引導過程中,是否激活
NETBOOT:是否支持網絡引導
UUID :此設備的唯一標識
IPv6INIT :是否初始化IPv6協議棧
BOOTPROTO :激活此接口時使用什麼協議來配置接口屬性,常用的有(dhcp,bootp,static,none)
TYPE:指明接口類型,常見的有Ethernet,Bridge
DNS1: 第一DNS服務器指向
DNS2:第二DNS服務器指向
DOMAIN:DNS搜索域
GATEWAY :默認網關
HWADDR: 設備的MAC地址
IPADDR : 本機ip地址
NETMASK :子網掩碼 ,CentOS 7支持使用以長度方式指明子網掩碼
USERCTL :是否允許普通用戶控制此設備
PEERDNS :如果BOOTPROTO的值爲“dhcp” ,是否允許dhcp server分配的dns服務器指向覆蓋本地手動指定的DNS服務器,默認爲允許
NM_CONTROLLED :是否使用NetworkManager服務來控制接口
4.網絡服務管理
配置文件修改後,如果要立即生效,則需要重啓網絡服務
管理網絡服務:
CentOS 6 : service SERVICE [start|stop|restart| status]
CentOS 7 : systemctl {start|stop|restart|status} SERVICE.service
例:重啓網絡服務
~]# service network restart CentOS 6 ~]# systemctl restart network.service CentOS 7