linux網絡配置詳解


一:相關網絡配置的文件

1、網卡名配置相關文件

網卡名命名規則文件:

/etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:db:c9:5c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

PCI device 0x8086:0x100f (e1000)

SUBSYSTEM"net", ACTION"add", DRIVERS"?*", ATTR{address}"00:0c:29:db:c9:66", ATTR{type}"1", KERNEL"eth*", NAME="eth1"

修改網卡命名示例:

1、查看網卡的驅動並且卸載網卡驅動

[root@rhel6 ~]# ethtool -i eth0
driver: e1000 #網卡驅動
[root@rhel6 ~]# modprobe -r e1000 #卸載網卡驅動

2、修改70-persistent-net.rules文件

3、重新加載網卡驅動並且重啟網絡服務

[root@rhel6 ~]# modprobe e1000   #重新加載網卡驅動
[root@rhel6 ~]# /etc/rc.d/init.d/network restart #重啟網絡服務

將CentOS7.x網卡名改為傳統命名方式:

1、修改/etc/default/grbu文件

# sed -i.bak -r 's/(GRUB_CMDLINE_LINUX=.*)"/\1 net.ifnames=0"/' /etc/default/grub

2、生成新的grub配置文件並重啟生效

grub2-mkconfig -o /etc/grub2.cfg

2、網絡配置相關文件

網絡配置參考文件:/usr/share/doc/initscripts-9.03.53/sysconfig.txt

網卡的配置在:/etc/sysconfig/network-scripts/下,配置文件:ifcfg-網卡名

配置文件示例:

復制代碼

