OpenWrt旁路由详解及设置

一、什么是OpenWrt旁路由

OpenWrt旁路由是指使用OpenWrt路由器作为网络扩展的一种方式。通常情况下,家庭或办公室网络使用的路由器都有一个内置的局域网和一个公网IP地址,那些需要连接公网的终端设备都会使用这个公网IP地址。但是有些情况下,我们需要在局域网内添加额外的网络设备,而这个设备也需要连接公网,这时候OpenWrt旁路由就能够派得上用场了。

举个例子,如果你的原始网络环境是由一台路由器(例如:TP-Link)和一些设备(计算机,手机,平板电脑等)组成的,现在你想要在局域网中增加一个AP设备,而这个设备需要连接到公网,那么你就可以使用OpenWrt旁路由来解决这个问题。通过OpenWrt旁路由,AP设备可以方便的连接到公网,从而实现了网络的拓扑扩展。

OpenWrt旁路由与主路由之间相互分离,主路由仅负责内网的出入口,可以使得其他设备在公网上独立地运行,同时也提高了网络安全性。

二、为OpenWrt路由器配置基础连接信息

在设置OpenWrt旁路由之前,首先需要进行一些基础配置工作,例如指定路由器的IP地址和DNS服务器,这样才能够正常访问网络。

以下是基本连接信息设置的步骤:

# 配置IP地址
uci set network.lan.ipaddr='192.168.1.2'
uci set network.lan.gateway='192.168.1.1'
uci set network.lan.dns='8.8.8.8'

# 配置DHCP服务器
uci set dhcp.lan.ignore=1 #忽略DHCP自动分配IP地址
uci set dhcp.lan.start=100 #从100开始自定义DHCP服务
uci set dhcp.lan.limit=150 #一共分配150个IP地址
uci set dhcp.lan.leasetime=12h #IP地址租期

uci commit # 保存配置

三、配置网络接口

在设置OpenWrt旁路由时,需要对网络接口配置进行调整,以适配多个子网交换的情况。

以下是网络接口配置步骤:

# 创建子接口
uci set network.wan=interface
uci set network.wan.ifname='eth0.2' # 设置子接口名字为eth0.2
uci set network.wan.proto='dhcp' # 启用DHCP协议

# 创建一个局域网
uci set network.lan=interface
uci set network.lan.type='bridge' # 设置连接类型为桥接
uci set network.lan.proto='static' # IP地址是静态分配,由OpenWrt路由器分配
uci set network.lan.ipaddr='192.168.5.1' # 分配IP地址为192.168.5.1
uci set network.lan.netmask='255.255.255.0' # 子网掩码

# 其他配置
uci set network.lan.ifname='eth0.1' # 将这个LAN接口添加到eth0.1
uci set network.lan.broadcast='192.168.5.255' # 设置广播地址
uci set network.lan.dns='192.168.1.1' # 设置DNS服务器地址

uci commit # 保存配置

四、防火墙配置

在进行OpenWrt旁路由设置时,需要对防火墙进行相应的配置,否则后续的网络连接将无法正常进行。

以下是防火墙配置的步骤:

# 首先创建一个自定义的防火墙区域
uci set firewall.myzone=zone
uci set firewall.myzone.name='newzone' # 命名为newzone
uci set firewall.myzone.input='ACCEPT' # 允许输入流量
uci set firewall.myzone.output='ACCEPT' # 允许输出流量
uci set firewall.myzone.forward='DROP' # 阻止转发

# 添加服务和端口规则
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-DHCP-Renew'
uci set firewall.@rule[-1].src='newzone'
uci set firewall.@rule[-1].proto='udp'
uci set firewall.@rule[-1].dest_port='68'
uci set firewall.@rule[-1].target='ACCEPT'

uci add firewall rule
uci set firewall.@rule[-1].name='Allow-Ping'
uci set firewall.@rule[-1].src='newzone'
uci set firewall.@rule[-1].proto='icmp'
uci set firewall.@rule[-1].icmp_type='echo-request' # 允许ping
uci set firewall.@rule[-1].target='ACCEPT'

uci add firewall rule
uci set firewall.@rule[-1].name='Accept-DNS'
uci set firewall.@rule[-1].src='newzone'
uci set firewall.@rule[-1].proto='tcpudp'
uci set firewall.@rule[-1].dest_port='53' # 允许DNS流量
uci set firewall.@rule[-1].target='ACCEPT'

# 添加 NAT 规则和端口转发规则
uci add firewall zone
uci set firewall.@zone[-1].name='wan' # 设置WAN区域
uci set firewall.@zone[-1].input='REJECT' # 允许输入流量
uci set firewall.@zone[-1].output='ACCEPT' # 允许输出流量
uci set firewall.@zone[-1].forward='REJECT' # 允许转发
uci set firewall.@zone[-1].masq='1' # 开启 NAT

uci add firewall forwarding # 添加端口转发规则
uci set firewall.@forwarding[-1].src='newzone'
uci set firewall.@forwarding[-1].dest='wan'
uci commit # 保存配置

五、DHCP服务器配置

在OpenWrt旁路由设置的过程中,还需要对DHCP服务器进行相关的配置,使得设备可以正常连接到网络。

以下是DHCP服务器的配置步骤:

# 为DHCP服务器添加一个子区域
uci add dhcp dnsmasq
uci set dhcp.@dnsmasq[-1].domainneeded='1'
uci set dhcp.@dnsmasq[-1].boguspriv='1'
uci set dhcp.@dnsmasq[-1].filterwin2k='0'
uci set dhcp.@dnsmasq[-1].localise_queries='1'
uci set dhcp.@dnsmasq[-1].rebind_protection='1'
uci set dhcp.@dnsmasq[-1].rebind_localhost='1'
uci set dhcp.@dnsmasq[-1].local='/lan/'
uci set dhcp.@dnsmasq[-1].domain='lan'
uci set dhcp.@dnsmasq[-1].expandhosts='1'
uci set dhcp.@dnsmasq[-1].nonegcache='0'
uci set dhcp.@dnsmasq[-1].authoritative='1'
uci set dhcp.@dnsmasq[-1].readethers='1'
uci set dhcp.@dnsmasq[-1].leasefile='/tmp/dhcp.leases'
uci set dhcp.@dnsmasq[-1].resolvfile='/tmp/resolv.conf.auto'
uci add_list dhcp.@dnsmasq[-1].server='192.168.1.1' # 默认网关

# 添加IP地址分配规则
uci add dhcp host
uci set dhcp.@host[-1].name='my-iphone' # 设备名
uci set dhcp.@host[-1].mac='11:22:33:44:55:66' # 设备的MAC地址
uci set dhcp.@host[-1].ip='192.168.5.5' # 分配的IP地址,必须在192.168.5.0/24网段内

uci commit # 保存配置

六、总结

以上就是OpenWrt旁路由设置的流程。进行OpenWrt旁路由设置,需要对网络接口、防火墙、DHCP服务器等方面进行配置,并进行一定的了解。上述的步骤只是基本流程,如果需要深度的网络调整,还需要进行更高级的设置。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/193357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-01 15:01
下一篇 2024-12-01 15:01

相关推荐

  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25

发表回复

登录后才能评论