声明:我的操作系统是Ubuntu 18.4,如下所示:

root@cnptucs1:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic

所以设置静态IP地址和默认路由都是通过/etc/netplan/50-cloud-init.yaml文件来设置。我不确定我的设置方法是否适用于别的操作系统的情况。

首先,设置临时的默认路由可以使用route add命令,假如比如我原来的默认路由对应的网卡是eno1,对应的网关为192.168.1.1,现在我想删除这个默认路由,并重新添加一个默认路由,使得对应的网卡为eno6,其对应的网关为0.0.0.0,则可以采用命令route add -net 0.0.0.0 netmask 0.0.0.0 dev eno6,如下图所示:

root@cnptucs1:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eno1
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eno6
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno1
root@cnptucs1:~# route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1 dev eno1
root@cnptucs1:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eno6
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno1
root@cnptucs1:~# route add -net 0.0.0.0 netmask 0.0.0.0 dev eno6
root@cnptucs1:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 eno6
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eno6
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno1

如果我们要设置永久性的默认路由,则我们需要对/etc/netplan/50-cloud-init.yaml文件进行更改。在我的主机上,该文件内容如下:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:ethernets:eno1:addresses: [192.168.1.113/24]dhcp4: falsedhcp6: falseoptional: truegateway4: 192.168.1.1nameservers:addresses: [8.8.8.8,8.8.4.4]eno2:addresses: [100.100.100.10/24]dhcp4: falseoptional: trueeno5:addresses: []dhcp4: trueoptional: trueeno6:addresses: [10.0.0.10/24]dhcp4: falseoptional: truenameservers:addresses: [8.8.8.8,8.8.4.4]version: 2

我们留意到在eno1条目下有一个以gateway4开头的项。该项在哪个网卡对应的条目下,哪个网卡就是默认路由对应的网卡,同时gateway4之后的IP地址指定了默认路由的网关地址,比如此时默认路由对应的网卡是eno1,对应的网关是192.168.1.1,如下图所示:

如果我们把gateway4的值改成0.0.0.0并使用netplan apply重新加载该文件,如下:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:ethernets:eno1:addresses: [192.168.1.113/24]dhcp4: falsedhcp6: falseoptional: truegateway4: 0.0.0.0nameservers:addresses: [8.8.8.8,8.8.4.4]eno2:addresses: [100.100.100.10/24]dhcp4: falseoptional: trueeno5:addresses: []dhcp4: trueoptional: trueeno6:addresses: [10.0.0.10/24]dhcp4: falseoptional: truenameservers:addresses: [8.8.8.8,8.8.4.4]version: 2

则可以看到它增加了一个以0.0.0.0为默认网关的默认路由,如下图所示:

但是如果我们把机器重启,就可以看到默认路由的网关从192.168.1.1变成了0.0.0.0,如下图所示:

如果我们把gateway4这一项从eno1条目下移动到eno6条目下,如下所示:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:ethernets:eno1:addresses: [192.168.1.113/24]dhcp4: falsedhcp6: falseoptional: truenameservers:addresses: [8.8.8.8,8.8.4.4]eno2:addresses: [100.100.100.10/24]dhcp4: falseoptional: trueeno5:addresses: []dhcp4: trueoptional: trueeno6:addresses: [10.0.0.10/24]dhcp4: falseoptional: truegateway4: 0.0.0.0nameservers:addresses: [8.8.8.8,8.8.4.4]version: 2

使用netplan apply之后就可以看到默认路由的网卡变成了eno6,如下图所示:

