ifconfigios
ifconfig是傳統的網絡管理命令,用於查看和配置網絡接口,常規使用方法以下:
express
ifconfig [-a] :用於查看當前全部網絡接口的狀態,-a可省略
bash
[root@localhost ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #網絡接口名、狀態、最大傳輸單元
inet 192.168.254.148 netmask 255.255.255.0 broadcast 192.168.254.255 #IP地址、子網掩碼、組播地址
inet6 fe80::20c:29ff:fe1f:3407 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1f:34:07 txqueuelen 1000 (Ethernet) #MAC地址、網絡類型
RX packets 9784 bytes 6661801 (6.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3204 bytes 334670 (326.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 #本地回還測試網卡
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 8 bytes 704 (704.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 704 (704.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:b9:d3:ee txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ipconfig INTERFACE:用於查看具體某個網路接口的信息
服務器
[root@localhost ~]# ifconfig eno16777736
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.254.148 netmask 255.255.255.0 broadcast 192.168.254.255
inet6 fe80::20c:29ff:fe1f:3407 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1f:34:07 txqueuelen 1000 (Ethernet)
RX packets 10412 bytes 6710915 (6.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3386 bytes 363486 (354.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig INTERFACE [up|down]:啓用和關閉某網絡接口網絡
使用ifconfig配置IP地址的兩種方法
dom
ifconfig INTERFACE ip/mask [up],例如:ifconfig eno16777736 192.168.100.100/24
ssh
ifconfig INTERFACE ip mask 例如ifconfig eno16777736 192.168.100.100 255.255.255.0
socket
以上兩種方法配置IP地址可當即生效,可是重啓network服務或重啓電腦後就會失效。
tcp
能夠經過 ifconfig [-]promisc 來開啓或關閉混雜模式,混雜模式主要用於網絡抓包
ide
ifconfig promisc :開啓混雜模式
ifconfig -promisc: 關閉混雜模式
route
route命令主要用於路由查看、建立、修改、刪除等管理操做,具體用法以下:
route -n :查看路由狀態
[root@localhost ~]# route -n
Kernel IP routing table
Destination(目標) Gateway(網關) Genmask(掩碼) Flags(狀態,U表明啓用,G表明從網關鏈接,H表明僅鏈接到某主機) Metric(路由開銷) Ref Use Iface(網絡接口名稱)
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
route add :增長路由條目。
格式:route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] -net爲網絡路由,-host爲主機路由
示例1:增長一條主機路由,目標:10.10.10.1 子網掩碼:255.255.255.0 網關:192.168.254.2
[root@localhost ~]# route add -host 10.10.10.1 gw 192.168.254.2 dev eno16777736
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736
10.10.10.21 192.168.254.2 255.255.255.255 UGH 0 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
示例2:增長一條網絡路由,目標:10.10.10.0 子網掩碼:255.255.255.0 網關:192.168.254.2
[root@localhost ~]# route add -net 10.10.10.0/24 gw 192.168.254.2 dev eno16777736
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736
10.10.10.0 192.168.254.2 255.255.255.0 UG 0 0 0 eno16777736
10.10.10.21 192.168.254.2 255.255.255.255 UGH 0 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
route del:刪除路由條目
格式:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
示例1:刪除一條主機路由,目標:10.10.10.1 子網掩碼:255.255.255.0 網關:192.168.254.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736
10.10.10.0 192.168.254.2 255.255.255.0 UG 0 0 0 eno16777736
10.10.10.21 192.168.254.2 255.255.255.255 UGH 0 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
[root@localhost ~]# route del 10.10.10.21
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736
10.10.10.0 192.168.254.2 255.255.255.0 UG 0 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
示例2:刪除一條網絡路由,目標:10.10.10.0 子網掩碼:255.255.255.0 網關:192.168.254.2
[root@localhost ~]# route del -net 10.10.10.0/24
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
Tip:刪除主機路由條目時可 [-host] 和[netmask]可省略,進指定刪除的目標IP便可,刪除網絡路由時[-net]和[netmask]均不能省略。
DNS設置與解析
通常本地會從/etc/resolv.conf文件中讀取DNS信息,文件內容以下:
# Generated by NetworkManager search localdomain nameserver 192.168.21.2 #格式爲nameserver DNS地址,共計能夠設置三個DNS地址。
DNS正解,FQDN-->IP
dig -t A FQDN :將FQDN解析爲IP地址
[root@localhost ~]# dig -t A n-test.testAD.com ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> -t A n-wangyanglin.zjipst.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43502 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4000 ;; QUESTION SECTION: ;n-test.testAD.com. IN A ;; ANSWER SECTION: n-test.testAD.com. 5 IN A 192.168.252.235 ;; Query time: 26 msec ;; SERVER: 192.168.21.2#53(192.168.21.2) ;; WHEN: Sat May 06 16:04:21 CST 2017 ;; MSG SIZE rcvd: 69
host -t A FQDN(計算機名):將FQDN(計算機名)解析爲IP地址
[root@localhost ~]# host -t A n-test.testAD.com n-test.testAD.com has address 192.168.252.235
DNS反解,IP-FQDN
dig -x ip-address:將ip地址解析爲FQDN名
[root@localhost ~]# dig -x 115.239.210.27 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> -x 115.239.210.27 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 59372 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4000 ;; QUESTION SECTION: ;27.210.239.115.in-addr.arpa. IN PTR ;; AUTHORITY SECTION: 239.115.in-addr.arpa. 5 IN SOA ns.zjnbptt.net.cn. root. 2017021401 3600 1800 604800 3600 ;; Query time: 29 msec ;; SERVER: 192.168.21.2#53(192.168.21.2) ;; WHEN: Sat May 06 16:10:21 CST 2017 ;; MSG SIZE rcvd: 113
host -t PTR IP地址:將IP地址解析爲FQDN名
[root@localhost ~]# host -t PTR 192.168.254.2 2.192.168.254.in-addr.arpa domain name pointer AD03.test.com.
netstat
netstat命令主要用於顯示網絡鏈接、路由表、網絡接口狀態等相關參數
顯示網絡鏈接
格式:netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
參數:
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 全部狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
經常使用組合
-tan:顯示TCP協議相關鏈接的全部狀態信息,IP地址和端口號以數字顯示
-tnl:顯示TCP協議相關處於堅挺狀態的全部鏈接信息,IP地址和端口已數字顯示
-uan:顯示UDP協議相關鏈接的全部狀態信息,IP地址和端口號以數字顯示
-unl:顯示UDP協議相關處於堅挺狀態的全部鏈接信息,IP地址和端口已數字顯示
顯示路由表
格式:netstat {--route|-r} [--numeric|-n]
參數:
-r: 顯示內核路由表
-n: 數字格式
顯示接口統計數據
格式:netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
IP
用戶查看和配置網絡接口、路由、設備、策略路由及隧道
格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
IP link:用於網絡設備鏈路配置
子命令
set DEV {up|down}:將某個網絡接口關閉或開啓
[root@localhost ~]# ip link set eno16777736 down;ip link set eno16777736 up
show DEV :查看指定設備,若不加DEV,默認顯示全部網絡接口
show up :查看出於開啓狀態的網絡設備
IP addr:用戶管理網絡地址和相關協議
格式:ip addr { add | del } IFADDR dev STRING
示例1:爲網卡eno16777736增長一個IP地址192.168.100.100/24
[root@localhost ~]# ip addr add 192.168.100.100/24 dev eno16777736 [root@localhost ~]# ip addr show dev eno16777736 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:1f:34:07 brd ff:ff:ff:ff:ff:ff inet 192.168.21.128/24 brd 192.168.21.255 scope global dynamic eno16777736 valid_lft 1116sec preferred_lft 1116sec inet 192.168.100.100/24 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe1f:3407/64 scope link valid_lft forever preferred_lft forever
示例2:將網卡eno16777736上的IP地址192.168.100.100/24刪除
[root@localhost ~]# ip addr del 192.168.100.100/24 dev eno16777736 [root@localhost ~]# ip addr show eno16777736 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:1f:34:07 brd ff:ff:ff:ff:ff:ff inet 192.168.21.128/24 brd 192.168.21.255 scope global dynamic eno16777736 valid_lft 1382sec preferred_lft 1382sec inet6 fe80::20c:29ff:fe1f:3407/64 scope link valid_lft forever preferred_lft forever
示例3:將網卡eno16777736的IP地址改成192.168.100.100/24
ip addr { add | del } IFADDR dev STRING
label LABEL:配置IP地址時能夠爲該接口指定標註
[scope {global|link|host}]:指明做用域
global: 全局可用;
link: 僅連接可用;
host: 本機可用;
broadcast ADDRESS]:指明廣播地址
ip addr show: 查看指定網絡接口的協議和IP地址的相關信息。子命令以下
[dev]:查看指定網絡設備
[label]:經過網絡設備標註查看指定網絡設備
[primary and secondary] :查看主網絡設備和次網絡設備。
ip address flush - 清空協議和IP地址。
使用格式同show
ip route:管理路由表。子命令以下:
增長路由:ip route add TARGET via GW dev IFACE src SOURCE_IP 。 主機路由TARGET僅填寫IP地址便可,網絡路由TARGET必須填寫 IP/netmask
示例1:增長一條主機路由,主機IP地址爲10.10.10.21
[root@localhost ~]# ip route add 10.10.10.21 via 192.168.1.103 dev eno16777736 src 192.168.1.100 [root@localhost ~]# ip route show dev eno16777736 default via 192.168.21.2 proto static metric 100 10.10.10.21 via 192.168.1.103 src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 metric 100 192.168.21.0/24 proto kernel scope link src 192.168.21.128 metric 100
示例2:增長一條網絡路由,主機網絡地址爲10.10.10.0/24
[root@localhost ~]# ip route add 10.10.10.0/24 via 192.168.1.103 src 192.168.1.100 [root@localhost ~]# ip route show dev eno16777736 default via 192.168.21.2 proto static metric 100 10.10.10.0/24 via 192.168.1.103 src 192.168.1.100 10.10.10.21 via 192.168.1.103 src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 192.168.1.0/24 proto kernel scope link src 192.168.1.100 metric 100 192.168.21.0/24 proto kernel scope link src 192.168.21.128 metric 100
刪除路由:ip route add TARGET
ip route show:查看當前路由表
ip route flush:清空路由表
dev IFACE:指定接口
via PREFIX:指定網關
ss
功能:ss的功能和netstat相似,可是更強大,能夠用來查看網路接口、路由表、網絡鏈接等相關參數
格式:ss [OPTION]... [FILTER]
option參數:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的鏈接
-a: 全部
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
FILTER=[ state TCP-STATE ] [ EXPRESSION ] :FILTER爲模式過濾器,state爲scoket狀態,expression爲相關表達式
state主要有一下幾種:
LISTEN: 監聽
ESTABLISHED:已創建的鏈接
FIN_WAIT_1:套接字已關閉,正在關閉鏈接[發送FIN,沒有收到ACK也沒有收到FIN]
FIN_WAIT_2:套接字已關閉,正在等待遠程套接字關閉[在FIN_WAIT_1狀態下收到發過去FIN對應的ACK]
SYN_SENT: 套接字正在試圖主動創建鏈接[發送SYN後尚未收到ACK]
SYN_RECV:正在處於鏈接的初始同步狀態[收到對方的SYN,但還沒收到本身發過去的SYN的ACK
CLOSED:遠程套接字已經關閉:正在等待關閉這個套接字[被動關閉的一方收到FIN]
expression:
dport = 目標端口
sport = 原端口
示例:( dport = :ssh or sport = :ssh )’
網路配置文件
IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件應用到的設備;
HWADDR:對應的設備的MAC地址;
BOOTPROTO:激活此設備時使用的地址配置協議,經常使用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議爲「no」;
ONBOOT:在系統引導時是否激活此設備;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:設備的唯一標識;
IPADDR:指明IP地址;
NETMASK:子網掩碼;
GATEWAY: 默認網關;
DNS1:第一個DNS服務器指向;
DNS2:第二個DNS服務器指向;
USERCTL:普通用戶是否可控制此設備;
PEERDNS:若是BOOTPROTO的值爲「dhcp」,是否容許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
/etc/sysconfig/network-scripts/route-IFACE
兩種風格:
(1) TARGET via GW
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
給網卡配置多地址:
ifconfig:
ifconfig IFACE_ALIAS
ip
ip addr add
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS注意:網關別名不能使用dhcp協議引導;
給網卡配置多地址:
ifconfig:
ifconfig IFACE_ALIAS
ip
ip addr add
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS注意:網關別名不能使用dhcp協議引導;
配置當前主機的主機名:
hostname [HOSTNAME]/etc/sysconfig/network
HOSTNAME=網絡接口識別並命名相關的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules卸載網卡驅動:
modprobe -r e1000裝載網卡驅動:
modprobe e1000
CentOS 7網絡屬性配置
傳統命名:以太網eth[0,1,2,...], wlan[0,1,2,...]
可預測功能
udev支持多種不一樣的命名方案:
Firmware, 拓撲結構
(1) 網卡命名機制
systemd對網絡設備的命名方式:
(a) 若是Firmware或BIOS爲主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1;
(b) 若是Firmware或BIOS爲PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1;
(c) 若是硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0;
(d) 若是用戶顯式啓動,也可根據MAC地址進行命名,enx2387a1dc56;
(e) 上述均不可用時,則使用傳統命名機制;
上述命名機制中,有的須要biosdevname程序的參與;
(2) 名稱組成格式
en: ethernet
wl: wlan
ww: wwan
名稱類型:
o<index>: 集成設備的設備索引號;
s<slot>: 擴展槽的索引號;
x<MAC>: 基於MAC地址的命名;
p<bus>s<slot>: enp2s1
網卡設備的命名過程:
第一步:
udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
第二步:
biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:
經過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-description
ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
迴歸傳統命名方式:
(1) 編輯/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
(2) 爲grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重啓系統
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start, stop, and manage network connections
如何修改IP地址等屬性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
manual
網絡接口配置tui工具:nmtui
主機名稱配置工具:hostnamectl
status
set-hostname
網絡客戶端工具:
lftp, ftp, lftpget, wget
# lftp [-p port] [-u user[,password]] SERVER
子命令:
get
mget
ls
help
# lftpget URL
# ftp
# wget wget [option]... [URL]... -q: 靜默模式 -c: 續傳 -O: 保存位置 --limit-rates=: 指定傳輸速率