无需公网IP,在家使用IPV6和电信光猫进行内网穿透以搭建远程主机

news2024/10/7 7:23:56

ipv4的公网IP弄起来还是比较麻烦,所以不管是搭建私人NAS还是远程登陆主机都总是需要进行内网穿透。一般的方案都是用花生壳这类的商用服务,然而这些服务一方面又贵又慢还有流量限制,另一方面还要进行把三代信息都盘出去的实名认证

1G到5G一个月。。。。够干嘛的

现在姑且利用ipv6可以全球ping的特性提供一种实现内网穿透的方法,目前只是用于远程登陆和控制,或许之后可以用于更多的服务器功能。我的方案非常业余而且粗糙,望各位大佬不吝赐教。


基本背景是电信的光猫在安装的时候往往会直接使用 路由模式 而且 直接启用自带的路由器 ,所以要先破解路由器获得路由器的修改权限,将ipv6访问控制的防火墙关闭,把主机的ipv6地址暴露在公网。同时由于这个ipv6地址并不是固定的,使用ddns服务要钱要备案又违背我的初衷,所以使用一个脚本定期将主机的ipv6地址更新到我自己的GitHub仓库里面。


首先登陆这个网站http://test-ipv6.com/检查一下主机接入的网是否支持ipv6:

这里是10/10分,支持

随便找台连接光猫自带的路由器网络的电脑,在浏览器输入192.168.1.1登陆电信光猫自带的路由器:(地址可能因人而异,请以光猫背面信息为准)

你可能会看见这个界面

然而直接登陆这个用户是不够的,因为我们需要进入超级管理员系统才可以修改光猫自带路由器的防火墙。通常来说你可以用这个密码来登陆:

NE7jA%5m

如果这个密码不可用,那么请参考这篇文章来获取路由器超级管理员的密码。

http://www.xgiu.com/dianxin-guangmao-jiemi

获取密码之后,直接将密码输入密码栏然后登陆即可,你应该可以看到这个界面:

说明已经成功进入了光猫的后台,可以对光猫进行任何修改了。

警告:在对光猫进行任何修改之前建议往光猫中插入一枚U盘进行备份,否则自行修改的配置很有可能无法改回来也无法使用。

在这里选择备份

然后将光猫的防火墙的ipv6 session选项关闭:

     记得要保存!!

警告:在这步之后你的局域网相当于暴露在外,有一定的网络安全风险

在这之后,从外部网络应该就可以ping到主机了:

然而这还不够,通常来说ipv6地址也并不是固定的,那么当地址重新分配的时候,就没有办法再远程找到主机了。也就是说可能过上两个月这个地址就连不上了。

对此,采用一种简单粗暴的方法。写一个通过crontab来定时运行的shell脚本,将主机的ipv6地址写入一个文本文件,然后通过git推送到github上面。当ipv6的地址改变时,直接上github看新的主机地址就可以了。

首先随便找个位置建一个文件夹ServerControl,然后在里面初始化一个git仓库:

mkdir ServerControl
cd ServerControl
git init

在git中添加一个远程仓库:

git remote add <仓库名> <仓库的ssh地址>

然后建立一个文件夹RemoteControl,进入里面并且新建脚本GitGetIp.sh和存放ipv6地址的IpConfig.txt

touch README.md
mkdir RemoteControl
cd RemoteControl
touch IpConfig.txt
touch GitGetIp.sh

文件结构大概是这样:

脚本GitGetIp.sh,内容如下:

#!/bin/bash
cd /home/a24/ServerControl/RemoteControl
date >> IpConfig.txt 
ifconfig >> IpConfig.txt
cd /home/a24/ServerControl
git add .
git commit -m "_______New_______"
git push ServerGit

运行这个脚本将会将ifconfig命令获取到的网络地址命令写入IpConfig.txt这个文本文件里,然后将整个文件夹都推到github仓库中。但是,在IP地址变化之后你并不能登入主机运行这个脚本,因此我们需要让这个脚本自动运行。(可以直接用DDNS,但是这个方案的好处是不用申请域名也不用实名认证也不用花钱)

这里使用crontab命令:

crontab -e

然后根据提示随便选择一个文件修改配置,这里以选择第一个文件为例:

在最后一行加上