[root@rhel6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static|dhcp|none
IPADDR=192.168.0.6
NETMASK=255.255.255.0
#PREFIX=24 #子網掩碼
GATEWAY=192.168.0.1
DNS1=114.114.114.114
DNS2=8.8.8.8
DNS3=1.1.1.1
TYPE=Ethernet
ONBOOT=yes
HWADDR=00:0C:29:DB:C9:5C
#MACADDR=00:0C:29:DB:C9:5A #修改MAC地址
UUID=38d329c5-b1bb-491b-a669-47422cfda764
NM_CONTROLLED=no

復制代碼

網絡配置文件常用配置參數詳解:

  • DEVICE:此配置文件應用到的設備
  • HWADDR:對應的設備的MAC地址
  • BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp
  • NM_CONTROLLED:NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議為“no”(NetworkManager:圖形界面的網絡配置工具,不支持橋接,強烈建議關閉)
  • ONBOOT:在系統引導時是否激活此設備
  • TYPE:接口類型,常見有的Ethernet, Bridge
  • UUID:設備的惟一標識
  • IPADDR:指明IP地址
  • NETMASK:子網掩碼
  • GATEWAY: 默認網關
  • DNS1:第一個DNS服務器指向
  • DNS2:第二個DNS服務器指向
  • USERCTL:普通用戶是否可控制此設備
  • PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中

3、其他相關配置文件

路由配置文:/etc/sysconfig/network-scripts/route-interface

  • NETWOEK/NETMASK via GATEWAY

DNS配置文件:/etc/resolv.conf

  • nameserver DNS_IP

本地網絡解析配置文件:/etc/hosts

  • IP  hostname alias

主機名配置文件:

  • centos6.x:/etc/sysconfig/network
  • centos7.x:/etc/hostname

二:關於網絡的配置Tools

①ifconfig

  • -a:查看啟用和被禁用的網卡信息
  • interface {up|down}:啟用或禁用網卡
  • interface IP/NETMASK:臨時設置IP
  • interface [-]promisc:設置網卡的工作在混雜模式
  • -s interface:查看指定網卡的流量信息

②route

  • -n:以數字方式顯示,不解析,提高效率
  • add {-net | -host} NETWORK/NETMASK gw GATEWAY dev DEVICE 添加路由
  • {add | del} default gw GATEWAY 添加或刪除默認路由
  • del {-net | -host} NETWORK/NETMASK gw GATEWAY 刪除路由
route add -net 10.0.0.0/8 gw 172.20.0.1 dev eth1 #添加一條到10.0.0.0網段的路由
route del -net 10.0.0.0/8 gw 172.20.0.1 #刪除10.0.0.0網段的路由

③netstat

  • -n:以數字方式顯示,不解析,提高效率
  • -r:查看路由表
  • -t:TCP相關
  • -u:UDP相關
  • -w:裸套接字
  • -l:查看處於監聽狀態的端口
  • -a:查看所有狀態的端口
  • -e:顯示更詳細的信息
  • -p:查看相關的進程PID
  • -i:顯示網卡流量
  • -Iinterface:查看指定網卡的流量信息 == ifconfig -s interface
[root@centos7 ~]# netstat -tnulp  #顯示TCP,UDP的監聽狀態及相關進程的端口    

④ip

  • link
    • set interface {up|down}:啟用或禁用網卡
    • show interface:顯示指定網卡信息
  • addr
    • add IP/NETMASK [label interface:#] [scope {global | link | host}] [broadcast IP] dev interface:添加配置臨時地址
      • label:指定別名
      • scope:作用域
        • global:作用域為全局
        • link:僅和此網卡相連的網絡生效
        • host:僅主機可用
      • broadcast:設定廣播地址
    • del dev interface [label interface:#]:刪除IP
    • flush dev interface [label interface:#]:清空IP
  • route
    • add IP/NETMASK via GATEWAY dev interface:添加路由
    • add default via GATEWAY dev interface:添加默認路由
    • del IP/NETMASK via GATEWAY dev interface:刪除路由
    • flush:清空路由表
    • show:查看路由表
[root@centos7 ~]# ip addr add 192.168.1.100/24 label eth0:0 dev eth0 #設置臨時IP地址

 

⑤ss

  • -n:以數字方式顯示,不解析,提高效率
  • -t:TCP相關
  • -u:UDP相關
  • -w:裸套接字
  • -x:顯示unix sock相關信息
  • -l:查看處於監聽狀態的端口
  • -a:查看所有狀態的端口
  • -e:顯示更詳細的信息
  • -p:查看相關的進程PID
  • -m:內存用量
  • -o:計時器信息
  • -s:顯示當前socket詳細信息
  • state TCP_STATE '( dport = :ssh or sport = :ssh )'
    • established
    • listen
    • fin_wait_1
    • fin_wait_2
    • syn_sent
    • syn_recv
[root@centos7 ~]# ss state established '( dport = :ssh or sport = :ssh )' #查看已連接狀態的ssh

 

⑥nmcli:地址配置工具(CentOS7.x)

子命令補全功能:yum install bash-completion ,依賴epel源

1、查看信息

[root@centos7 ~]# nmcli device status
[root@centos7 ~]# nmcli connection show

2、刪除配置

[root@centos7 ~]# nmcli connection delete ens33

3、增加配置

[root@centos7 ~]# nmcli connection add con-name ens33 ifname ens33 type ethernet ipv4.method auto connection.autoconnect yes
  • con-name ens33:配置文件名稱
  • ifname ens33:指定網卡設備
  • type ethernet:網絡類型以太網
  • ipv4.method auto:自動獲取IP
  • connection.autoconnect yes:開機自啟動

 4、切換配置

[root@centos7 ~]# nmcli connection up ens33

 5、修改配置文件名ens33 --> ens33-static

[root@centos7 ~]# nmcli connection modify ens33 con-name ens33-static

 6、修改配置IP

[root@centos7 ~]# nmcli connection modify ens33-static ipv4.addresses 192.168.0.100/24 ipv4.gateway 192.168.0.1 ipv4.method manual
  • ipv4.addresses 192.168.0.100/24:IP地址
  • ipv4.gateway 192.168.0.1:網關
  • ipv4.method manual:手動獲取,靜態地址必須配置為手動,否則默認動態

7、重新讀取配置文件

[root@centos7 ~]# nmcli connection reload

8、斷開和連接網絡連接

[root@centos7 ~]# nmcli device disconnect ens33
[root@centos7 ~]# nmcli device connect ens33

9、查看網絡配置的詳細信息

[root@centos7 ~]# nmcli connection show ens33

10、在配置中再添加一個地址

[root@centos7 ~]# nmcli connection modify ens33-static +ipv4.addresses 10.0.0.2/8

三:其他相關工具

ping:測試網絡命令

  • -c count:ping的次數
  • -W timeout:超時時間,配合-c使用
  • -I ipaddress:指定用自己主機的IP去ping對方主機
  • -s size:每次ping發出的數據包大小,最大值65507
  • -f:竭盡自己主機的能力發出數據包
[root@centos7 ~]# ping -c1 -W1 192.168.0.6 #腳本中常用的ping測試,ping一次,超時時間1s
[root@centos7 ~]# ping -s 65507 -f 192.168.0.6 #竭盡自己所能,向192.168.0.6發出大數據包,ddos攻擊

tcpdump:抓包工具

  • -n:禁止解析IP
  • -i interface:指定網卡接口
  • tcp|udp|icmp|arp:指定包協議

mtr:網絡診斷工具

traceroute:跟蹤路由

tracepath:跟蹤路由

ifup:啟用網卡

ifdown:禁用網卡

setup:字符界面配置工具(centos6.x)

system-config-network-tui:字符界面網絡配置工具(centos6.x)

hostnamectl:設置主機名工具(centos7.x)

  • status
  • set-hostname HOSTNAME

mm-connection-editor:圖形界面網絡配置工具(centos7.x)

nmtui:字符界面配置工具(centos7.x)

  • nmtui-connect
  • nmtui-edit
  • nmtui-hostname

lftp | lftp [-u user[,pass]] [-p port] [-e cmd] FTPSERVER:FTP客戶端工具

  • get
  • mget
  • put
  • mput
  • mirror DIR

lftpget URL:非交互式下載ftp服務器的文件

wget:網絡下載工具

  • -q:靜默模式
  • -c:斷點續傳
  • -P /path/DIRNAME:下載的文件保存到指定文件夾
  • -O /path/FILENAME:下載的文件保存到指定位置,並重命名
  • --limit-rate=# K|M:限速至# K|M

elinks | links:字符界面web瀏覽器

  • -source:查看網頁源代碼
  • -dump:只顯示文字

四:Bonding和Team

++Bonding++

綁定:將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。

工作模式:

mode 0:balance-rr 輪調策略:多張網卡可以輪流發數據包,實現負載均衡的功能

mode 1:active-backup 主備策略:其中active網卡的發數據包,其他備用

mode 3:broadcast 廣播策略:每個網卡都會發一份包

配置示例:

1、創建bonding的設備配置文件

復制代碼
# cat >/etc/sysconfig/network-scripts/ifcfg-bond0 <<EOF
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS="miimon=100 mode=1"
IPADDR=192.168.0.6
PREFIX=24
EOF
復制代碼

miimon=100:每100ms進行一次鏈路檢測

2、配置bonding的從屬網卡

復制代碼
[root@rhel6 ~]# cat >/etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
EOF
[root@rhel6 ~]# cat >/etc/sysconfig/network-scripts/ifcfg-eth1 <<EOF
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
EOF
復制代碼

3、重啟網絡服務並查看bonding狀態

復制代碼
# /etc/rc.d/init.d/network restart
[root@rhel6 ~]# cat /proc/net/bonding/bond0 |head
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0 #現在eth0在工作狀態
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

復制代碼

刪除bonding配置示例:

1、禁用bond0並卸載bonding模塊

# ip link set bond0 down
# modprobe -r bonding

2、還原配置文件,重啟網絡

附:官方文檔鏈接

++Team++

網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量。

工作模式:runner

  • broadcast:廣播
  • roundrobin:輪調
  • activebackup:主備

1、創建一個網絡組接口

[root@centos7 ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

2、配置team0

[root@centos7 ~]# nmcli connection modify team0 ipv4.addresses 172.20.108.244/16 ipv4.method manual ipv4.gateway 172.20.0.1

3、創建port接口

[root@centos7 ~]# nmcli connection add con-name team0-eth1 type team-slave ifname eth1 master team0
[root@centos7 ~]# nmcli connection add con-name team0-eth2 type team-slave ifname eth2 master team0

 4、啟動team0及從屬接口

[root@centos7 ~]# nmcli connection up team0
[root@centos7 ~]# nmcli connection up team0-eth1
[root@centos7 ~]# nmcli connection up team0-eth2

5、查看工作狀態

[root@centos7 ~]# teamdctl team0 state

6、配置文件示例:

[root@centos7 network-scripts]# cat ifcfg-team0
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=6c68702b-2ec5-4ca3-b7a2-0b609316c75c
ONBOOT=yes
DEVICETYPE=Team
#IPADDR=172.20.108.244
#PREFIX=16
#GATEWAY=172.20.0.1

[root@centos7 network-scripts]# cat ifcfg-team0-eth1
NAME=team0-eth1
UUID=9be1b6bf-3f40-4d93-b686-aff1b6c32ec8
DEVICE=eth1
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort

[root@centos7 network-scripts]# cat ifcfg-team0-eth2
NAME=team0-eth2
UUID=5f26b005-4f7d-4c13-af42-2fe98f7ec545
DEVICE=eth2
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort

ifcfg-team0配置文件

7、刪除team0

[root@centos7 ~]# nmcli connection down team0
[root@centos7 ~]# nmcli connectioni delete team0-eth0
[root@centos7 ~]# nmcli connectioni delete team0-eth1

五:Bridge

橋接:把一台機器上的若干個網絡接口“連接”起來。其結果是,其中一個網口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互相轉發。網橋就是這樣一個設備,它有若干個網口,並且這些網口是橋接起來的。與網橋相連的主機就能通過交換機的報文轉發而互相通信。

主機A發送的報文被送到交換機S1的eth0口,由於eth0與eth1、eth2橋接在一起,故而報文被復制到eth1和eth2,並且發送出去,然后被主機B和交換機S2接收到。而S2又會將報文轉發給主機C、D。

1、創建一個網橋

[root@centos7 ~]# nmcli connection add type bridge con-name br0 ifname br0

 

2、配置網橋

[root@centos7 ~]# nmcli connection modify br0 ipv4.addresses 192.168.0.7/24 ipv4.method manual

 

3、將從屬網卡加入網橋

[root@centos7 ~]# nmcli connection add type bridge-slave con-name br0-eth0 ifname eth0 master br0

 

4、啟用網橋並查看狀態

[root@centos7 ~]# nmcli connection up br0
[root@centos7 ~]# nmcli connection up br0-eth0
[root@centos7 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c295df21e       yes             eth0

 

5、配置文件示例:

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
STP=yes
BRIDGING_OPTS=priority=32768
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
UUID=94582afc-01a1-406d-a25a-91be7c350c23
ONBOOT=yes
IPADDR=192.168.0.7
PREFIX=24

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0-eth0
TYPE=Ethernet
NAME=br0-eth0
UUID=9dd2a7fc-f143-4243-89ca-85f223e34348
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

網橋配置文件

 

+個人學習筆記+ 記錄於2018.5.3 16:10


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM