<!--
* @Author : wangxiaodiao
* @Date : 2020-11-04 09:54:36
* @LastEditors : wangxiaodiao
* @LastEditTime : 2020-11-05 19:23:40
* @FilePath : /linux/linux_network.md
-->
本文简单介绍Ubuntu以及centos各版本下的网络配置,希望能帮到大家
## Ubuntu
- Server版本
> 在 Ubuntu Server 版本中,因为只存有命令行模式,所以要想进行网络参数设置,只能通过修改 `/etc/network/interfaces`
- Desktop版本
> 在 Ubuntu Desktop 版本中,除了可以修改 `/etc/network/interfaces` 来进行配置以外;还可以直接在 network-manager 中配置
### networking
1. 配置ip
打开网络配置文件
`sudo vi /etc/network/interfaces`
修改配置信息
``` conf
auto eth0 #网卡名称
iface eth0 inet static #设置静态IP,若设置DHCP则将static改成dhcp即可
address 192.168.0.11 #IP地址,dhcp下该字段不需要
netmask 255.255.255.0 #子网掩码,dhcp下该字段不需要
gateway 192.168.0.1 #网关,dhcp下该字段不需要
```
2. 修改DNS
打开DNS配置文件
`sudo vi /etc/resolv.conf`
改为如下内容:
``` conf
search localdomain #如果本Server为DNS服务器,可以加上这一句,如果不是,可以不加
nameserver 114.114.114.114 #希望修改成的DNS
nameserver 1.2.4.8 #希望修改成的DNS
```
3. 重启网络
`sudo /etc/init.d/networking restart`
### NetworkManager配置网络
NetworkManager 是一种后端网络服务,用于控制 操作系统上的网络接口。它能替代系统networking管理网络。在 Ubuntu Desktop 上,网络管理器是通过图形用户界面管理网络接口的默认服务。因此,如果要通过 GUI 配置 IP 地址,则应启用网络管理器。
Ubuntu 网络管理器的替代方案是系统网络networking,这是 Ubuntu 服务器 18.04 中的默认后端服务
因此,如果要禁用 NetworkManager,则应启用网络服务,而最好在网络管理器运行时禁用网络服务。
1. 禁用NetworkManager并启用networking
首先,运行以下命令集以禁用网络管理器:
``` shell
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
```
启动并启用系统网络服务:
``` shell
sudo systemctl unmask systemd-networkd.service
sudo systemctl enable systemd-networkd.service
sudo systemctl start systemd-networkd.service
```
将接口配置添加到网络计划配置文件(在 /etc/netplan 目录中):
- dhcp配置
``` yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
```
- static静态配置
``` yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.0.11/24]
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
```
通过运行以下命令应用更改:
`sudo netplan Apply`
2. 启用NetworkManager并禁用系networking
启动和启用 Ubuntu 网络管理器可以通过以下步骤完成(在 Ubuntu 服务器中不建议这样做)。
首先,停止系统网络服务:
``` shell
sudo systemctl disable systemd-networkd.service
sudo systemctl mask systemd-networkd.service
sudo systemctl stop systemd-networkd.service
```
在 Ubuntu 上安装网络管理器:
`sudo apt-get install network-manager`
打开 /etc/netplan 目录中的 .yaml 配置文件,然后用以下内容替换现有配置:
``` yaml
network:
version: 2
renderer: NetworkManager
```
使用 netplan 命令为 NetworkManager 生成后端特定配置文件:
`sudo netplan generate`
启动网络管理器服务:
``` shell
sudo systemctl unmask NetworkManager
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
```
现在启用了 NetworkManager,可以通过 GUI 或命令行使用 nmcli 命令完成接口配置。
虽然可以通过网络管理器管理Ubuntu服务器上的网络,但它基本上已被Netplan所取代。因此,建议在 Ubuntu 服务器 18.04 及更晚时使用系统网络。
## CentOS
### networking配置网络
1. 进入网络配置文件目录
首先,确保在root用户下进行操作。进入网络配置文件network-scripts目录下。
`cd /etc/sysconfig/network-scripts/`
找到我们需要修改的配置文件, 如果没有就新建一个配置文件
`vi ifcfg-eth0`
``` conf
BOOTPROTO="static" #static静态,dhcp动态
ONBOOT="yes" #开机启动
IPADDR=192.168.0.230 #静态IP,dhcp不用配置
GATEWAY=192.168.0.1 #默认网关,dhcp不用配置
NETMASK=255.255.255.0 #子网掩码,dhcp不用配置
DNS1=192.168.0.1 #DNS 配置,dhcp不用配置
DNS2=8.8.8.8
```
2. 重启网络
`systemctl restart network`
### NetworkManager
1. 安装nmtui
`yum install NetworkManager-tui`
然后继续去编辑eth0接口的网络管理器配置:
`nmtui edit eth0`
根据ui输入正确的信息即可
2. 重启网络
`systemctl restart network.service`
## 其他
使用ifconfig设置临时静态IP
1. 安装ifconfig工具
- ubuntu
`apt install net-tools`
- centos
`yum install net-tools`
2. 配置临时静态ip
`ifconfig eth0 192.168.0.11`
3. 验证
`ping` 网关,如果网关不通使用 `route` 获取路由表
`route add default gw 192.168.0.1`
设置默认网关
网关设置好,网关能 `ping` 通后, `ping` 公用DNS
`ping 114.114.114.114`
DNS 能ping通还是不能上网的话设置正确的DNS
`vi /etc/resolv.conf`
添加DNS信息
``` conf
nameserver 114.114.114.114
nameserver 1.2.4.8
```