05 14 * * * sh /home/<你的用户名字>/<脚本路径>/ServerControl/RemoteControl/GitGetIp.sh

这代表在每天的14点05分运行脚本GitGetIp.sh。值得注意的是,如果想要执行bash脚本,命令中的sh不能漏

至此,你应该就可以每天在github你的仓库里看到你的远程主机的ip地址了,

红框里面的就是你的主机的ipv6地址,可以在cmd里以这个地址来进行远程ssh连接

ssh -p22 <用户名>@<ipv6地址>

第一次登陆要输入yes和密码

或者用putty:

常见问题:

外网ping不通:

外网的登陆者先在这里http://test-ipv6.com/检查一下是不是支持ipv6的网:

这是不支持的状况

通常来讲手机网络都是支持ipv6的,因此你可以使用手机热点

然后就可以ping通了:

外网可以ping但是ssh会出现timeout报错:

在调整防火墙这个步骤时可能开启了 ipv6 session防护功能,取消勾选然后重新保存就可以了。

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

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

相关文章

System V通信

文章目录 共享内存什么是共享内存&#xff08;物理内存块属性&#xff09;共享内存的接口认识查看共享内存删除共享内存共享内存的创建&#xff08;ftok和shmget&#xff09;挂接和去关联&#xff08;shmat和shmdt&#xff09; 利用共享内存通信&#xff08;简单的代码演示&…

Vue中如何进行数据缓存

Vue中如何进行数据缓存 Vue是一款流行的前端框架&#xff0c;它提供了许多方便的功能来处理数据。其中一个非常有用的功能是数据缓存。数据缓存可以提高应用程序的性能&#xff0c;减少网络请求&#xff0c;提高用户体验。在本文中&#xff0c;我们将介绍Vue中如何进行数据缓存…

chatgpt赋能python:Python如何取三位小数

Python 如何取三位小数 Python 是一种很强大的编程语言&#xff0c;可以应用于各个领域。其中&#xff0c;处理数字也是 Python 的一项强大功能。当我们需要对数字进行精细的操作时&#xff0c;常常需要使用到取小数的功能。本文将介绍如何使用 Python 取三位小数&#xff0c;…

Qgis中进行Shp和Excel属性连接实现百强县公共预算空间分析

前言 在之前的博文中&#xff0c;将2022的全国百强县一般公共预算收入的数据下载到了本地&#xff0c;博客原文地址&#xff1a;一种使用Java的快速将Web中表格转换成Excel的方法。对于不关注时空位置关系的一般分析&#xff0c;到此也就基本够用了。但是&#xff0c;如果站在全…

C语言函数初阶(1)

目录 1. 函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声明和定义 8. 函数递归 今天我们讲解前6个部分&#xff0c;下一个博客我们讲解后2个部分&#xff0c;因为后两个部分难度较大&#xff0c;讲解起来要花一点…

Vue中如何进行错误处理

Vue中如何进行错误处理 在Vue应用程序中&#xff0c;错误处理是必不可少的。错误可能发生在各种地方&#xff0c;例如网络请求、组件生命周期钩子函数、计算属性、方法等等。如果我们不正确地处理这些错误&#xff0c;可能会导致应用程序崩溃或无法正常工作。在本文中&#xf…

chatgpt赋能python:Python怎么反向切片

Python怎么反向切片 在Python中&#xff0c;切片是一种用于从序列中选取子序列的方法。正向切片从序列的第一个元素开始选取&#xff0c;而反向切片则从序列的最后一个元素开始选取。本文将介绍Python中如何使用反向切片。 什么是切片 在Python中&#xff0c;切片是一种操作…

IP协议的特性总结

目录 1. 地址管理 1.1 动态分配 1.2 NAT(网络地址转换)机制 1.3 IP地址的组成 1.4 IP地址网络号和主机号的划分 1.4.1 IP地址分类(ABCDE类) 1.4.2 子网掩码 1.5 特殊的IP地址 2. 路径规划 3. IP协议报文格式 3.1 分包 3.2 组包 1. 地址管理 IP地址在之前跟大家简单…

mfc读取obj格式文件初步

3dmax做一个box&#xff1b; 导出为cube1.obj&#xff1b; 记事本打开看一下该obj文件&#xff1b; # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware # File Created: 10.06.2023 23:16:04mtllib cube1.mtl# # object Box001 #v -41.2323 0.0000 31.8849 v -4…

