当前位置: 首页 > news >正文

通过IPV6+DDNS实现路由器远程管理和Win远程桌面控制

前期需要的准备:

  1. 软路由,什么系统都可以,要支持IPV6,能够自动添加解析
  2. 光猫的管理员账号,能够进入光猫修改配置,拨号上网账号
  3. 域名账号和DNS服务

主要步骤:

  1. 利用管理员账号,进入光猫,新增一个Internet配置,绑定千兆网口,比如Lan1,然后记录原本上网配置里的VLAN ID,新建的配置也要设置这个Tag,IP协议版本选择V4/V6后,选择桥接保存就可以了,光猫就设置好了,但目前还不能上网,需要记录一下拨号账号和密码。
  2. 进入路由器界面,此时路由器应该连着刚才绑定的LAN1口,这里要设置PPPoE拨号上网模式,输入账号与密码,然后就可以上网了。
  3. 打开IPV6功能,选择NativeDHCPv6,WAN0(PPPoE),Stateless:RA,自动获取DNS,打开内网DHCPv6, 路由器通告,启用服务器选择Stateless。
  4. 保存后应该可以看到路由器多了ipv6 WAN和ipv6 LAN,其中WAN是可以直接外网访问的,而LAN网络里的ipv6地址目前应该还不能直接访问,这里主要原因是防火墙设置不对,包括电脑防火墙、路由器防火墙和光猫防火墙,可以直接关掉测试。然后根据服务判断端口是不是打开了in和out。
  5. 防火墙问题解决后,就意味着可以通过公网直接访问你的所有ipv6地址,现在我们要做的就是将这个地址,解析绑定我们的域名,这里我用的是腾讯云,你可以将路由器管理界面的地址设置成router.xxx.com.也可以将LAN网络里的主机地址设置为Computer.xxx.com.这样就可以直接通过域名访问ipv6地址了
  6. 目前的ipv6地址是动态的,所以,域名解析也要不断更新,这个时候就需要一个程序,专门按时更新域名指向的ipv6地址.在软路由上,应该可以找到类似的功能,只需要你申请对应的API接口就行,输入你的域名和二级域名,ID和KEY,就能自动更新路由器的WAN地址到你的router.xxx.com
  7. 主机的话,需要写一个简单的脚本来实现,我是直接搭了Python3的环境,写了一个py脚本,然后windows设置计划执行就可以,具体的脚本如下,主要功能就是得到当前主机的ipv6地址,然后将其通过腾讯云API接口上传更改。
import json
import requests
import subprocess
import re
import time
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.dnspod.v20210323 import dnspod_client, modelsdef ReturnRecordId(Domain, SubDomain):"""获取指定记录的RecordId:param Domain: 主域名:param SubDomain: 待修改的子域:return: RecordId 或错误码"""try:cred = credential.Credential(SecretId, SecretKey)  # 凭证httpProfile = HttpProfile()httpProfile.endpoint = "dnspod.tencentcloudapi.com"clientProfile = ClientProfile()clientProfile.httpProfile = httpProfileclient = dnspod_client.DnspodClient(cred, "", clientProfile)req = models.DescribeRecordListRequest()params = {"Domain": Domain}req.from_json_string(json.dumps(params))resp = client.DescribeRecordList(req)for record in resp.RecordList:if record.Name == SubDomain:return record.RecordId# print("未找到对应的记录值,请先创建相应的主机记录!")return -2except TencentCloudSDKException:# print("获取域名的记录列表失败,请重试!")return -1def ModifyDynamicDNS(RecordId, Domain, SubDomain, Ip):"""动态域名解析API:param RecordId: 待修改记录ID:param Domain: 主域名:param SubDomain: 子域名:param Ip: IP地址:return: 操作成功返回1,否则返回0"""try:cred = credential.Credential(SecretId, SecretKey)httpProfile = HttpProfile()httpProfile.endpoint = "dnspod.tencentcloudapi.com"clientProfile = ClientProfile()clientProfile.httpProfile = httpProfileclient = dnspod_client.DnspodClient(cred, "", clientProfile)req = models.ModifyDynamicDNSRequest()params = {"Domain": Domain,"SubDomain": SubDomain,"RecordId": RecordId,"RecordLine": "默认","Value": Ip}req.from_json_string(json.dumps(params))resp = client.ModifyDynamicDNS(req)# if str(RecordId) in resp.to_json_string():#     print("更新成功!")return 1except TencentCloudSDKException:return 0def get_global_ipv6_address():# 适用于Windows的命令command = "ipconfig"process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)stdout, stderr = process.communicate()# 解析ipconfig输出查找IPv6地址ipv6_addresses = re.findall(r"IPv6 地址 . . . . . . . . . . . . : ([\da-fA-F:]+)", stdout)# 过滤掉本地链接地址global_ipv6_addresses = [addr for addr in ipv6_addresses if not addr.startswith("fe80:")]return global_ipv6_addresses[0]if __name__ == "__main__":SecretId = "xxx"  # 腾讯云账户API密钥IDSecretKey = "xxx"  # 腾讯云账户API密钥KeyDomain = "xxx.xxx"  # 主域名SubDomain = "xxx"  # 指定要修改的子域名interval = 600  # 每10分钟检查一次IPRecordId = ReturnRecordId(Domain=Domain, SubDomain=SubDomain)if RecordId < 0:exit()CurrentIP = get_global_ipv6_address()res = ModifyDynamicDNS(RecordId=RecordId, Domain=Domain, SubDomain=SubDomain, Ip=CurrentIP)# if res:#     print(f'IP成功更新!IPV6:{CurrentIP}')# else:#     print('动态域名解析API出问题了')

