公网IPV6访问家庭设备,实现文件共享

24-12-11     slbcun     918℃     0

一直有建个自己的服务器的需求,可以文件共享可以建个网址之类的。服务器好安装,但是想要随时随地访问就不行了。

可能会说租个云服务器不就行了吗?贵而且到期之后的数据和搭建的东西还要备份。

于是想IPV6+自己的闲置电脑安装Linux就可以实现。完全免费,文件访问开一个Samba服务即可。

缺点是只能终端有IPV6才能访问,即纯IPV6站点只能使用有IPV6地址的终端访问,IPV4访问不了。

不过手机流量一般是IPV6.手机访问是没问题的。 


所需

公网IPV6

闲置机器

域名


理论

IPV6直接访问家庭的设备。ipv6除了fe80开头的链路地址是内网的其他的基本都是公网,链路地址实际上是是机器的mac地址。因为地址一直在变,重新开个机,路由器重启一下,可能就变了。所以需要一个域名来定位自己的IPV6地址。


步骤

获取自己的IPV6地址

家庭网络中一般是猫和路由器配合。

现在(23年)一般家用宽带都开通了IPV6,是否有IPV6全看路由器是否支持IPV6了,而不需要猫的超级管理员账号密码去改桥接。

我的路由器随便买的IP-link的ax3000. 进入路由器界面开启IPV6  

公网IPV6访问家庭设备,实现文件共享

在windows下打开cmd终端输入ipconfig,查看是否获取了。  

公网IPV6访问家庭设备,实现文件共享

如果有本地ipv6链路地址,没有IPV6地址,路由器也设置,大概率你所在的地方的运营商是没有开IPV6的。 这一步比较看运气,所在的区域很重要,用的运营商也很重要。


验证IPV6地址

如果有了IPV6,可以使用PHPstudy这个软件验证,开启的是否正常。

开启apache服务,这个默认支持IPV6访问,Nginx还需要修改配置文件。

公网IPV6访问家庭设备,实现文件共享

创建网站

公网IPV6访问家庭设备,实现文件共享

点击管理 修改 端口,因为运营商把80端口封了。

公网IPV6访问家庭设备,实现文件共享

浏览器访问,你应该是欢迎界面,我改过主页了。格式 [IPV6_adr]:8080 。注意IPV6出入站规则和防火墙问题。

公网IPV6访问家庭设备,实现文件共享


闲置机器安装Linux

使用ventoy制作一个系统U盘,把ubuntu的镜像放进去即可,进入BIOS启动项选择U盘启动,之后按照提示安装即可。也可以是直接使用Windows系统搭建自己的服务,所谓道之道,非常道。


找个免费域名

百度搜索 阿里域名 腾讯域名 基本上都是新注册首年免费。我用的是阿里的。 

域名解析

这里是阿里云,点击右上角控制台进入

公网IPV6访问家庭设备,实现文件共享

左上角三个横

公网IPV6访问家庭设备,实现文件共享

域名

公网IPV6访问家庭设备,实现文件共享

进入点击解析

公网IPV6访问家庭设备,实现文件共享

主机记录,可以@记录可以www记录,一个带www,一个直接域名访问。

公网IPV6访问家庭设备,实现文件共享

AAAA解析,指向一个IPV6地址即可,记录值输入自己此时的IPV6。

公网IPV6访问家庭设备,实现文件共享


域名验证

域名解析生效需要几分钟时间。格式 域名:端口号

公网IPV6访问家庭设备,实现文件共享

服务器上ddns服务

这个定时给域名服务器上报自己的IPV6地址,之后一直访问域名即可了。 主要有这几个

ddns-watchdog

ddns-go

我用的是ddns-go,在服务器上搭建一个go环境,按照git仓库里面的readme搭建即可。

安装go环境--知乎的

在源代码使用 make build 生成本地编译后的 ddns-go 可执行文件。

公网IPV6访问家庭设备,实现文件共享

sudo ./ddns-go -s install

安装服务即可。

然后在服务器上打开172.0.0.1:9876,配置即可。创建自己的AccessKey ID,复制到此处。

公网IPV6访问家庭设备,实现文件共享

设置启用IPV6,关闭IPV4,如图设置,或者看自己情况。写上自己的域名。

公网IPV6访问家庭设备,实现文件共享

成功后右上角的日志会一直有提醒的,

公网IPV6访问家庭设备,实现文件共享

可以配置相关的配置文件,达到自己的满意,具体的看github主页即可。

可以重启服务器和路由器更换IP地址,验证ddns服务是否正常。


安装Samba服务

烂大街了,直接写了个自动化的shell脚本,是Ubuntu系统用的,其他系统自己修改。Samba自身支持IPV6。 

#!/bin/bash

# 安装 Samba
sudo apt update -y
sudo apt install -y samba

# 备份并配置 Samba
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo tee -a /etc/samba/smb.conf >/dev/null <<EOF
[shared_folder]
    path = /home/shared_folder
    available = yes
    valid users = user1,user2
    read only = no
    browseable = yes
    public = yes
    writable = yes
EOF

# 创建共享文件夹
sudo mkdir -p /home/shared_folder

# 设置共享文件夹权限
sudo chown nobody:nogroup /home/shared_folder
sudo chmod 777 /home/shared_folder

# 添加用户并设置密码
users=("user1" "user2")

for user in "${users[@]}"; do
    read -s -p "Enter password for ${user}: " password
    echo
    read -s -p "Confirm password for ${user}: " confirm_password
    echo

    if [[ "${password}" != "${confirm_password}" ]]; then
        echo "Passwords do not match. Please try again."
        exit 1
    fi

    sudo useradd -m "${user}"
    echo -e "${password}\n${password}" | sudo smbpasswd -s -a "${user}"
done

# 重启 Samba 服务
sudo systemctl restart smbd.service

此脚本开了两个用户,user1 和 user2 密码自己填。


验证Samba服务

在内网直接验证即可。 文件资源管理器 ,右击我的电脑,映射网络驱动器即可。密码自己设置的自己填。

公网IPV6访问家庭设备,实现文件共享

公网IPV6访问家庭设备,实现文件共享

成功

公网IPV6访问家庭设备,实现文件共享



域名访问

和上步同样的步骤,把ip地址换成域名即可。 之后可以在其他有IPV6的地方的访问了。


手机访问

手机可以看下状态信息有没有IPV6地址,我移动的有可能换个基站就没有IPV6了。

公网IPV6访问家庭设备,实现文件共享

手机使用开源软件cx文件管理器即可。

网络添加新位置即可访问。

公网IPV6访问家庭设备,实现文件共享

通过域名访问的Samba。

公网IPV6访问家庭设备,实现文件共享

优化

服务器有时候会有临时IPV6这个东西可以使用下面的命令去掉。

# 使用sudo去执行
cat >> /etc/sysctl.conf <<EOT
net.ipv6.conf.all.use_tempaddr=0
net.ipv6.conf.default.use_tempaddr=0
EOT

sysctl -p

通过域名访问自己的服务器

配置/etc/ssh/sshd_config文件即可通过IPV6访问,记得改下端口防止入侵。

公网IPV6访问家庭设备,实现文件共享

完结

现在可以使用手机随时随地访问了家里的文件了,还多了个服务器。 其实不难,主要看心情。


分享 收藏
发表我的评论

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~