Ubuntu20.04 设置路由器

1. 网络拓扑图

  1. 双网卡单Lan口拓扑图
    在这里插入图片描述
  2. 多网卡多Lan口带网桥拓扑图
    在这里插入图片描述

2. 查看网卡信息

ip a

得出如下网卡信息列表,共四个网络信息,忽略第一个本地环回地址
一共存在三个网卡分别为enp1s0、enp2s0、wlo,以及其他详细信息,当前我们只需要关心网卡名称即可
注意,您的设备中网卡名称不一定和我的一样,请自行区分

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:f1:f5:2e:66:17 brd ff:ff:ff:ff:ff:ffinet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic enp1s0valid_lft 80851sec preferred_lft 80851secinet6 240e:36a:146b:df00:2f1:f5ff:fe2e:6617/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 258991sec preferred_lft 172591secinet6 fe80::2f1:f5ff:fe2e:6617/64 scope link valid_lft forever preferred_lft forever
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000link/ether 00:f1:f5:2e:66:18 brd ff:ff:ff:ff:ff:ff
4: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000link/ether c8:09:a8:12:b8:e4 brd ff:ff:ff:ff:ff:ffaltname wlp0s20f3
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 00:f1:f5:2e:66:18 brd ff:ff:ff:ff:ff:ffinet 192.168.2.1/24 brd 192.168.2.255 scope global br0valid_lft forever preferred_lft foreverinet6 fe80::2045:e5ff:fe6a:440/64 scope link valid_lft forever preferred_lft forever

3. netplan网卡设置

然后我们做以下自定义规定(读者可自行设计)

  • enp1s0:有线网卡1,我们规定这个网口为Wan口,用于连接互联网
  • enp2s0:有线网卡2,我们规定这个网口为Lan口,供内部网络的有线设备连接
  • wlo1: 无线网卡1,我们规定这个网口为Lan口,供内部网络的无线设备连接
  • 其他网卡:…
sudo vim /etc/netplan/00-installer-config.yaml

若仅规定了单个Lan口网卡,修改内容如下

network:ethernets:enp1s0:dhcp4: true		# 设置dhcp,用以从上级路由器获取ip地址dhcp6: false		# 暂不关心optional: true  	# 设置非阻塞方式配置网络, 否则没有网络时开机会卡很久enp2s0:dhcp4: falsedhcp6: falseaddresses: [192.168.2.1/24] # 设置静态ip,读者可自行确定网段和ipoptional: true

若规定了多个Lan口网卡,修改内容如下

创建一个网桥br0来连接多个Lan口网卡,便于后续DHCP统一管理ip地址

network:ethernets:enp1s0:dhcp4: true		# 设置dhcp,用以从上级路由器获取ip地址dhcp6: false		# 暂不关心optional: true  	# 设置非阻塞方式配置网络, 否则没有网络时开机会卡很久enp2s0:dhcp4: falsedhcp6: falseoptional: truewlo1:dhcp4: falsedhcp6: falseoptional: truebridges:br0:interfaces: [enp2s0, wlo1]  # 将有线网口enp2s0和wlo1添加到网桥br0下dhcp4: falsedhcp6: falseaddresses: [192.168.2.1/24] # 设置静态ip,读者可自行确定网段和ipoptional: trueversion: 2

应用网络修改

# 应用网络修改,ssh连接会断开,请重新根据新的ip地址
sudo netplan apply

4. DHCP服务设置

4.1 安装isc-dhcp-server

apt install isc-dhcp-server -y

4.2 配置isc-dhcp-server

4.2.1 修改DHCP服务的网口
sudo vim /etc/default/isc-dhcp-server 
# 指定为某个网卡提供DHCP服务
INTERFACESv4="enp2s0"
# 若设置网桥,请填入网桥名称
# INTERFACESv4="br0"
INTERFACESv6=""
4.2.1 配置DHCP网段信息
sudo vim /etc/dhcp/dhcpd.conf
# 子网划分为192.168.2.0/24网段
subnet 192.168.2.0 netmask 255.255.255.0 {# 设置DHCP服务提供的ip地址范围range 192.168.2.10 192.168.2.200;# 设置DHCP的默认网关,即已配置的Lan口ip/地址网桥ipoption routers 192.168.2.1;# 该网段的广播地址option broadcast-address 192.168.2.255;# DNS服务器,使用光猫/上一级路由器提供的DNS服务,也可自定义例如8.8.8.8之类的DNS服务option domain-name-servers 192.168.1.1;# 默认租约时间default-lease-time 600;# 最大租约时间max-lease-time 7200;
}

重启isc-dhcp-server服务

# 重启isc-dhcp-server服务
sudo service isc-dhcp-server restart 
# 查看isc-dhcp-server状态, 注:若lan口没有接入设备,状态会显示未启用状态,请接入设备后测试
sudo service isc-dhcp-server status 

5. 无线AP热点配置

首先请确认您的设备存在无线网卡,没有无线网卡请跳过该节