chatgpt赋能python:Python如何反向排序

Python如何反向排序 在Python中&#xff0c;排序是一项常见的任务。通常情况下&#xff0c;我们想对一组数据按照升序进行排序。但有时候&#xff0c;我们需要对这些数据进行反向排序&#xff0c;也就是按照降序进行排序。那么&#xff0c;Python该如何实现反向排序呢&#xf…

chatgpt赋能python:Python如何取出int内的个位数

Python如何取出int内的个位数 Python已经成为全球范围内最受欢迎的编程语言之一&#xff0c;它具有简单易学&#xff0c;可读性高和可扩展性等特点&#xff0c;因此它被广泛应用于数据科学、人工智能、网络编程、物联网和Web开发等领域。在Python编程中&#xff0c;有时需要从…

第七十天学习记录:高等数学:微分(宋浩板书)

微分的定义 基本微分公式与法则 复合函数的微分 微分的几何意义 微分在近似计算中应用 sin(xy) sin(x)cos(y) cos(x)sin(y)可以用三角形的几何图形来进行证明。 假设在一个单位圆上&#xff0c;点A(x,y)的坐标为(x,y)&#xff0c;点B(x’, y’)的坐标为(x’, y’)。则以两点…

44--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-支付宝二次封装、支付成功页面以及后台设计

一、支付宝支付介绍 需求:购买课程,付款 现在主流支付有支付宝支付、微信支持、银联支付 申请使用支付宝支付,需要有商户号(用户把钱付款到你的商户号中) 收手续费商户号要申请,需要有公司的营业执照(不需要营业执照也可以申请–》笔记)我们开发,需要商户号,公钥,…

Spring的数据访问哲学

目录 设计思路 了解Spring的数据访问异常体系 数据访问模板化 设计思路 Spring的目标之一就是允许我们在开发应用程序时&#xff0c;能够遵循面向对象(OO)原则中的“针对接口编程”Spring对数据访问的支持也不例外像很多应用程序一样&#xff0c;Spittr应用需要从某种类型的…

chatgpt赋能python:Python中使用Numpy获取数组元素的方法

Python中使用Numpy获取数组元素的方法 作为一种高级数据处理和科学计算库&#xff0c;numpy在python中被广泛使用。对于从事科研数据处理工作的工程师和研究人员来说&#xff0c;numpy已经成为必须要掌握的工具之一。 本文将讨论如何在Python中使用Numpy获取数组元素。我们将…

理解分布式锁的实现过程

背景&#xff1a;分布式锁在后端开发者会用到&#xff0c;它有哪些特点呢&#xff1f; 在分布式系统中&#xff0c;一个应用部署在多台机器当中&#xff0c;在某些场景下&#xff0c; 为了保证数据一致性&#xff0c;要求在同一时刻&#xff0c;同一任务只在一个节点上运行&am…

【计算机网络复习】第七章 物理层

物理层的位置和基本功能 u 网络体系结构的最底层&#xff0c;实现真正的数据传输 u 将二进制数据编码或调制成信号&#xff0c;发送到传输介质(传输媒体)&#xff1b; u 从传输介质接收信号&#xff0c;转换成二进制数据 物理层的主要功能 u 规定了与传输介质的接口的特…

chatgpt赋能python:判断Python中的字符类型

判断Python中的字符类型 在Python编程中&#xff0c;有时我们需要判断一个字符的类型。Python提供了几种方法来判断字符类型。本文将介绍这些方法并提供示例代码。 1. 使用内置函数ord() ord()函数可以返回一个字符的Unicode编码。使用这个方法我们可以判断一个字符是否是数…

【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

洛谷入门赛 #Round 13 比赛分析与总结T1 魔方魔方题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模与约定 分析AC代码注意 T2 教学楼教学楼题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示样例…

尚硅谷甄选--更新中

文章目录 搭建后台管理系统模板项目初始化2.1.1环境准备2.1.2初始化项目2.2项目配置一、eslint配置1.1vue3环境代码校验插件1.2修改.eslintrc.cjs配置文件1.3.eslintignore忽略文件1.4运行脚本 二、配置**prettier**2.1安装依赖包2.2.prettierrc.json添加规则2.3.prettierignor…