Linux網絡屬性配置
一、 ifcfg命令家族:ifconfig,route,netstat
(一) ifconfig命令:接口及地址查看和管理
1.ifconfig [INTERFACE]
默認顯示激活狀態信息
RX表示:接受到的包
error:錯誤的包的個數
dropped:丟包的個數
TX:發送的包
ifconfig -a:顯示所有接口,包括inactive狀態的接口;
2. ifconfig interface [aftype] options | address ...:完成地址配置
(1) ifconfig IFACE IP/MASK [up|down]
(2) ifconfig IFACE IP netmask NETMASK
(3) options:
[-]promisc:混雜模式
注意:立即送往內核中的TCP/IP協議棧,並生效;
3.管理IPv6地址
add addr/prefixlen:添加
del addr/prefixlen:移除
(二) route命令:路由查看及管理
1.路由條目類型;
主機路由:目標地址爲單個IP;
網絡路由:目標地址爲IP網絡;
默認路由:目標爲任意網絡,0.0.0.0/0.0.0.0
2.顯示查看:
(1) route -n:顯示的是IP地址,以數字形式顯示
不加-n直接顯示的是主機名,比較消耗時間
(2) 添加:
route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If]
net:網絡路由
host:主機路由
target [netmask Nm]:網絡地址,要添加掩碼使用netmask指定掩碼
gw GW:gw-->關鍵字 ,GW-->下一跳地址
[[dev] If]:可以不寫,會自動判斷
添加默認網關:
route add default gw GW
(3) 刪除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
刪除默認網關
route del default
(三)netstat命令:
Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
1. 顯示路由表:netstat -rn
-r:顯示內核路由表
-n:數字格式
2. 顯示網絡連接:
(1) netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:TCP協議的相關連接,連接均有其狀態,FSM(Finate State Machine);有限的狀態機
-u:UDP協議相關的連接
-w:raw socket相關的連接
-l:處於監聽狀態的連接
-a:所有狀態
-n:以數字格式顯示IP和Port;
-e:擴展格式
-p:顯示相關的進程及PID;
(2) 常用組合:
-tan, -uan, -tnl, -unl, -tunlp
(3) 傳輸層協議:
tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路,通信完成後還要拆除連接;
udp:無連接的協議;直接發送數據報文;
(4) 顯示接口的統計數據:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]
所有接口:
netstat -i
指定接口:
netstat -I<IFace>
IFACE不可省略,而且與I之間不能有空格
(5) 啓動或禁用接口: ifup/ifdown命令
注意:通過配置文件/etcsysconfig/network-scripts/ifcfg-IFACE來識別接口並完成配置
(四)配置主機名:
1.hostname命令:
(1) 查看:hostname
(2) 配置:hostname HOSTNAME
只對當前系統有效,重啓後無效
2. hostnamectl(CentOS 7)
hostnamectl status:顯示當前主機名信息
hostnamectl set-hostname:設定主機名,永久有效
3. 配置文件:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>
注意:此方法的設置不會立即生效,只有重讀配置文件後會生效,但以後會一直有效
CentOS 7
CentOS 6
4.傳輸層協議:
tcp:面向連接的協議,通信之前,要建立一個虛電路,通信完成之後還要拆除連接
udp:無連接的協議,直接發送數據報文
(五)配置DNS服務器指向:
1. 配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP
DNS_SERVER_IP:最多有三個
2.如何測試(host/nslookup/dig):
dig -t A FQDN(主機名)
FQDN-->IP
dig -x IP :一般不支持反向解析
IP-->FQDN
二、 iproute家族:
(一)ip命令:
show / manipulate routing, devices, policy routing and tunnels
1. ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT:{ link | addr | route | netns }
注意: OBJECT可簡寫,各OBJECT的子命令也可簡寫;
2. ip OBJECT:
(1) ip link:network device configuration,網絡設備配置
① ip link set - change device attributes:管理設備屬性
dev NAME (default):指明要管理的設備,dev關鍵字可省略;
up和down:開啓或關閉
multicast on或multicast off:啓用或禁用多播功能;
name NAME:重命名接口
要先停止接口,然後再修改,修改完成以後再重新啓動此接口即可。
mtu NUMBER:設置MTU的大小,默認爲1500;
netns PID:ns爲namespace,用於將接口移動到指定的網絡名稱空間;
②ip link show - display device attributes:顯示二層設備相關屬性
③ ip link help - 顯示簡要使用幫助;
(2) ip netns:- manage network namespaces.
① ip netns list:列出所有的netns
② ip netns add NAME:創建指定的netns
③ ip netns del NAME:刪除指定的netns
④ ip netns exec NAME COMMAND:在指定的netns中運行命令
(3) ip address - protocol address management:
① ip address add - add new protocol address
ip addr add IFADDR dev IFACE
[label NAME]:爲額外添加的地址指明接口別名
[broadcast ADDRESS]:廣播地址;會根據IP和NETMASK自動計算得到;
[scope SCOPE_VALUE]:
global:全局可用;
link:接口可用;
host:僅本機可用;
② ip address delete - delete protocol address:地址刪除 26
ip addr delete IFADDR dev IFACE
③ ip address show - look at protocol addresses
ip addr list [IFACE]:顯示指定接口的地址;
④ ip address flush - flush protocol addresses:清空所有的
ip addr flush dev IFACE
(4) ip route - routing table management:路由表管理
① ip route add - add new route:添加路由
添加默認路由
ip route add default via GW
② ip route change - change route:修改路由
③ ip route replace - change or add new one:替換路由
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
④ ip route delete - delete route:刪除路由
ip route del TYPE PRIFIX
⑤ ip route show - list routes:顯示路由
TYPE PRIFIX
⑥ ip route flush - flush routing tables:清空路由表
TYPE PRIFIX
⑦ ip route get - get a single route:獲取某單個條目
ip route get TYPE PRIFIX
(二)ss命令:
1. ss [options] [ FILTER ]
(1) options:
① -t:TCP協議的相關連接
② -u:UDP協議的相關連接
③ -w:raw socket相關的連接
④ -l:監聽狀態的連接
⑤ -a:所有狀態的連接
⑥ -n:數字格式
⑦ -p:相關的程序及其PID
⑧ -e:擴展格式信息
⑨ -m:內存用量
⑩ -o:計時器信息
(2) FILTER (過濾器):= [ state TCP-STATE ] [ EXPRESSION ]
① TCP的常見狀態:
TCP FSM:
LISTEN:監聽
ESTABLISEHD:建立的連接
FIN_WAIT_1:一方提出斷開連接等待對方迴應
FIN_WAIT_2:確認
SYN_SENT:
SYN_RECV:
CLOSED:
② EXPRESSION:
dport :目標端口
sport :源端口
三、 配置文件:
(一) IP/NETMASK/GW/DNS等屬性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名稱;
1. 路由的相關配置文件:/etc/sysconfig/networkj-scripts/route-IFACE
2. 配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通過大量參數來定義接口的屬性;其可通過vim等文本編輯器直接修改,也可以使用專用的命令的進行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
3. ifcfg-IFACE配置文件參數:
DEVICE:此配置文件對應的設備的名稱;
ONBOOT:在系統引導過程中,是否激活此接口;
UUID:此設備的惟一標識;
IPV6INIT:是否初始化IPv6協議棧;
BOOTPROTO:激活此接口時使用什麼協議來配置接口屬性,常用的有dhcp、bootp、static、none;
TYPE:接口類型,常見的有Ethernet, Bridge;
DNS1:第一DNS服務器指向;
DNS2:備用DNS服務器指向;
DOMAIN:DNS搜索域;
IPADDR:IP地址;
NETMASK:子網掩碼;CentOS 7支持使用PREFIX以長度方式指明子網掩碼;
GATEWAY:默認網關;
USERCTL:是否允許普通用戶控制此設備;
PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指向覆蓋本地手動指定的DNS服務器指向;默認爲允許;
HWADDR:設備的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服務來控制接口配置;
4. 網絡服務:
network
NetworkManager
5.管理網絡服務:
CentOS 6: service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
6.配置文件修改之後,如果要生效,需要重啓網絡服務;
CentOS 6:# service network restart
CentOS 7:# systemctl restart network.service
7. 用到非默認網關路由:/etc/sysconfig/network-scripts/route-IFACE
支持兩種配置方式,但不可混用;
(1) 每行一個路由條目:
TARGET via GW
(2) 每三行一個路由條目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
8. 給接口配置多個地址:
ip addr之外,ifconfig或配置文件都可以;
(1) ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0, eth0:1, ...
(2) 爲別名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:網卡別名不支持動態獲取地址;
static, none
(二)nmcli命令:
1. nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
2. connection - start, stop, and manage network connections
COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
3.如何修改IP地址等屬性:
nmcli conn modify IFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual