Linux之網絡配置

網絡配置



Linux之網絡配置
Linux之網絡配置

網絡配置文件

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:0

ip route - routing table management
添加路由:ip route add

ip 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和 EtherChannel

Bonding配置

創建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
刪除bond0

ifconfig 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
命令行工具:nmcli

nmcli命令

地址配置工具: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 reload

nmcli命令生效:

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/16

DNS設置,存放在/etc/resolv.conf文件中

PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取等價於下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
Linux之網絡配置

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: 數字格式
Linux之網絡配置

顯示接口統計數據:

netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
Linux之網絡配置

Linux之網絡配置

實驗。三臺Linux充當路由器,兩臺xp虛擬機充當客戶機,如下圖
Linux之網絡配置
Linux之網絡配置

要點分析:虛擬機裝兩塊網卡,由於是克隆的虛擬機,容易混淆端口,導致各種不通,請自行測試。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

Linux之網絡配置
Linux之網絡配置
只需要在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
Linux之網絡配置

在Centos6和Centos 6克隆上各寫一條默認路由即可

route add default gw 10.10.0.2
route add default gw 11.11.0.2
Centos6
Linux之網絡配置
Centos 6克隆
Linux之網絡配置

xp測試效果圖
PING測試
Linux之網絡配置
TRACERT路由測試
Linux之網絡配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章