linux設置靜態IP(Ubuntu、CentOS)


  准備工作

  我們要將一個主機設置成靜態IP,首先,主機應該要是正常開機運行的,其次,我們需要先知道一些配置,比如當前的網段,子網掩碼,網關、DNS等,因為你總不會是想隨便配置,不連接訪問局域網中的其它主機吧?而這些信息,我們可以通過運行中的主機得到,當然,如果你事前已知曉這些配置,可以跳過,如果不知道,可以慢慢看來:

  如果當前局域網內有windows系統主機,那么可以直接使用查看,鑒於各系統版本不一樣,界面可能會有區別,所以不妨使用命令行查看:

  使用win+R鍵,輸入cmd,打開命令行,輸入:ipconfig /all,得到的結果中找到你所在局域網的適配器信息,從中可以得到當前的IP,子網掩碼,網關、DNS等

   

  如果沒有windows系統主機,那么看你有沒有啟用NetworkManager,如果啟用了,那么可以類似windows的方式,直接使用:nmcli dev show ,查看所有的信息了:

  NetworkManager啟用方式:  

    #Ubuntu需要安裝,然后啟動服務
    sudo apt install network-manager
    sudo systemctl start NetworkManager

    #CentOS一般會自帶,只需要啟動服務就可以了
    sudo systemctl start NetworkManager

  找到對應的網絡,結果類似下面的樣子(這里沒有DNS,有的時候會有DNS,沒有的話可以參考下面的方式得到)

   
  :這里子網掩碼的兩種表示形式,子網掩碼的數字形式16,就是IP形式的255.255.0.0,數字24對應的就是255.255.255.0

  如果沒有啟動NetworkManager,那就只能使用命令一個個查看了,而查看這些信息的命令有很多,可以自行百度,這里說一種比較通用的

  DNS 

  linux的DNS信息保存在/etc/resolv.conf文件中,輸入:sudo cat /etc/resolv.conf,其中nameserver就是DNS配置(可能會有多個nameserver):

   

  IPv4和子網掩碼(netmask) 

  如果是Ubuntu,使用命令:ifconfig,在結果中找到你所在的局域網網絡,對應的IP接子網掩碼都在上面,同時注意前面的網絡名,后面會用得上,比如我這里是ens33

   

  如果是CentOS,使用命令:ip addr,在結果中找到你所在的局域網網絡,對應的IP接子網掩碼都在上面,同時注意前面的網絡名,后面會用得上,比如我這里是ens33

  

  網關(gateway)

  使用命令:ip route,其中default項就是默認網關:

  

 

  開始設置

  Ubuntu

  如果是Ubuntu16.04,需要修改/network/interfaces來實現,輸入命令:sudo vim /etc/network/interfaces

    

  auto ens33
  iface ens33 inet static
  address 192.168.139.128
  netmask  255.255.255.0
  gateway  192.168.139.2
  dns-nameserver 192.168.139.2

  修改完成之后,使用:sudo /etc/init.d/networking restart 重啟網絡,然后就可以了,如果不行,可能需要重啟主機了

  如果是Ubuntu18.04或Ubuntu20.04,設置靜態網絡可以使用netplan完成,在/etc/netplan目錄下有個yaml文件(文件名可能都不一樣)。

  輸入命令:sudo vim /etc/netplan/50-cloud-init.yaml,(這里50-cloud-init.yaml是我的配置文件名,每個人的可能不一樣)修改內容如下: 

    

network:
  version: 2
  ethernets:
    ens33:
      dhcp4: false
      addresses: [192.168.139.128/24]
      gateway4: 192.168.139.2
      nameservers:
        addresses: [192.168.139.2]

  修改完成之后,使用命令:sudo netplan apply,來使得配置生效

  CentOS

  CentOS的每個網卡,在/etc/sysconfig/network-scripts目錄下都會有一個 ifcfg-[網絡名] 的文件,比如我的就是 ifcfg-ens33

  如果安裝了NetworkManager,我們可以直接使用nmcli命令來配置:  

    #配置靜態IP,ens33是網絡名,192.168.139.130/24是IP和網卡,需要根據自己的實際填寫
    sudo nmcli con mod ens33 ipv4.addresses 192.168.139.130/24
    #配置網關
    sudo nmcli con mod ens33 ipv4.gateway 192.168.139.2
    #配置IP為手動設置,即從dhcp變為static
    sudo nmcli con mod ens33 ipv4.method manual
    #配置DNS
    sudo nmcli con mod ens33 ipv4.dns "192.168.139.2"

  使用 nmcli 命令做的那些更改都將永久保存在文件 /etc/sysconfig/network-scripts/ifcfg-[網絡名](比如我這里就是ifcfg-ens33)

  如果沒有安裝NetworkManager,我們可以手動的修改這個文件 /etc/sysconfig/network-scripts/ifcfg-[網絡名](比如我這里就是ifcfg-ens33)

    

  ONBOOT=yes               # 開機啟用
  BOOTPROTO=static         # 設置靜態  
  IPADDR=192.168.139.130   # 設置的靜態IP地址  
  NETMASK=255.255.255.0    # 子網掩碼  
  GATEWAY=192.168.139.2    # 網關地址  
  DNS1=192.168.139.2       # DNS服務器

  安裝自己的配置設置上圖中的部分參數就可以了,(注意,如果配置項存在,就修改,不存在就添加,比如BOOTPROTO應該是存在的,需要修改dhcp成static

 


免責聲明!

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



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