Ubuntu 多网卡安全路由配置(SSH 不断线版)

Ubuntu 多网卡路由配置笔记(内网 + 外网同时通)(SSH断线版)文章浏览阅读386次,点赞4次,收藏5次。本文介绍了Ubuntu 如何配置双网卡设备的路由规则,使默认流量走外网(192.168.2.0/24)的同时保留内网(192.168.1.0/24)访问能力。通过强制覆盖路由命令(ip router replace)分别设置内网和外网路由,并提供了Ubuntu 24.04下通过rc.local实现开机自启的配置方法。文章包含路由测试指令和两种开机启动方案(推荐rc.local方式),强调该方案能保障SSH连接不中断,且灵活易管理。所有操作均基于作者使用随身WiFi(LTE无线路由器)作为外网的场景。 https://blog.csdn.net/qq_35086097/article/details/148685880

此文章前提

场景说明

设备有两个网卡:

  • eh0:连接 内网(192.168.1.0/24);

  • MAC001001001:连接 外网(192.168.2.0/24,例如随身WiFi);


目标

  • 默认流量走外网;

  • 保留内网访问(如通过 192.168.1.1 访问路由器);

  • SSH 不中断(即使你通过内网登录);

  • 重启后自动恢复配置。


查看当前路由

ip route show

正确的路由配置(SSH 不断线)

1. 设置内网路由(直连,不能用 via)

