November 25, 2024

公网ipv6配置教程他来了!可用作远程桌面连接、服务器(非web网页)、游戏服务(我的世界)

一、检测

首先先检测是否为公网ipv6(或者是否被光猫墙了)
image

如果测试页面打不开,或者页面和我的不一样,请移步192.168.1.1 27,登录超级管理员(自行百度,每个地区不一样)查看是否连接至ipv6,若显示ipv6地址如图,则说明有公网ip,
image

如果显示ipv4地址,则说明被光猫墙了,此时需要联系光猫客服,申请公网ipv6,或者更换光猫,或者使用ipv6桥接模式(不推荐,因为ipv6桥接模式会禁用大部分功能,比如wifi,不过大家大可不使用wifi,直接用网线连接电脑和光猫即可)

此时需要设置允许广域网访问,并降低防火墙安全性(一般不会有人闲的去攻击普通用户,大可放心)
image

防火墙设置:
image

二、将ipv6分配到设备

很多朋友吐槽“路由器继承不了ipv6啊,怎么办啊”,别急,下面是三种方法:

以我的路由器为例,
登录路由器管理页面,打开网络设置,如下配置:
image

设置为中继模式(ap模式、桥接模式)

登录超级管理员用户,打开光猫的网络设置,如下配置:(建议截图保留原来配置以恢复)
image

设置完成后,打开路由器管理页面,设置ipv6获取方式从自动获取更变为为拨号连接,输入宽带账号密码即可

三、获取ipv6地址:

理论上ipv6可以为世界上的每一粒沙子分配一个地址,我们的地址获取方法也很简单,如果你是Windows用户,按win+r输入cmd,在命令提示框中输入ipconfig
image

箭头所指的ipv6地址都可以被外界访问,如果你是Linux用户,就不必我讲了,你肯定会[/doge]

什么,太复杂,下面是解决方案(选看)

PS:域名购买和ddns服务

选购国内外云服务(腾讯云,阿里云)的域名,添加AAAA解析,这里以腾讯云为例
image

AAAA解析记录是ipv6专用的解析类型,鉴于家用网络ipv6经常变动的情况,我推荐大家使用ddns-go(非恰饭)动态解析域名,win端下载地址https://geeklab.work/ddns.zip 8

下载完成后打开,在浏览器中输入localhost:9876
image

在对应区域输入在域名商获取的token,把ipv4是否启用的框框取消勾选,ipv6勾上
image

点击save保存即可

讲讲他的实际作用

我的世界服务器:

首先准备服务端(不提供技术支持)双击运行脚本打开
image

等等,还没完
成功运行
image

打开游戏选择加入多人游戏输入你的[域名:端口号]即可

远程桌面连接:

首先准备服务端(不提供技术支持)双击运行脚本打开

image

打开系统自带的桌面连接工具,输入对应主机的域名即可
image

到此结束

等等,还没完
附上python自动化获取ipv6地址的教程(ipv6地址经常发生变动,造一个小轮子给大家方便使用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import socket
import re

def get_ipv6_addresses():
ipv6_addresses = []
try:
hostname = socket.gethostname()
addrinfo = socket.getaddrinfo(hostname, None, socket.AF_INET6)

for address in addrinfo:
ipv6_address = address[4][0]
ipv6_addresses.append(ipv6_address)
except socket.gaierror:
print("无法获取IPv6地址")

return ipv6_addresses

def find_ipv6_starting_with_24(ipv6_addresses):
pattern = r'^24[0-9a-fA-F:]+'
matching_addresses = []

for address in ipv6_addresses:
if re.match(pattern, address):
matching_addresses.append(address)

return matching_addresses

if __name__ == "__main__":
ipv6_addresses = get_ipv6_addresses()
if ipv6_addresses:
matching_addresses = find_ipv6_starting_with_24(ipv6_addresses)
if matching_addresses:
print(matching_addresses[0])
pass #这儿添加ddns执行脚本,matching_addresses[0]或matching_addresses[1]都可以作为本机的公网ipv6地址
else:
print("\n未找到公网IPv6地址")

关于本文

由 Jimmy Ki 撰写, 采用 CC BY-NC 4.0 许可协议.

#ipv6#远程桌面#服务器#游戏#网络