如果无线网卡无法识别,例如ax101型号,请升级更高版本的Linux内核,推荐下载离线包安装更新(6.4+)
解决方案参考帖子:AX101 Ubuntu 22.04 or 22.10 driver
内核升级参考资料:升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国

5.1 安装hostapd

apt install hostapd -y

5.2 配置hostapd

# 默认不存在该文件
sudo vim /etc/hostapd/hostapd.conf 
# 设置无线网卡名称
interface=wlo1
# 设置网桥,若无网桥设置请注释
bridge=br0
# 驱动,wext(旧版)/nl80211(新版),一般使用nl80211
driver=nl80211
# 无线网使用的网络协议,默认启用
ieee80211n=1
# 模式选择,g:2.4Ghz
hw_mode=g
# 信道,2.4GHZ(1~14)
channel=6
# 热点名称
ssid=ubuntu
# 热点密码
wpa_passphrase=123123123
# 选择加密方式为WPA2,常用加解密方法是有WEP、WPA、WPA2、WPA3
wpa=2
# 加密方式
wpa_key_mgmt=WPA-PSK
# 加密算法
rsn_pairwise=CCMP TKIP
wpa_pairwise=TKIP CCMP

参考资料:WLAN无线技术基本概念(802.11a/b/g/n/ac/ax区别,频段,信道概念)

加载hostapd配置文件

# -B 后台运行
sudo hostapd /etc/hostapd/hostapd.conf -B

其他

# hostapd服务的启动、暂停、重启、状态查询
sudo service hostapd start/stop/restart/status
# 启用开机服务(默认应该已启用)
sudo systemctl enable hostapd
# 无线网卡的启动和停止
sudo ip link set wlo1 up/down

6. 启用ip 转发功能

sudo vim /etc/sysctl.conf
# 末尾添加
net.ipv4.ip_forward=1

7. 启用NAT地址转换功能

# 启用nat
sudo iptables -t nat -A POSTROUTING -0 enp1s0 MASQUERADE
# 重启后需要再次执行该命令,暂未找到方便的自启方法# 可保存当前防火墙规则
sudo iptables-save ./iptables.ini
#重启后加载
sudo iptables-restore ./iptables.ini 

这段命令是在iptables的nat表中添加了一条POSTROUTING规则,其作用是对enp1s0(wan口)的出站流量进行NAT处理。具体来说,这条规则会在lan口设备的出站流量经过enp1s0时,将源IP地址从lan口设备的IP地址(例如192.168.2.100)替换为enp1s0的IP地址(例如192.168.1.5),从而实现内部网络设备访问外部网络的功能。

这种NAT处理方式称为MASQUERADE,它可以动态地为内部网络设备分配外部IP地址,并保护内部网络的隐私。在这种情况下,lan口设备可以使用自己的DHCP服务器分配的IP地址(例如192.168.2.100)在内部网络中进行通信,而当它们需要访问外部网络时,就会经过enp1s0进行NAT处理,从而使得外部网络看到的源IP地址是enp1s0的IP地址。

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

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

相关文章

【Linux系统编程】第十八弹---进程状态(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、操作系统进程 1.1、进程背景 1.2、进程如何在CPU上运行的&#xff1f; 1.2、进程状态 2、Linux的进程状态 2.1、如何描…

U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)

引言&#xff1a; 随着数字化时代的发展&#xff0c;U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而&#xff0c;有时我们可能会遇到U盘突然无法打开&#xff0c;并提示需要格式化的问题。这不仅会打乱我们的工作节奏&#xff0c;还可能会导致重要数据丢失。本文…

【SpringSecurity源码】过滤器链加载流程

theme: smartblue highlight: a11y-dark 一、前言及准备 1.1 SpringSecurity过滤器链简单介绍 在Spring Security中&#xff0c;过滤器链&#xff08;Filter Chain&#xff09;是由多个过滤器&#xff08;Filter&#xff09;组成的&#xff0c;这些过滤器按照一定的顺序对进…

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿沟&#xff0c;信息的传播速度极慢&#xff0c;信息处理的速…

Kafka应用Demo:按主题订阅消费消息

