網絡配置
網絡配置文件
ONBOOT:在系統引導時是否激活此設備
TYPE:接口類型;常見有的Ethernet, Bridge
UUID:設備的惟一標識
IPADDR:指明IP地址
NETMASK:子網掩碼
GATEWAY: 默認網關
DNS1:第一個DNS服務器指向
DNS2:第二個DNS服務器指向
USERCTL:普通用戶是否可控制此設備
PEERDNS:如果BOOTPROTO的值爲“dhcp”,YES將允許dhcp server分配的dns服務器信息直接覆蓋至/etc/resolv.conf文件,NO不允許修改resolv.conf
配置網卡信息:
DEVICE=eth0
NAME=eth0
BOOTPROTO=static or none
IPADDR=192.168.0.251
PREFIX=24 or NETMASK=255.255.255.0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=114.114.114.114
配置網絡接口
ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
ifconfig網卡別名命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ping -I 172.20.0.16 172.20.0.7 強制使用哪個IP去ping一個ip
監測ping包
tcpdump -i eth1 icmp -nn
注意:linux eth0網卡可以配置多個ip地址,如果希望可以自動獲取ip地址和設置靜態地址,可以eth0配置dhcp,eth0:1設置靜態。
查看誰在用6000這個端口
lsof -i :6000
查看eth0每0.5秒,接受包的實時量
watch -n0.5 netstat -Ieth0
ip命令:
如果ip命令不能自動補全,可安裝epel源裏的bash-completion
配置Linux網絡屬性:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link - network device configuration
-------- set dev IFACE
-------------可設置屬性:
-----------------up and down:激活或禁用指定接口
--------------------------ifup/ifdown
-------- show [dev IFACE]:指定接口
-----------------[up]:僅顯示處於激活狀態的接口
網卡關閉和重命名ip link set eth0 down
ip link set eth0 name eth1
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
-----------global: 全局可用
-----------link: 僅鏈接可用
-----------host: 本機可用
[broadcast ADDRESS]:指明廣播地址ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]ip addr flush 使用格式同show
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0ip route - routing table management
添加路由:ip route addip route add TARGET via GW dev IFACE src SOURCE_IP
-----------------TARGET:
-----------------------------主機路由:IP
-----------------------------網絡路由:NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1添加網關:
ip route add default via GW dev IFACE
ip route add default via 172.16.0.1刪除路由:
ip route del TARGET
顯示路由:
ip route show|list
清空路由表:
ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0網卡設置別名
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
網絡接口配置-bonding
Bonding工作模式
Mode 0 (balance-rr)
Mode 1 (active-backup)
Mode 3 (broadcast)
active-backup、balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置。其他綁定模式需要配置交換機以便整合鏈接。如:Cisco 交換機需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannelBonding配置
創建bonding設備的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0-------------------------------------DEVICE=bond0
-------------------------------------BOOTPROTO=none
-------------------------------------BONDING_OPTS= “miimon=100 mode=0”
如果miimon=100,那麼系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路/etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------DEVICE=eth0
-------------------------------------BOOTPROTO=none
-------------------------------------MASTER=bond0
-------------------------------------SLAVE=yes
-------------------------------------USERCTL=no查看bond0狀態:/proc/net/bonding/bond0
刪除bond0ifconfig bond0 down
rmmod bonding詳細幫助:
/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt
採用傳統命名方式
編輯/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
或:修改/boot/grub2/grub.cfg爲grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
重啓系統
CentOS7主機名
配置文件:/etc/hostname ,默認沒有此文件,通過DNS反向解析獲取主機名,主機名默認爲:localhost.localdomain
顯示主機名信息
hostname
hostnamectl status設置主機名
hostnamectl set-hostname centos7.magedu.com
刪除文件/etc/hostname,恢復主機名localhost.localdomain
CentOS 7網絡配置工具
字符配置tui工具:nmtui
命令行工具:nmclinmcli命令
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device help
connection - start, stop, and manage network connections
nmcli connection help修改IP地址等屬性:
nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ipv4.gateway
ipv4.dns1 ipv4.method manual | auto修改配置文件執行生效:
systemctl restart network
nmcli con reloadnmcli命令生效:
nmcli con down eth0 ;nmcli con up eth0
顯示所有包括不活動連接
nmcli con show
顯示所有活動連接
nmcli con show --active
顯示網絡連接配置
nmcli con show "System eth0“
顯示設備狀態
nmcli dev status
顯示網絡接口屬性
nmcli dev show eth0
創建新連接default,IP自動通過dhcp獲取
nmcli con add con-name default type Ethernet ifname eth0
刪除連接
nmcli con del default
創建新連接static ,指定靜態IP,不自動連接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
啓用static連接配置
nmcli con up static
啓用default連接配置
nmcli con up default
查看幫助
nmcli con add help
修改連接設置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16DNS設置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取等價於下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
nmcli實現bonding
添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
添加從屬接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如無爲從屬接口提供連接名,則該名稱是接口名稱加類型構成要啓動綁定,則必須首先啓動從屬接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1啓動綁定
nmcli con up mybond0
Centos默認有兩個網卡管理服務,NetworkManager和network。可能存在衝突,關閉NetworkManager即可
service NetworkManager stop;service network restart
ping -s 65507 192.168.0.7 -f 強制發大包PING命令使用
arp -n 查看arp地址映射關係
arp -s 172.168.0.1 MCAADDR 綁定ip和物理地址,防止arp欺騙
linux虛擬機複製副本後,開機後選擇我已經複製了虛擬機,開機進入系統後,會看到ip地址名稱爲eth1,因爲舊網卡etn0的MAC地址和源主機衝突,可自行更改名稱爲eth0,具體操作如下
vim /etc/udev/rules.d/70-persistent-net-rules
刪除裏面eth0的行
更改下面eth1爲eth0
ethtool -i eth1 查看eth1網卡驅動 ethool工具默認不存在,需要yum安裝httpd-tools
rmmod e1000 卸載網卡驅動
modprobe e1000重新加載網卡驅動
路由表:
目標網絡:網絡ID
netmask
接口:從本設備哪個接口出去能到底目標網絡
網關:到達目標網絡,將數據報文發送給下個路由器的接口的IP
route命令
查看網關
route -n
添加默認路由:
route add default gw 172.16.0.1
刪除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -host 192.168.1.3
route del -net 192.168.0.0 netmask 255.255.255.0添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
route add -net 172.22.0.0/16 gw 10.0.0.201
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0開啓路由轉發功能
echo 1 > /pro/sys/net/ipv4/ip_forward
ss命令:
常用組合:-tan, -tanl, -tanlp, -uan
FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態:
-------------------tcp finite state machine:
-------------------LISTEN: 監聽
-------------------ESTABLISHED:已建立的連接
-------------------FIN_WAIT_1
-------------------FIN_WAIT_2
-------------------SYN_SENT
-------------------SYN_RECV
-------------------CLOSED
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’常見用法
ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 顯示所有已建立的ssh連接
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連接
ss -s 列出當前socket詳細信息
netstat命令
常用組合:
-tan, -uan, -tnl, -unl
顯示網絡連接:
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顯示路由表:
netstat {--route|-r} [--numeric|-n] -r: 顯示內核路由表|-nr: 數字格式
顯示接口統計數據:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
實驗。三臺Linux充當路由器,兩臺xp虛擬機充當客戶機,如下圖
要點分析:虛擬機裝兩塊網卡,由於是克隆的虛擬機,容易混淆端口,導致各種不通,請自行測試。Centos6默認有兩個網卡管理服務,NetworkManager和network。可能存在衝突,關閉NetworkManager即可
三個虛擬機的seliux和防火牆全部關閉,全部需要開啓路由轉發功能Centos 6
service NetworkManager stop
service iptables stop
chkconfig iptables off
Centos 7
systemctl stop firewalld
systemctl diable firewalld
echo 1 > /pro/sys/net/ipv4/ip_forward
只需要在centos7上配置兩條靜態路由,一條通往192.168.0.0網段 另一條通往172.16.0.0網段,即可route add -net 172.16.0.0/16 gw 11.11.0.1
route add -net 192.168.0.0/24 gw 10.10.0.1
centos7在Centos6和Centos 6克隆上各寫一條默認路由即可
route add default gw 10.10.0.2
route add default gw 11.11.0.2
Centos6
Centos 6克隆xp測試效果圖
PING測試
TRACERT路由測試