目录
使用 公网ipv6 ddns debian12 进行服务器搭建
介绍
前言
路由器无 公网 IP 怎么搭建服务器?(公网IP一般指的是IPv4)
两个解决方案:
第一个:使用 frp 进行端口的配置
第二个:使用 ipv6 直接绑定个域名,现在光猫或路由器一般都支持ipv6上网的
方案 1:
需要 一个云服务器 搭配 自己本地服务器使用!
原理:通过云服务器把的端口把数据传输到本地服务器也意味着使用了这个端口以后就云服务器就不能在用这个端口来访问它自己了,但是好消息是:云服务器的端口可以随意设置,就相当于 云服务器随意端口 -> 本地服务器特定端口 这样,还是实现了端口的隐藏,也不错。
方案 2:
第二个方案需要:一个域名、自己的本地服务器
这个方案网上配置有很多但是我有些也不适合自己,所以还得自己配置
第一个方案的实现,这里可以参考这篇文章:
链接: FRP实现内网穿透
步骤:
- 检查自己是否有ipv6
- 检查自己的电脑
- 检查自己的路由器或光猫是否支持(我的是光猫)
- 开放防火墙的端口
- 路由器
- 本地服务器
- 测试 ipv6 是否能访问到本地服务器
- 使用ping -6 ipv6地址(先在局域网ping,再在全局网络ping,全局网络拿另外一太电脑连接手机热点就行了)
- 测试 ssh 连接到服务器
- 测试局域网的 ssh
- 测试广域网的 ssh
- 申请 域名并绑定服务器
- 阿里云域名申请(其实也可以不用申请域名的,因为 ipv6 就直接可以访问服务器了,但是ipv6长度太长得弄简洁,还有 ipv6 是动态变化的所以需要域名,不然重启光猫就找不到了)
- ddns 配置用来解决 ipv6 动态变化问题
- 命令安装 ddns-go
- 设置开机自启
- 收工总结
一、检查自己是否有ipv6
- 使用网站检查
- 链接: IPv6测试
注意:那个 IPv4 我们是没有的,至少我这里光猫上面没有 - 本地查看 ipv6
注意:把这张图的ipv6和上面那张图对比要地址一样才行(这里我拿win11来测是因为这样方便点,这里要证明的是我们的光猫或路由器能给我们分配公网IPv6地址,不关系统的问题)
- 链接: IPv6测试
二、开放防火墙的端口
- 光猫防火墙(我的是移动的光猫)
- 使用超级权限用户登录
电信超级密码:
用户名: telecomadmin
密码: nE7jA%5m
移动超级密码:
用户名: CMCCAdmin
密码: aDm8H%MdA
我密码: 9IU$gPa$2 (光猫注册后密码可能会有变动,这是我找装机师傅帮忙查询到的)
联通超级密码:
用户名: CUAdmin
密码: CUAdmin
华为原版界面超级密码:
用户名: telecomadmin
密码: admintelecom
- 开放端口防御
注意:把上面的保护设置全部给去掉(默认应该是勾选的有一些的)
- 本地服务器防火墙
在本地的服务器使用命令:
不同 Linux 系统关闭防火墙的命令如下:
- CentOS / RHEL:
systemctl stop firewalld
systemctl disable firewalld
- Ubuntu / Debian:
ufw disable
systemctl stop ufw
- debain12添加端口命令:
IPv4:
ufw allow 22/tcp
ufw allow 80/tcp
IPv6:
ufw allow 8080/tcp6
ufw allow 80/udp6
全部一起添加:
ufw allow 22
ufw allow 80
- 删除规则
ufw delete allow 80/tcp
- 查看规则
ufw status
ufw status numbered
- 开启/关闭命令
ufw enable
ufw disable
至此:防火墙的就搞定了,要是没有前面没有 ping 通现在可以再次ping 应该就通了
三、测试 ipv6 是否能访问到本地服务器
- 使用在局域网测试 ping -6 ipv6地址 测试:
这是我的debian IPv6地址:
- 内网测试ping的结果:
- 外网测试ping 的结果:
注意:上面两次结果的延时可以看出一个是内网测试的一个是外网测试的(外网就使用手机开热点)
四、测试 ssh 连接到服务器
-
内网测试 ssh
-
外网测试 ssh
注意:这两个测试结果差别不大,使用差距在延时上面!(内网更丝滑)
五、申请 域名并绑定服务器
- 阿里云域名申请:
- 找到申请域名位置:
注意:输入框里面那个是自己想要什么域名就输什么域名 - 申请域名
注意:首次 是 1块钱,但是我这里已经买过了所以是13块钱 - 域名的实名认证(自己认证就好了,挺简单的)
- 创建一个子账户以及账户密钥用来配置 ddns
- 密钥点击管理
- 设置用户名字
- 添加权限
- 权限设置
- 另外创建账户后就有一个 账户和密钥我们要复制它(记得要复制不然后面就找不到了),大概是下面这样子:
AccessKey ID: LTAI5tN2hiPWr4TUVggYEE
AccessKey Secret: FUrYPXnn6BG6D9lWDgAZxkQ692l
- 到域名解析这里配置解析到 ipv6
确定以后,这样我们的域名配置步骤就完工啦!就可以使用域名来直接访问了
注意:上面主机记录那里我选择了www,那么我的域名就是 www.xxxx.cn ,如果有是top后缀,那么就写 www.xxx.top
六、ddns 配置用来解决 ipv6 变化问题
- ddns-go 的 github来源
- 在 Debian 12 系统上通过 Docker 使用 ddns-go 的方法如下:
- 首先 安装 Docker (要在超级管理员下面进行)
sudo apt update
sudo apt install docker.io
- 拉取 ddns-go 镜像
docker pull jeessy/ddns-go
- 创建目录用于保存配置
mkdir /opt/ddns-go
- 启动容器,设置目录映射
docker run -d --name ddns-go --restart=always --net=host \
-v /opt/ddns-go:/root jeessy/ddns-go
注意:这里使用 --net=host 模式让容器和宿主机共享网络,便于检测 IP 变化。
- 浏览器访问 http://服务器IP:9876 进入配置界面
注意:这里我也建议使用 接口 获取,因为网卡可能有不太连得上的问题! - 查看日志
-
本地:
-
阿里云:
- 只要阿里云的日志有变化就代表成功了
- 检查docker是否设置开机自启
systemctl is-enabled docker
返回enabled就代表设置了
- 没返回设置:
sudo systemctl enable docker.service
- docker容器内是否自启了:
1、查看容器自动重启策略
docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" ddns-go
2、重启 Docker 服务
sudo systemctl restart docker
3、检查 ddns-go 容器是否依然在运行
docker ps
注意:有这个证明了之前添加的 --restart=always 参数正在发挥作用,可以确保容器随 Docker 服务的启动而自启。
debian 禁用休眠和挂起:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
七、总结
问题记录:
配置时也遇到了很多问题:
1、最开始并没有弄明白 公网IPv6 这东西服务器在每个连接网络的设备都有 1 个,还以为需要路由器的公网IPv6在进行端口转发呢
2、IPv6端口转发在光猫内转发并不好配置
3、光猫默认直是所以端口都通行的
4、其实没有域名也可以对服务器进行 IPv4的所有操作的,只是地址记不住