sudo ip route replace 192.168.1.0/24 dev eh0 proto kernel scope link src $(ip -4 addr show dev eh0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')

自动获取当前 IP,避免硬编码,确保不影响 SSH。

2. 设置默认路由走外网

sudo ip route replace default via 192.168.2.1 dev MAC001001001 metric 100

3. 查看/设置优先级 

查看优先级命令:

ip route show

 不断开SSH 设置优先级 

sudo ip route replace 192.168.1.0/24 dev eh0 proto kernel scope link src 192.168.1.188
sudo ip route replace default via 192.168.1.1 dev eh0  metric 200
sudo ip route replace default via 192.168.2.1 dev Mac00101010101 metric 100

验证路由状态

ip route show | grep -E '192\.168\.1\.0|default'

示例输出:

default via 192.168.2.1 dev MAC001001001 metric 100
# 你的IP==192.168.1.188  
192.168.1.0/24 dev eh0 proto kernel scope link src 192.168.1.188

测试网络连通性

ping -c4 192.168.1.1           # 测试内网
ping -c4 8.8.8.8               # 测试外网
curl http://www.baidu.com      # 测试 DNS + HTTP

🔁 设置开机自动生效(Ubuntu 24.04)

Ubuntu 24.04 默认禁用 rc.local,需要手动启用。

1. 创建 /etc/rc.local

sudo nano /etc/rc.local

写入:

#!/bin/bash
​
IP=$(ip -4 addr show dev eh0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
ip route replace 192.168.1.0/24 dev eh0 proto kernel scope link src $IP
ip route replace default via 192.168.2.1 dev MAC001001001 metric 100
exit 0

2. 设置权限

sudo chmod +x /etc/rc.local

3. 创建 Systemd 服务

sudo nano /etc/systemd/system/rc-local.service

内容如下:

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
​
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
​
[Install]
WantedBy=multi-user.target

4. 启用并启动服务

sudo systemctl enable rc-local
sudo systemctl start rc-local
sudo systemctl status rc-local

不推荐方式:Netplan / NetworkManager

  • 多默认网关配置复杂,易冲突;

  • 推荐使用 rc.local 灵活管理路由。


总结表

功能命令示例或描述
默认走外网default via 192.168.2.1 dev MAC001001001 metric 100
保留内网访问192.168.1.0/24 dev eh0 proto kernel scope link src 当前IP(自动获取)
防止 SSH 断线不使用 via 设置内网段
开机自动恢复使用 /etc/rc.local + systemd 启动

🧩 附加建议

如果上一篇你已经设置了,导致了SSH连接不上,用下面的脚本尝试恢复


sudo ip route replace 192.168.1.0/24 dev en0 proto kernel scope link src 192.168.1.188

如果你担心误操作路由导致 SSH 断线,可以使用自动恢复脚本:

自动恢复网络路由配置的安全脚本说明https://blog.csdn.net/qq_35086097/article/details/148761528


全文都是自己的亲测,可用!!!

设备:LTE无线路由器、一台服务器,系统为Ubuntu(24.04)、一个无线网卡

情况:我自己手机开热点啥的完全可以实现自动连接,但是随身wifi不行 (LTE无线路由器),可能自己配置DHCP之类的吧。配置之后就可以上网了

以上只是配置路由表,如果发现连上了但是上不了外网  请用

ip route show 

检查是否是路由表的优先级(metric )是否有问题!!!!

一定是内网的metric 要比外网的metric 要大 (优先级越大 越靠后,没有就是0)

sudo ip route replace 192.168.1.0/24 dev eh0 proto kernel scope link src 192.168.1.188
sudo ip route replace default via 192.168.1.1 dev eh0  metric 200
sudo ip route replace default via 192.168.2.1 dev Mac00101010101 metric 100

----

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85716.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于昇腾NPU部署llamafactory单机多卡微调Qwen3教程

1. 进入华为云 华为云首页 点击右上角控制台 2.进入ModelArts 点击搜索框->搜索“ModelArts”->选择AI开发平台ModelArts->进入平台后点击开发者空间 3.创建Notebook 3.1在开发者空间中点击Notebook->在西南贵阳一下点击创建Notebook 3.2进入创建Notebook页…

关于XES文件格式诸多问题

1. 格式类型是什么&#xff1f; case:concept:name (案例ID) - 必须是字符串类型concept:name (活动名称) - 字符串类型time:timestamp - 必须是datetime类型 2. 如何修改&#xff1f; data[case:concept:name] data[case:concept:name].astype(str)data[concept:name] data…

数据融合平台有哪些?在数据治理中发挥什么作用?

目录 一、常见的数据融合平台 &#xff08;一&#xff09;传统数据融合平台 &#xff08;二&#xff09;实时数据融合平台 &#xff08;三&#xff09;云数据融合平台 二、数据融合平台在数据治理中的作用 &#xff08;一&#xff09;提升数据质量 &#xff08;二&#…

​​Linux:XFS 文件系统扩容完整指南

​​​问题背景​​ 在扩展 Linux 根目录 / 时,我遇到了一个错误: sudo resize2fs /dev/uos/root resize2fs: 超级块中的幻数有错 尝试打开 /dev/uos/root 时找不到有效的文件系统超级块。 经过排查,发现根本原因是 ​​文件系统类型是 XFS​​,而 resize2fs 仅适用于 e…

网络安全之CTF专题赛RE题解

easyre hap文件改成zip格式然后解压去反编译abc文件即可拿到源码 这里推荐一个网站.abcD 蛮好用的 下载反编译结果&#xff0c;解压后用vscode打开分析。 这里可以看到一些目录结构&#xff0c;我们先看看flag目录 x_2_2.count位1000000的时候就会输出flag那么大概率是一个点…

a padding to disable MSIE and Chrome friendly error page

问题 a padding to disable MSIE and Chrome friendly error page 解决 nginx 代理地址 配错了

71、C# Parallel.ForEach 详解

Parallel.ForEach 是 .NET Framework 4.0 引入的并行编程功能的一部分&#xff0c;位于 System.Threading.Tasks 命名空间中。它允许你对集合中的元素进行并行处理&#xff0c;可以显著提高处理大量数据时的性能。 基本用法 using System; using System.Collections.Generic;…

生产者-消费者模式在不同操作系统上的行为差异

在多线程编程中&#xff0c;生产者-消费者模式是一种常见的设计模式&#xff0c;用于解决线程间的数据同步问题。最近&#xff0c;我在 Linux 和 macOS 上运行同一个生产者-消费者模式的程序时&#xff0c;发现它们表现出不同的行为。本文将介绍这个现象、分析其原因&#xff0…

【JS-4.1-DOM获取元素操作】深入理解DOM操作:高效获取页面元素的方法与实践

在现代Web开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;操作是前端工程师的必备技能。而DOM操作的第一步&#xff0c;往往是从页面中获取我们需要操作的元素。本文将全面介绍各种获取页面元素的方法&#xff0c;分析它们的性能特点&#xff0c;并提供最佳实践建议…

UE5错误 Linux离线状态下错误 请求失败libcurl错误:6无法解析主机名

UE5错误 Linux离线状态下错误 请求失败libcurl错误&#xff1a;6无法解析主机名 完整描述问题解析解决方法 完整描述 loghttp&#xff1a;warning&#xff1a;ox015cba21400:request failed libcurl error :6 (couldn’t resolve host name ) 问题解析 这是因为在离线状态下…

深度学习实战111-基于神经网络的A股、美股、黄金对冲投资策略(PyTorch LSTM)

文章目录 一、A股与美股对冲互补投资方案1. 现象与逻辑2. 对冲互补投资思路3. 资金分配样例4. 最大化收益的关键二、对冲互补投资思路1. 资金分配原则2. 动态调整机制3. 对冲操作三、投资方案样例1. 初始资金分配(假设总资金10万元)2. 动态调整举例情景一:美股进入牛市,A股…

在线教育平台敏捷开发项目

项目背景 产品名称&#xff1a;LearnFlow&#xff08;在线学习平台&#xff09; 核心目标&#xff1a;6个月内上线MVP&#xff08;最小可行产品&#xff09;&#xff0c;支持课程学习、进度跟踪、测验功能。 团队构成&#xff1a; 产品负责人&#xff08;PO&#xff09;1人 S…

C++面试题(35)-------找出第 n 个丑数(Ugly Number)

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。例如 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 请编写一个函数&#xff0c;找出第 n …

Day03_数据结构(手写)

01.数据结构画图 02. //11.按值查找返回位置 int search_value(node_p H,int value) { if(HNULL){ printf("入参为空.\n"); return -1; …

【Java学习笔记】Collections工具类

Collections 工具类 基本介绍 &#xff08;1&#xff09;Collections 中提供了一系列静态方法对集合元素进行排序&#xff0c;查询和修改等操作 &#xff08;2&#xff09;操作对象&#xff1a;集合 常用方法一览表 方法描述reverse(List<?> list)反转 List 中元素…

spring-webmvc @ResponseBody 典型用法

典型用法 基本用法&#xff1a;返回 JSON 数据 GetMapping("/users/{id}") ResponseBody public User getUser(PathVariable Long id) {return userService.findById(id); }Spring 自动使用 Jackson&#xff08;或其他 HttpMessageConverter&#xff09;将 User 对…

AI-调查研究-08-跑步分析研究 潜在伤害与预防 不同年龄段与性别的情况

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月16日更新到&#xff1a; AI炼丹日志-29 - 字节…

AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究

大家好我是微学AI,今天给大家介绍一下AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究。DeepLabv3+模型在NEU-seg数据集上实现了高达87.65%的平均交并比(mIoU),为金属表面缺陷的高精度检测提供了有力工具。本文将详细探讨Dee…

mysql JSON_EXTRACT JSON_UNQUOTE 函数

在处理mysql 有存储的json字段&#xff0c;需要提取时候发现JSON_EXTRACT函数&#xff0c;发现此函数提取后会带有引号&#xff0c;组合使用JSON_UNQUOTE 可去掉引号&#xff01; JSON_EXTRACT 函数概述 JSON_EXTRACT是MySQL中用于从JSON文档中提取数据的函数&#xff0c;语法…

Prompt:更好的提示与迭代

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 1 引言1.1 引用资料 2 更好的提示2.1 情景学习IC…