openwrt在校园网环境下开启nat6 (ipv6 nat)

如果将路由器接入校园网,我们只能获得一个128位掩码的ipv6地址。这个地址仅供路由器本身使用,而路由器后的设备无法获取到ipv6地址,因此我们可以利用网络地址转换(NAT)为这些设备分配本地ipv6地址。
下面是openwrt开启nat6的配置方法。由于openwrt的固件种类繁多,每一种固件的图形界面各不相同,所以为了通用性本文不使用图形界面配置,而是直接修改配置文件。下面的步骤主要由添加操作和删除操作组成。

注意:
1. 请在添加一行配置之前检查它是否已经存在,如果已经存在就忽略;在删除一行配置之前检查它是否存在,如果不存在就忽略。
2. 注意配置项之间的对齐和缩进(TAB缩进)
3. 在开始之前确保openwrt中安装了ip6tables

配置步骤:

1. 编辑 /etc/config/network 文件
(1) 在 config interface 'wan6' 下添加 option reqaddress 'force'
(2) 在 config interface 'lan' 下添加 option ip6assign '64'
(3) 添加 config globals 'globals' 并在下面添加 option ula_prefix 'fdcf:b746:88a0:0::/64'

2. 编辑 /etc/config/dhcp 文件
(1) 删除 config dnsmasq 下的 option filter_aaaa '1'
(2) 在 config dhcp 'lan' 下添加以下配置:

option ra 'server'
option dhcpv6 'server'
option ra_management '1'
option ra_default '1'
list dns '2001:4860:4860::8888'
list dns '2001:4860:4860::8844'

3. 编辑 /etc/config/firewall 文件
(1) 在名为 'wan'config zone 下添加以下配置:

option output 'ACCEPT'
option input 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'

(2) 检查文件中是否有如下配置,如果没有就把下面的配置添加到文件末尾,并在 /etc 目录下新建一个文件 firewall.user

config include
	option path '/etc/firewall.user'

4. 编辑 /etc/firewall.user 文件
在文件末尾添加 ip6tables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

这句命令中的 eth1 是wan网口对应的网卡名称,可以通过ifconfig命令查看。

5. 编辑 /etc/rc.local 文件
(1) 命令行执行命令 ip -6 route | grep default 查看网关以及网卡

例:执行代码后返回 
default from 2001:da8:1234:5678::910 via fe80::5616:51ff:fe56:8fb9 dev eth1 proto static metric 512 pref medium
那么网关就是 fe80::5616:51ff:fe56:8fb9
网卡就是 eth1

(2) 构造命令 route -A inet6 add default gw [网关] dev [网卡]

例:route -A inet6 add default gw fe80::5616:51ff:fe56:8fb9 dev eth1

(3) 将构造的命令添加到 /etc/rc.local 文件末尾 exit 0 这一行上方

6. 重新启动系统

测试结果:

通过ipv6测试

配置解释:

有空再写

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TSINGSEE青犀推出县域治理视频基座数字化、智慧化解决方案

一、方案背景 县域治理方案是我国地方治理体系的重要组成部分,对于促进县域经济社会发展、维护社会稳定、推进全面深化改革具有重要意义。随着科技的不断进步,视频监管已经成为了现代社会治理的重要手段之一。县域治理视频监管方案是通过视频监控、数据…

高效 CUDA 调试:将 NVIDIA Compute Sanitizer 与 NVIDIA 工具扩展结合使用并创建自定义工具

高效 CUDA 调试:将 NVIDIA Compute Sanitizer 与 NVIDIA 工具扩展结合使用并创建自定义工具 NVIDIA Compute Sanitizer 是一款功能强大的工具,可以节省您的时间和精力,同时提高 CUDA 应用程序的可靠性和性能。 在 CUDA 环境中调试代码既具有挑…

C#全新一代医院手术麻醉系统围术期全流程源码

目录 一、麻醉学科的起源 二、麻醉前访视与评估记录单 患者基本信息 临床诊断 患者重要器官功能及疾病情况 病人体格情况分级 手术麻醉风险评估 拟施麻醉方法及辅助措施 其他需要说明的情况 访视麻醉医师签名 访视时间 与麻醉相关的检查结果 三、手术麻醉信息系统…

Laravel扩展包的开发

扩展包的开发 1. 创建一个新项目,初始化扩展包配置 首先创建一个全新的Laravel项目: composer create-project --prefer-dist laravel/laravel laravelPkg 接下来,在项目中创建目录package/{your_name}/{your_package_name} mkdir -p pa…