相关文章:

通过IPV6+DDNS实现路由器远程管理和Win远程桌面控制

前期需要的准备&#xff1a; 软路由&#xff0c;什么系统都可以&#xff0c;要支持IPV6&#xff0c;能够自动添加解析 光猫的管理员账号&#xff0c;能够进入光猫修改配置&#xff0c;拨号上网账号 域名账号和DNS服务 主要步骤&#xff1a; 利用管理员账号&#xff0c;进入…...

数据湖/数据仓库

数据湖&#xff08;Data Lake&#xff09;和数据仓库&#xff08;Data Warehouse&#xff09;的主要区别在于它们的目的、存储的数据类型、数据处理方式、数据结构、数据安全性以及数据应用。以下是相关介绍&#xff1a; 目的。数据湖旨在作为一个集中的存储库&#xff0c;存储…...

万兆以太网MAC设计(2)MAC_RX模块

文章目录 前言一、模块功能二、代码三、仿真波形 前言 上文我们打通了了万兆以太网物理层和数据链路层&#xff0c;其实就是会使用IP核了&#xff0c;本文将正式开始MAC层设计第一篇&#xff0c;接收端设计。 一、模块功能 MAC_RX模块功能如下&#xff1a; 解析接收的报文&…...

D. Solve The Maze Codeforces Round 648 (Div. 2)

题目链接&#xff1a; Problem - 1365D - CodeforcesCodeforces. Programming competitions and contests, programming communityhttps://codeforces.com/problemset/problem/1365/D 题目大意&#xff1a; 有一张地图n行m列&#xff08;地图外面全是墙&#xff09;&#xff0c…...

CPU核心数、线程数都是什么意思?

最早&#xff0c;每个物理 cpu 上只有一个核心&#xff0c;对操作系统而言&#xff0c;也就是同一时刻只能运行一个进程/线程。 为了提高性能&#xff0c;cpu 厂商开始在单个物理 cpu 上增加核心&#xff08;实实在在的硬件存在&#xff09;&#xff0c;也就出现了多核 cpu&…...

每日一篇 4.12

misstep&#xff1a;失误 epic proportions.&#xff1a;史无前例 arguably&#xff1a;按理来说 assembly&#xff1a;组装 performed &#xff1a;执行 underpins&#xff1a;支撑 holds a monopoly&#xff1a;垄断了 shipped&#xff1a;发货 a market capitalizati…...

鸿蒙南向开发:【智能烟感】

样例简介 智能烟感系统通过实时监测环境中烟雾浓度&#xff0c;当烟雾浓度超标时&#xff0c;及时向用户发出警报。在连接网络后&#xff0c;配合数字管家应用&#xff0c;用户可以远程配置智能烟感系统的报警阈值&#xff0c;远程接收智能烟感系统报警信息。实现对危险及时报…...

【主题广|检索稳定】2024年生态工程与农业科技国际会议 (EEAT 2024)

2024年生态工程与农业科技国际会议 (EEAT 2024) 2024 International Conference on Ecological Engineering and Agricultural Technology 【会议简介】 2024年生态工程与农业科技国际会议即将在贵阳召开。本次会议将汇集全球生态工程与农业科技领域的专家学者&#xff0c;共…...