在Ubuntu中如何设置临时的和永久的默认路由?相关推荐

  1. sublime后缀_在sublime text中如何设置某种扩展名文件的默认语法

    下面由sublime教程栏目给大家介绍在sublime text中设置某种扩展名文件的默认语法,希望对需要的朋友有所帮助! 对于正常扩展名(后缀)的文件,sublime text都能识别. 对于其他不 ...

  2. ubuntu java classpath 设置_在Ubuntu中正确设置java classpath和java_home

    我有错误 Exception in thread"main" java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行编译类时.我使用的是一个非 ...

  3. linux火狐中设置中文,Ubuntu中firefox设置成中文

    收集的maven 仓库地址(maven repository) maven 仓库地址: 共有的仓库http://repo1.maven.org/maven2/http://repository.jbo ...

  4. Ubuntu中防火墙设置

    1.安装防火墙 sudo apt install ufw 2.查看防火墙状态 sudo ufw status 3.开启防火墙 sudo ufw enable 4.关闭防火墙 sudo ufw disa ...

  5. 「Ubuntu」Ubuntu中的python终端配置(修改终端默认python配置,软连接,不同版本python环境配置)

    前言 通过这篇博客(Ubuntu安装Python)安装完Python后,想要在终端直接启动想启动的python版本 此时直接在终端输入python2或者python3,发现系统已经配置好了python ...

  6. ubuntu中打开终端报错Failed to execute default Terminal Emulator

    问题描述 在ubuntu中无法打开终端,提示未能执行默认终端,如下所示 可能原因 错误已经给出了提示,未能执行默认终端,更改默认项就可以了 问题解决 在settings中找到Preferred App ...

  7. samba服务器新建文件权限,Ubuntu中安装samba服务器创建文件共享的方法及普通用户设置共享的问题解析...

    Ubuntu中安装samba服务器创建文件共享的方法及普通用户设置共享的问题解析 发布时间:2011-01-04 19:10:00   作者:佚名   我要评论 本文是基于ubuntu桌面版进行操作说 ...

  8. linux恢复设置文件夹,将.bashrc文件恢复到Ubuntu中的默认设置

    以下介绍在Ubuntu系统中将.bashrc文件恢复默认设置的方法,如果你在Ubuntu系统中把.bashrc文件搞坏了就按下面的方法恢复bashrc文件. 背景 我有一个Ubuntu VM,我经常用 ...

  9. Linux指定网卡优先级,如何在Ubuntu中设置网络连接的优先级?

    问题描述 如果将Ubuntu 11.04计算机同时连接到WiFi和3G,如何设置优先级以使应用程序(浏览器等)首先使用WiFi?如果不可用,则应使用3G. 基本上,我想设置网络连接的使用顺序. 编辑: ...

最新文章

  1. 惊呆了!Spring Boot 还能远程调试?
  2. 顽强的病毒,如何处理
  3. react key的作用
  4. 如何利用多核CPU来加速你的Linux命令
  5. python实现数据恢复软件_pyinstaller还原python代码过程图解
  6. 2015年《大数据》高被引论文Top10文章No.10——我国大数据交易的主要问题及建议...
  7. Springboot06配制拦截器
  8. Python机器学习:线型回归法008实现多元线性回归
  9. X64-CL iPro 采集卡OC-64EO-IPRO0简介
  10. 复合选择器-子选择器(HTML、CSS)
  11. android闪退报错,写了一个android小程序,测试的时候闪退,然鹅log并没有报错
  12. inDesign教程,如何创建风格化的书籍封面?
  13. 验证码这种反人类的存在,浪费全球人口15万小时,有办法取缔吗?
  14. 小技巧 - Chrome 浏览器绕过“请在微信客户端打开链接”
  15. python3用turtle模块画一棵随机樱花树
  16. numpy_10 思维导图
  17. 免费图床-树洞外链-阿离图床
  18. Java每日算法--罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
  19. 牛客网:两两配对值最小
  20. 【微信小程序】微信小程序--倒放音频的实现

热门文章

  1. 漫谈HDR和色彩管理
  2. google colab连接谷歌云盘
  3. 【毕业设计】基于单片机的智能手环 -计步器 嵌入式 物联网 stm32
  4. Python全栈(五)Web安全攻防之7.MySQL注入读写文件和HTTP头中的SQL注入
  5. 新浪微博Android客户端学习记录三:完成登录界面和授权界面
  6. 真无线耳机哪个牌子好?蓝牙耳机十大品牌排行榜!
  7. 【Java注释:单行 多行 文档注释】
  8. 串口助手调试NB模块(BC35G/BC95)
  9. 支付宝 芝麻信用分过600,你不知道的八个特权
  10. MATLAB—— sqrt与sqrtm的区别