安装环境 Kafka安装可参考官方网站的指导(https://kafka.apache.org/quickstart), 按步骤解压压缩包&#xff0c;修改配置。然后再启动zookeeper和kafka-server即可。 需要注意的一点&#xff1a;如果是在VMware虚拟机上启动的kafka, 需要修改一下server.properties配置文件&am…

AI浪潮再起,2024年中国大模型产业深度解析

国内 AI大模型产业发展深度分析 2024 人工智能技术的迅猛发展&#xff0c;使AI大模型成为科技竞争的核心、产业变革的先锋、经济增长的新动力。我国已将人工智能列为国家战略&#xff0c;出台系列政策扶持其发展&#xff0c;为AI大模型产业创造优越环境&#xff0c;展现巨大潜力…

CentOS 7安装配置docker

CentOS 7、8安装、配置docker 这里宿主机的型号选择是centos7.9.2009的版本 1.宿主机关闭防火墙和selinux&#xff0c;配置ipv4 #设置SELinuxdisabled vim /etc/selinux/config SELinuxdisabled 查看防火墙状态&#xff1a;firewall-cmd --state 关闭防火墙&#xff1a;syst…

FloodFill算法---BFS

目录 一、前言 二、算法模板套路 2.1 创建所需的全局变量&#xff1a; 2.2 BFS模板&#xff1a; 2.3 细节处理&#xff1a; 三、例题练习 3.1 例题1&#xff1a;图像渲染 3.2 例题2&#xff1a;岛屿数量 3.3 例题3&#xff1a;岛屿的最大面积 3.4 例题4&#xff1a;被…

在做题中学习(54):点名

LCR 173. 点名 - 力扣&#xff08;LeetCode&#xff09; 此题有不同的几种解法&#xff1a; 解法一&#xff1a;暴力枚举 O(n); 解法二&#xff1a;哈希表 把原数组丢入哈希表&#xff0c;遍历哈希表&#xff0c;看看哪个数值为0即可。 O(n)空间O(n)时间 解法三&…

OpenAI推出新模型GPT-4o:可实时交互,检测人的情绪,支持多模态输出

GPT-4o作为OpenAI新发布的人工智能模型&#xff0c;据官方及媒体报道&#xff0c;是面向全球用户发布的&#xff0c;包括中国在内的用户理论上应该能够通过相应平台和应用访问。不过&#xff0c;实际可用性还需考虑地区政策、网络访问限制以及具体平台是否在中国有本地化服务等…

1694jsp宿舍管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 宿舍管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库…

网络安全快速入门(十一)vi/vim

11.1 了解vi 前面我i们已经在基础命令中大致了解了vi&#xff0c;本章我们针对vi来细讲一下&#xff0c;vi和vim 11.1.1 什么是vi/vim&#xff1f; vi和vim&#xff0c;都是一个模块化的文本编辑工具&#xff0c;换句话讲&#xff0c;通过vi下的一系列的命令&#xff0c;可以实…

Redis 源码安装和入门介绍

Linux下的redis源码安装 redis介绍 Redis 是一个开源&#xff08;BSD许可&#xff09;的&#xff0c;内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构&#xff0c;如 字符串&#xff08;strings&#xff09;&#xff0c;…

专访安克创新CEO阳萌:仿生算法与存算一体芯片的兴起

在这篇博客中&#xff0c;我们将探讨人工智能的未来发展方向&#xff0c;特别是围绕大模型、存算一体芯片以及仿生算法的讨论。通过对安克创新CEO阳萌的专访内容进行分析&#xff0c;我们将尝试解答一些关于AI发展的关键问题&#xff0c;并对未来的技术趋势进行预测。 引言 …

AD原理图设置:如何在编译工程时,报未连接线或引脚错误

如下图&#xff0c;AD默认在编译原理图时&#xff0c;如果出现未连接的引脚或线时&#xff0c;并不会报相关的错误&#xff0c;这样做其实很危险 所以&#xff0c;我们应该让它提示错误 具体配置方法&#xff1a; 1、找到工程选项 2、切换到第二个选项“Connection Matrix”&a…

OBS插件--源录制

源录制 将应用这个滤镜的源录制成视频保存下来&#xff0c;可以选择音轨&#xff0c;也可以针对应用此滤镜的源单独的推流等。 如果在直播或录制视频的过程中场景里面布置了多个源&#xff0c;而只想保存其中一个源的视频或音频这个插件非常使用。 下面截图演示下操作步骤&a…

面试中的算法(查找缺失的整数)

在一个无序数组里有99个不重复的正整数&#xff0c;范围是1~100&#xff0c;唯独缺少1个1~100中的整数。如何找出这个缺失的整数? 一个很简单也很高效的方法&#xff0c;先算出1~100之和&#xff0c;然后依次减去数组里的元素&#xff0c;最后得到的差值&#xff0c;就是那个缺…

数据库入门(sql文档+命令行)

一.基础知识 1.SQL&#xff08;Structured Query Language&#xff09;结构化查询语言分类&#xff1a; DDL数据定义语言用来定义数据库对象&#xff1a;数据库、表、字段DML数据操作语言对数据库进行增删改查DQL数据查询语言查询数据库中表的信息DCL数据控制语言用来创建数据…

安装adobe系列,提示错误代码146解决办法

安装Adobe系列产品如PS、PR、Lrc等产品时&#xff0c;会因为各种各样的错误导致安装失败&#xff01;今天小编为大家带来的是安装adobe系列&#xff0c;提示错误代码146解决办法&#xff0c;收藏起来吧&#xff01; 方法一&#xff1a;就是传说中的万能大法&#xff0c;关机重启…

苍穹外卖项目---------收获以及改进(9-12)

①Spring Task-------实现系统定时任务 概念&#xff1a; 应用场景&#xff1a; 使用步骤&#xff1a; 实现订单超时和前一天派送中的订单的自动任务处理&#xff1a; Component Slf4j public class Mytask {Autowiredprivate OrderServiceimpl orderServiceimpl;/*** 处理订…