代码随想录算法训练营第三十八天|509. 斐波那契数、 70. 爬楼梯、746. 使用最小花费爬楼梯

509 题目&#xff1a; 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c…...

07-app端文章搜索

app端文章搜索 1) 今日内容介绍 1.1)App端搜索-效果图 1.2)今日内容 文章搜索 ElasticSearch环境搭建 索引库创建 文章搜索多条件复合查询 索引数据同步 搜索历史记录 Mongodb环境搭建 异步保存搜索历史 查看搜索历史列表 删除搜索历史 联想词查询 联想词的来源 联…...

✔ ★Java项目——设计一个消息队列(二)

Java项目——设计一个消息队列 四. 项⽬创建五. 创建核⼼类创建 Exchange&#xff08;名字、类型、持久化&#xff09;创建 MSGQueue&#xff08;名字、持久化、独占标识&#xff09;创建 Binding&#xff08;交换机名字、队列名字、bindingKey用于与routingKey匹配&#xff09…...

Java语言实现生产者/消费者问题

经典例题&#xff1a;生产者/消费者问题 生产者(Productor)将产品放在柜台(Counter)&#xff0c;而消费者(Customer)从柜台 处取走产品&#xff0c;生产者一次只能生产固定数量的产品(比如:1&#xff09;&#xff0c; 这时柜台中不能 再放产品,此时生产者应停止生产等待消费者…...

bugku-web-file_get_contents

<?php extract($_GET); if (!empty($ac)){$f trim(file_get_contents($fn));if ($ac $f){echo "<p>This is flag:" ." $flag</p>";}else{echo "<p>sorry!</p>";} } ?> 这里涉及到几个不常用的函数 这里直接构…...

Python数据处理和常用库(如NumPy、Pandas)

Python是一种功能强大的编程语言&#xff0c;广泛应用于数据处理和分析领域。在Python中&#xff0c;有一些常用的库可以帮助我们进行数据处理和分析&#xff0c;其中包括NumPy和Pandas。下面是关于这两个库的简介和使用示例&#xff1a;NumPy&#xff08;Numerical Python&…...

[SystemVerilog]Simulation and Test Benches

Simulation and Test Benches 测试语言中有很大一部分专门用于测试台和测试。在本章中&#xff0c;我们将介绍为硬件设计编写高效测试台的一些常用技术。 6.1 How SystemVerilog Simulator Works 在深入研究如何编写适当的测试台之前&#xff0c;我们需要深入了解模拟器的工作原…...

lightgbm-安装失败(解决方案)

1.pip install lightgbm 报错&#xff0c;出现长篇标黄和标红的&#xff0c;本人表示看不懂&#xff0c;直接忽略&#xff0c;如下所示&#xff1a; 2.尝试pip install lightgbm -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com&#xff0c;安装也报错&…...

halcon图像相减算子sub_image

1.图像相减算子 sub_image(ImageMinuend , ImageSubtrahend : ImageSub : Mult , Add :) &#xff08;1&#xff09;参数解释&#xff1a; ImageMinuend &#xff1a;输入参数需要被减的图片 ImageSubtrahend &#xff1a;输入参数拿来减的图片 ImageSub &#xff1a;输出…...

final、finally 和 finalize 有什么区别?

final 是一个关键字&#xff0c;用于声明一个类、方法或变量。当用 final 修饰一个类时&#xff0c;表示该类不能被继承&#xff1b;当用 final 修饰一个方法时&#xff0c;表示该方法不能被子类重写&#xff1b;当用 final 修饰一个变量时&#xff0c;表示该变量只能被赋值一次…...

智能运维场景 | 科技风险预警,能实现到什么程度?

[ 原作者&#xff1a;擎创夏洛克&#xff0c;本文略做了节选和改编 ] 每次一说到“风险预警”&#xff0c;就会有客户问我们能做怎样的风险预警。实际上在智能运维厂商来说&#xff0c;此风险非彼风险&#xff0c;不是能做银行的业务上的风险预警&#xff08;比如贷款风险等&a…...

中颖51芯片学习3. 定时器

中颖51芯片学习3. 定时器 一、SH79F9476定时器简介1. 简介2. 定时器运行模式 二、定时器21. 说明&#xff08;1&#xff09;时钟&#xff08;2&#xff09;工作模式 2. 寄存器&#xff08;1&#xff09;控制寄存器 T2CON&#xff08;2&#xff09;定时器2模式控制寄存器 T2MOD …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...