Ubuntu简单修改IP

在网上搜到的ubuntu改IP都是通过手写interfaces文件,这需要记住语法和格式,很不方便,在Redhat系上,可以使用很方便的NetworkManager的nmtui的Text UI来设置IP,我们只需要填写我们希望的网络信息即可,那么在ubuntu上其实也是有简便的方法;

ubuntu 20使用的netplan来管理,其配置文件使用的YAML,虽然语法格式也简单,但是还是可以有不用记的方式来完成IP的修改;

默认情况下的配置文件在/etc/netplan/00-installer-config.yaml,默认使用DHCP的方式,全部内容为

# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: true
  version: 2

Linux上,大部分软件都包含了自己的文档,常规的包含README,Example之类的,目录在/usr/share/doc/netplan下,有个examples目录,当中包含了很多网络的配置文件模板,如

ls /usr/share/doc/netplan/examples/

bonding_router.yaml               loopback_interface.yaml   static_singlenic_multiip_multigateway.yaml
bonding.yaml                      modem.yaml                static.yaml
bridge_vlan.yaml                  network_manager.yaml      vlan.yaml
bridge.yaml                       openvswitch.yaml          windows_dhcp_server.yaml
dhcp_wired8021x.yaml              route_metric.yaml         wireguard.yaml
dhcp.yaml                         source_routing.yaml       wireless.yaml
direct_connect_gateway_ipv6.yaml  sriov_vlan.yaml           wpa_enterprise.yaml
direct_connect_gateway.yaml       sriov.yaml
ipv6_tunnel.yaml                  static_multiaddress.yaml

找到static.yaml就是我们想要的静态IP配置文件模板,现成的格式和内容;拷贝到/etc/netplan下即可;

# 先备份源文件
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
# 拷贝静态IP配置文件
sudo cp /usr/share/doc/netplan/examples/static.yaml /etc/netplan/

# 简单修改一下;它的默认是这样的
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 10.10.10.2/24
      nameservers:
        search: [mydomain, otherdomain]
        addresses: [10.10.10.1, 1.1.1.1]
      routes: 
        - to: default
          via: 10.10.10.1

enp3s0: 是网卡的名称,ubuntu一般使用的是eth0作为第一块网卡,这点可以通过 ip addr的方式查看,一定写填写ip addr显示的结果
addresses:是需要设置的静态IP和子网,如192.168.1.100/24
nameservers:是DNS服务器设置
search:搜索域,如果内网没有DNS服务器,保持默认或者清空即可;
addresses:DNS地址,一般填写当地的或者阿里的之类的,如223.5.5.5,223.6.6.6
routes:路由设置
via:网关地址,如192.168.1.1

修改完成后,应用即可

sudo netplan apply

netplan作为ubuntu的网络管理程序,还有很多命令,可以使用-h获取

netplan -h
usage: /usr/sbin/netplan  [-h] [--debug]  ...

Network configuration in YAML

optional arguments:
  -h, --help  show this help message and exit
  --debug     Enable debug messages

Available commands:
  
    help      Show this help message
    apply     Apply current netplan config to running system
    generate  Generate backend specific configuration files from /etc/netplan/*.yaml
    get       Get a setting by specifying a nested key like "ethernets.eth0.addresses", or "all"
    info      Show available features
    ip        Retrieve IP information from the system
    set       Add new setting by specifying a dotted key=value pair like ethernets.eth0.dhcp4=true
    try       Try to apply a new netplan config to running system, with automatic rollback
Show Comments