如何將linux主機接入到網絡中

前言:

這篇博客的主旨就想文章題目說的那樣,當咱們拿到一臺新的系統時,咱們怎麼實現讓你的主機鏈接到網絡中。配置網絡就是給你的系統配置IP地址,子網掩碼,網關以及DNS。也就是說配置好這幾項計算機上網的主要條件,就能實現你的系統聯網了。此外,配置網絡總結來說有兩種方法;一是經過命令直接配置。經過命令配置的網絡知識暫時實現系統聯網,想要游泳聯網就要經過把配置內容寫入配置文件來實現了。配置網絡雖然步驟並不複雜可是其背後的知識量仍是至關龐大的,咱們只有瞭解其中的配置原理才能正確高效的去配置網絡從而實現計算機聯網。這篇博客主要介紹了配置網絡的經常使用命令,以及配置文件。經過示例的形式讓你更直觀的去理解配置方法。CentOS7版本通過改版之後這部份內容與以前的CentOS版本相差較大,我會把CentOS7版本的相關知識分開單獨介紹。linux

配置網絡的內容:

IP/mask
路由:默認網關
DNS:服務器指向,域名解析
主DNS服務器
次DNS服務器
第三DNS服務器ios

配置方式:

  1. 靜態指定
    命令:
    ifcfg: ifconfig,route...
    ip: link,addr,route...
    編輯配置文件
    system-config-network-tui
  2. 動態分配
    DHCP: Dynamic Host Configuration Protocolshell

    配置網絡接口

    接口命名方式:
    CentOS 6:不穩定
    以太網:eth [0,1,2,3,...]
    CentOS7:
    網絡接口的命名方式有所變化:網絡接口的命名與物理環境有關。數據庫

ifcfg命令家族

ifconfig,route,netstatcentos

ifconfig:

用來配置網絡接口的命令,當即生效,但不是永久生效。
ifconfig [interface] #不加接口顯示本機全部活動狀態的網絡接口,加接口只顯示指定接口的信息
ifconfig -a # 顯示本機全部網絡接口
ifconfig IFACE [up|down] #啓用禁用網絡接口
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up] #修改網絡地址
示例:[root@CentOS6 ~]#ifconfig eth1 172.18.45.61/16
第二種寫法相對複雜因此不用
ifconfig IFACE IP netmask NETMASK
注意:當即生效 啓
啓用混雜模式:[-]promisc #加-號禁用混雜模式服務器

route:

路由管理命令 ,配置路由信息
route -n #查看路由信息
route add #添加路由
寫法:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
-net :指定添加網絡路由
-host:指定添加主句路由
若是目標網絡是0.0.0.0那麼表示添加的是一個默認路由
target:目標網絡,若是目標是一個主機,那麼表示目標主機的IP地址,若是目標是一個網,那麼表示網絡
gw:網關
dev:指定本地網卡
示例:
增長主機路由:
目標:192.168.1.3 網關:172.18.0.1
route add -host 192.168.1.3 gw 172.18.0.1 dev eth0 #添加主機路由默認mask值是32位精確匹配,因此不用寫
增長網絡路由:
目標:192.168.0.0 網關:172.18.0.1
route add -net 192.168.0.0/24 gw 172.18.0.1 dev eth0
增長默認路由:
route add default gw 172.18.0.1
刪除主機路由:
目標:192.168.1.3 網關172.18.0.1
route dal -host 192.168.1.3
刪除網絡路由:
目標:192.168.0.0 網關:172.18.0.1
route del -net 192.168.0.0/24網絡

netstat:

網絡狀態查看命令app

顯示網絡鏈接:

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [-listening|-l] [--all|-a] [--numeric|-n] [--extend|-e-extend|-e]][--program|-p]
-t: 顯示TCP協議的相關連接
-u:顯示UDP協議的相關連接
-w:顯示裸套接字的相關連接,不通過傳輸層,由應用層直接調用ARP進行數據傳輸。
-l:只顯示監聽狀態的鏈接
-a:顯示全部鏈接
-n:不反解IP地址
-e:拓展格式
-p:顯示與哪一個程序創建鏈接
經常使用組合:
-tan:全部TCP相關的鏈接
-uan:全部UDP相關的鏈接
-tnl:TCP協議下,處於監聽狀態的鏈接
-unl:UDP協議下處於監聽狀態的鏈接(雖然UDP協議下沒有網絡狀態的概念,可是仍然能夠這樣使用)
ssh

顯示路由表:

netstat {--route|-r} [--numeric|-n]
-r: 顯示內核路由表
-n: 數字格式socket