STM32硬件I2C通信外设

文章目录 前言I2C硬件介绍10 位地址模式硬件I2C的引脚定义I2C框图主机发送序列图主机接收序列图 硬件I2C读写MPU6050总结 前言 本文主要介绍stm32自带的I2C通信外设,对比与软件模拟I2C,硬件I2C可以自动生成时序,时序的操作更加及时规范&…

什么是网页抓取 Web Scraping?如何进行网页抓取?

现在,不论是个人开发者还是庞大的企业都需要从互联网抓取大量数据,而网页抓取(Web Scraping)技术正是获取互联网上无尽信息宝库的一把钥匙。通过网页抓取工具,我们可以快速收集产品价格、市场趋势、用户评论等关键数据…

uniapp h5 touch事件踩坑记录

场景:悬浮球功能 当我给悬浮球设置了 position: fixed; 然后监听悬浮球的touch事件,从事件对象中拿到clientY和clientX赋值给悬浮球的left和top属性。当直接赋值后效果应该是这样子: 注意鼠标相对悬浮球的位置,应该就是左上角&a…

力扣_876_ 链表的中间结点(c语言)

题目描述: 解题方法: struct ListNode* middleNode(struct ListNode* head) {struct ListNode* l1,*l2;l1l2head;while(l2&&l2->next){l1l1->next;l2l2->next->next;}return l1; }

element UI季度选择器的实现

效果展示 用elementUI的select实现季度选择器 代码实现 generateQuarterOption放在methods中,需要近几年的只需要修改第一个循环的次数即可,mounted生命周期函数中调用generateQuarterOption() generateQuarterOption() {//近3年所有季度let now ne…

6行代码,1行命令!轻松实现多模态(视觉)模型离线推理 在线服务

早在去年年底,LMDeploy 已经悄悄地支持了多模态(视觉)模型(下文简称 VLM)推理,只不过它静静地躺在仓库的 examples/vl 角落里,未曾与大家正式照面。 LMDeploy 开源链接: https://gi…

Android | 开发过程遇到的报错以及解决方法

注: 此博客为记录个人开发过程中遇到的报错问题以及解决方案。 由于不同版本环境等因素影响,解决方案对其他人可能无效。 本博客仅提供一种解决思路,具体问题请具体分析。 报错:Connection timed out: connect解决:在G…

763. 划分字母区间(力扣LeetCode)

763. 划分字母区间 题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串…

pip wheel直接为离线环境打包需要的python包

很多情况下,需要离线安装python库,直接下载所需的库包时,可能又要求更新或安装相关的依赖包(这就非常麻烦了),所以推荐一条命令一步到位,命令如下: pip wheel -r requirements.txt …

设计模式-设配器模式

目录 🎊1.适配器模式介绍 🎃2.适配器类型 🎏3.接口适配器 🎐4.类的适配器 🎎5.优缺点 1.适配器模式介绍 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设…

什么?想让视频号小店领先同行,竟然这么简单!

大家好,我是电商小布。 视频号小店从推出到现在,逐渐也是被越来越多的人所熟知了。 虽然说当前市场内部的商家数量并不多,竞争力不大。 但是在入驻之后想要领先同行商家,产生更好的店铺数据,该怎么来做呢&#xff1…

学习JavaEE的日子 Day29 yield,join,线程的中断,守护线程,线程局部变量共享,线程生命周期

Day29 多线程 12. 线程的礼让 Thread.yield(); 理解:此方法为静态方法,此方法写在哪个线程中,哪个线程就礼让 注意:所谓的礼让是指当前线程退出CPU资源,并转到就绪状态,接着再抢 需求:创建两个…

多叉树题目:N 叉树的后序遍历

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题:N 叉树的后序遍历 出处:590. N 叉树的后序遍历 难度 3 级 题目…

Android笔记(三十):PorterDuffXfermode实现旋转进度View

背景 核心原理是使用PorterDuffXfermode Path来绘制进度,并实现圆角 效果图 Android笔记(三十)效果演示 进度条绘制步骤 将ImageView矩形七个点的坐标存储起来(configNodes) 他们对应着7个不同的刻度,每个刻度的值 i * &#…

Unity | 射线检测及EventSystem总结

目录 一、知识概述 1.Input.mousePosition 2.Camera.ScreenToWorldPoint 3.Camera.ScreenPointToRay 4.Physics2D.Raycast 二、射线相关 1.3D(包括UI)、射线与ScreenPointToRay 2.3D(包括UI)、射线与ScreenToWorldPoint …