顯示接口統計數據:

netstat {--interfaces|-I|-i} [iface] [--all|-a] [-extend|-e] [--program|-p] [--numeric|-n]
netstat -i #顯示全部網絡接口數據
netstat –IIFACE #顯示指定接口網絡數據I與接口名之間不能有空格
[root@CentOS6 ~]#netstat -Ieth0
ifconfig -s eth0

總結:

ifcfg家族命令:ifconfig,route,netstat

ip家族:

配置Linux網絡屬性:ip命令和ss命令

ip:

ip工具主要做用:顯示或配置路由和設備
用法:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }

鏈接設備管理工具
子命令:

  1. set :設置
  2. show :顯示
    set dev IFACE
    可設置屬性:
    up and down:激活或禁用指定接口
    ifup/ifdown
    show [dev IFACE]:指定接口
    [up]:僅顯示處於激活狀態的接口

    ip addr:

    協議地址管理工具
    用法: ip addr { add | del... } IFADDR dev STRING
    子命令:
  3. add:增長指定接口的輔助IP地址
    三個選用項:
    [label PATTERN] :給指定接口添加別名
    [scope {global|link|host}]:指明做用域
    global: 全局可用
    link: 僅連接可用
    host: 本機可用
    [broadcast ADDRESS]:指明廣播地址
    示例:ip addr add 172.16.100.100/16 dev eth0 label eth0:0
  4. del:刪除指定接口的IP地址
    示例:ip addr del 172.16.100.100/16 dev eth0 label eth0:0
  5. replace:替換指定接口的IP地址
  6. show:顯示指定接口的IP地址
  7. flush:清空指定接口或者指定別名的IP地址
    ip address flush dev
  8. change:修改指定接口的IP地址

    ip route

    路由管理工具
    添加路由:ip route add
    ip route add TARGET via GW dev IFACE src SOURCE_IP
    TARGET:
    主機路由:IP
    網絡路由:NETWORK/MASK
    示例:
    添加網絡路由:ip route add 193.168.0.0/24 via 172.18.0.1
    添加主機路由:ip route add 192.168.1.13 via 172.18.0.1
    添加網關:ip route add default via GW dev IFACE
    ip route add default via 172.18.0.1
    刪除路由:
    ip route del TARGET
    刪除默認路由:
    ip route del default
    顯示和清空路由表:
    ip route show
    ip route flush

    ss:

    網絡狀態查看命令,與nestat命令用法類似,用來代替nestat命令
    使用格式:ss [OPTION]... [FILTER]
    選項:
    -t: tcp協議相關
    -u: udp協議相關
    -w: 裸套接字相關
    -x:unix sock相關
    -l: listen狀態的鏈接
    -a: 全部
    -n: 數字格式
    -p: 相關的程序及PID
    -e: 擴展的信息
    -m:內存用量
    -o:計時器信息
    條件過濾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 )’
    經常使用組合: -tan, -tanl, -tanlp, -uan
    常見用法:
    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詳細信息

網絡配置文件

/etc/sysconfig/network-scripts/ifcfg-IFACE

IP、MASK、GW、DNS相關配置文件
配置屬性:

  1. DEVICE:此配置文件應用到的設備
  2. HWADDR:對應的設備的MAC地址
  3. BOOTPROTO:激活此設備時使用的地址配置協議
    常 用的地址配置協議:
    dhcp:自動獲取IP
    static:靜態指定IP
    none:不用協議,與static效果相同
    bootp
  4. NM_CONTROLLED:NM是NetworkManager的簡寫, 此網卡是否接受NM控制;建議CentOS6爲「no」
  5. ONBOOT:在系統引導時是否激活此設備
  6. TYPE:接口類型;常見有的Ethernet, Bridge
  7. UUID:設備的唯一標識
  8. IPADDR:若是使用的地址配置協議是手動指定的話須要指明IP地址,若是設定開機自動獲取IP那麼不用指定
  9. NETMASK:子網掩碼
  10. GATEWAY: 默認網關
  11. DNS1:第一個DNS服務器指向
  12. DNS2:第二個DNS服務器指向
  13. USERCTL:普通用戶是否可控制此設備
  14. PEERDNS:若是BOOTPROTO的值爲「dhcp」,是否容許 dhcp server分配的dns服務器指向信息直接覆蓋至 /etc/resolv.conf文件中

/etc/sysconfig/network-scripts/route-IFACE

路由配置文件,須要手動建立
注意:需service network restart生效
兩種配置風格:

(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1

(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
注意:兩種風格不混合使用

設置網卡別名:

將多個IP地址綁定到一個NIC上 eth0:1 、eth0:二、 eth0:3
ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ip命令: 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
編輯配置文件:
爲每一個設備別名生成獨立的接口配置文件
• 關閉NetworkManager服務
ifcfg-ethX:xxx
• 必須使用靜態聯網
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
注意:service network restart 生效
參考/usr/share/doc/initscripts-*/sysconfig.txt

setup

/etc/sysconfig/network

配置當前主機的主機名
hostname [HOSTNAME]
HOSTNAME=
NETWORKING=yes #網絡總開關
不會當即生效,重啓機器後生效與hostname [HOSTNAME] 命令配合使用

/etc/hosts

本地主機名數據庫和IP地址的映像
• 對小型獨立網絡有用
• 一般,在使用DNS前檢查
• getent hosts 查看/etc/hosts 內容

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

網絡接口並命名相關的udev配置文件
編輯修改後並不會當即生效
生效方法:
卸載網卡驅動:modprobe -r e1000
裝載 網卡驅動:modprobe e1000

CentOS7 網絡配置

網卡命名:

CentOS 6以前,網絡接口使用連續號碼命名:eth0、eth1等,當 增長或刪除網卡時,名稱可能會發生變化
CentOS 7使用基於硬件,設備拓撲和設置類型命名:

(1) 網卡命名機制 systemd對網絡設備的命名方式

(a) 若是Firmware或BIOS爲主板上集成的設備提供的索引信 息可用,且可預測則根據此索引進行命名,例如eno1

(b) 若是Firmware或BIOS爲PCI-E擴展槽所提供的索引信息 可用,且可預測,則根據此索引進行命名,例如ens1

(c) 若是硬件接口的物理位置信息可用,則根據此信息進行命 名,例如enp2s0

(d) 若是用戶顯式啓動,也可根據MAC地址進行命名, enx2387a1dc56

(e) 上述均不可用時,則使用傳統命名機制
基於BIOS支持啓用biosdevname軟件
內置網卡:em1,em2
pci卡:pYpX Y:slot ,X:port

(2) 名稱組成格式
en: Ethernet 有線局域網
wl: wlan 無線局域網
ww: wwan無線廣域網
名稱類型:
o : 集成設備的設備索引號
s : 擴展槽的索引號
x : 基於MAC地址的命名
p s : enp2s1

網卡設備的命名過程:

第一步:
udev, 輔助工具程序/lib/udev/rename_device /usr/lib/udev/rules.d/60-net.rules
第二步: biosdevname 會根據/usr/lib/udev/rules.d/71biosdevname.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="rhgb quiet net.ifnames=0"
    或:修改/boot/grub2/grub.cfg
  2. 爲grub2生成配置文件
    grub2-mkconfig -o /etc/grub2.cfg
  3. 重啓系統
    建議直接修改配置文件,將/boot/grub2/grub.cfg文件中內核區域以linux16開頭的行,看到fhgb quiet字樣後邊加net.ifnames=0 以後修改/etc/sysconfig/network-scripts文件中的DEVICE項目和NAME項目。另外文件名手動修改,定義別名生效。

    nmcli:

    CentOS7地址配置工具
    與IP命令類似
    用法:
    nmcli [ OPTIONS ] OBJECT { COMMAND | help }
    nmcli 命令強大的命令補全功能:
[root@CentOS7 ~]#nmcli 
agent       device      help        networking  
connection  general     monitor     radio      
[root@CentOS7 ~]#nmcli connection 
add    delete  edit   help    load     monitor  show  
clone  down    export import   modify   reload   up  
[root@CentOS7 ~]#nmcli device 
connect   disconnect  lldp     monitor  set   status
delete    help     modify      reapply  show   wifi

經常使用的兩個OBJECT:

1. connection:

至關於addr用於配置IP地址
子命令: start, stop, and manage network connections
修改IP地址示例:
nmcli connection modify IFACE [+|-] setting.property value
[+|-] #表示添加或者刪除ip地址
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method #ipv4的地址獲取方式
manual | auto #手動或者自動(手動配置的ip地址當即生效)
建立新鏈接static,指定靜態IP,不自動鏈接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254

2. device :

至關於link管理鏈接設備
子命令:show and manage network interfaces
設備即網絡接口,鏈接是對網絡接口的配置。一個網絡接口 可有多個鏈接配置,但同時只有一個鏈接配置生效

修改配置文件執行生效:

systemctl restart network nmcli con reload 這篇博客是否對你配置網絡有幫助呢?有問題以及指教的地方請留言交流吧。

相關文章
相關標籤/搜索