如何利用 IPv6 免费把自己电脑变成服务器


以下为文字版:

简介

今天给大家分享的是如何利用 IPv6 免费把家里面的电脑变为服务器。我们家电脑与服务器最大的区别就是服务器有一个公网 IP,可以公网访问其服务,当我们给家里面电脑用上 IPv6 公网 IP 时,使家里面电脑运行的服务,可以被公网访问,那它就可以当服务器用。

先说一下,家里面电脑做服务器不太适合的场景:

  1. 搭建网站,因为现在像 GithHub Pages、Cloudflare Pages 和 Vercel,它们都提供托管网站的功能,并且免费稳定,是完全没有必要用家里面的电脑做服务器来搭建网站的。我的网站 https://depp.wang 就是托管的 GitHub 的 Pages 上的
  2. 如果你是想远程控制家里面的电脑,也没有必要通过这种方式,我更建议你用 Tailscale 实现,再使用屏幕共享的方式去控制,使用这种方式的话,你可以完全关闭你的防火墙,会更安全。当然,如果你家里有 IPv6 公网 IP 就更好了,你可以直接让 Tailscale 建立这种点对点直连,延迟更低,体验更好。

那哪些场景可以用呢?我举 2 个例子:

  1. 比如你经常有远程控制家里面的电脑的需求,但又不方便使用 Tailscale 的时候
  2. 比如你需要一台云服务器接口联调,比如说我跟微信公众平台做接口联调。这种情况用自己的电脑性能会更好,也会更方便

这些场景就比较适合把家里面的电脑当服务器来用,其它的场景你可以探索一下,可玩度还是挺高的。

前置要求

如果你想把家里面的电脑当服务器来用的话,还是有一点前置要求的。

1、IPv6 公网 IP

首先,需要你有一个公网 IP,现在 IPv4 公网 IP 都需要收费,但如果你的宽带是电信的话,你可以免费获得 IPv6 公网 IP,电信宽带都有 IPv6 公网 IP,只是默认关闭了,只要你的路由器支持 IPv6,只要在路由器上面设置开启一下就行。移动和联通宽带我因为没有用过,不确定,你可以问下客服,应该是已经支持了的。

2、防火墙可配置

其次,因为你需要对外提供服务,所以你就需要防火墙配置指定 IP 可被公网访问,而默认光猫的防火墙是关闭了的,我们是配置不了光猫的防火墙的,所以我们只让光猫做光信号转电信号,而不使用其拨号,这样它就没有防火墙。像有的路由器,它是支持防火墙配置的,比如华硕的一些路由器,但大多数路由器都不支持,所以如果你的路由器不支持的话,要想配置防火墙,你要么就换个路由器,要么就买个软路由,要么给你让路由器刷个 OpenWRT 系统,但给路由器刷这个 OpenWRT 系统,也是需要路由器满足一定要求的。我用的小米路由器,我没有刷这个 OpenWRT 系统,我买了个软路由,软路由是电犀牛的 R68s,我用了几个月了,使用下来还是比较稳定,我个人还是比较推荐的。

因为主题原因,这里我就展开如何开启 IPv6 和折腾软路由了,可以先网上搜索一下。后面我会专门出一期教程来专门讲这个。

所以前置要求也可以说是需要你宽带支持 IPv6,你路由器支持 IPv6,你路由器防火墙可配置(或者你有一个软路由)。

3、域名 / Cloudflare(可选)

我们还可以进一步通过在 Cloudflare 上设置域名解析实现域名访问。如果你只想通过 IP +端口的方式访问的话,当然也就不需要域名了,也不需要使用 Cloudflare 了,所以域名与 Cloudflare 是可选的。注意,使用 IPv6 公网 IP + 端口访问的话,你访问网络也是需要支持 IPv6 的,现在手机网络默认就有 IPv6,如果使用电脑接的网络不支持 IPv6 访问,可以连接手机热点。使用这种方式,我强烈建议你要开启来源 IP 白名单配置,因为如果你的公网 IP 泄露的话,可能会被 DDoS 攻击,虽然我们用的软路由或者是路由器它有一定的 DDoS 防护,但也不能应对大规模的攻击,可能会被打穿。如果你不方配着来源 IP 白名单的话,那我就强烈建议你要用域名的方式访问,因为用域名的话,我们用 Cloudflare,可以使用它的 DDoS 防护,这样就更安全。

现在域名也比较便宜,几块钱你就能买一年,Cloudflare 也是可以免费注册使用的。域名的话,你也可以在这个Cloudflare 上面购买,因为它的价格基本上是最低的,也没有一些第一年便宜第二年贵的套路。

当然,使用 Cloudflare 实现域名访问,其实也还是有一个缺点,因为它是国外公司的产品,在国内访问托管在上面的域名的时候,可能不是很稳定,所以可能有的同学访问就会比较慢。

配置步骤

配置 IP + 端口访问

获取电脑 IPv6 公网 IP

首先需要获取一下电脑的 IPv6 公网 IP,我们可以通过这个命令来获取自己的电脑的 IPv6 公网 IP,这个 240C::6666 是一个 IPv6 公共 DNS 地址。

如何利用 IPv6 免费把自己电脑变成服务器

240 开头就是公网 IP,红色就是我的 IPv6 公网 IP。

防火墙配置只有电脑 IP 可外网访问

获得了 IPv6 公网 IP,我们还需要在我们防火墙里面配置指定 IP 可被公网访问,我在 iStoreOS 系统中配置,在「网络-防火墙-数据规则」里面配置我添加一条规则,配置我电脑的 IP 和端口 9090 可被公网访问,保存并应用。

如何利用 IPv6 免费把自己电脑变成服务器

让启动的应用服务可通过 IPv6 访问

我们有 IPv6 公网 IP,配置了防火墙,但此时应用服务也需要支持 IPv6 访问才行,我使用一个简单 Flask 项目来举例说明,下面创建一个简单的 Flask 项目,使其启动后可通过 http://[ipv6]:9090 来访问。

创建 Flask 项目:

mkdir flask-demo
cd flask-demo
python3 -m venv venv
. venv/bin/activate
pip3 install flask
vi app.py

app.py 代码:

#app.py
from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host='::', port=9090)

启动:

python app.py

启动结果:

如何利用 IPv6 免费把自己电脑变成服务器

我使用 telnet 命令和网页访问测试一下,我利用 Tailscale 使用屏幕共享控制另一台电脑测试,这台电脑是连的热点,所以是支持 IPv6 访问。

如何利用 IPv6 免费把自己电脑变成服务器
如何利用 IPv6 免费把自己电脑变成服务器

结果显示 telnet 与网页访问都没有问题。如果只想通过这种方式访问家里电脑的服务的话,那后面就不用看了。

配置域名访问

Cloudflare DNS 配置实现可域名 + 端口访问

可以通过 Cloudflare 配置域名解析实现可域名访问,因为现在的 80 和443 端口是被运营商封禁了的,你不能直接使用 80 与 443 端口。先配置实现域名 + 指定端口访问。

在 Cloudflare DNS 中配置 DNS 解析:

如何利用 IPv6 免费把自己电脑变成服务器

DNS 解析可通过 DNS Checker[1] 来检测是否已生效,再用另一台电脑通过 ping6 来测试是否已生效,注意是 ping6 不是 ping,我就在这里踩坑了,一直用 ping,结果不通,以为 DNS 解析有什么问题,浪费不少时间。以下代表 ping 通了。

如何利用 IPv6 免费把自己电脑变成服务器

网页访问也没有问题:

如何利用 IPv6 免费把自己电脑变成服务器

目前就可以通过域名 + 端口访问了。

Cloudflare 配置实现不要端口直接域名访问

前面说这个 80 和 443 端口被运营商封禁了,但我们可以使用 Cloudflare 实现免端口访问。Cloudflare 可以通过配置端口转发的方式实现不要端口直接访问,相当于把 80/443 端口转发到指定端口。

首先,我们需要在 「规则 – Origin Rules」里面创建一个自定义规则。配置当访问二级域名 wx.depp.wang 时,请求转发到 9090 端口:

如何利用 IPv6 免费把自己电脑变成服务器

第二,在 DNS 解析这里打开这个代理状态:

如何利用 IPv6 免费把自己电脑变成服务器

我解释一下,为什么要打开,打开后,我们在访问域名的时候,它会先解析到 Cloudflare 的主机上,Cloudflare 在那个主机上面给做一个代理转发,转发到我们配置的公网IP 和端口对应的服务上。这样就实现了直接域名访问。

DNS Checker 检测已生效后,通过 ping6 与网页测试。

如何利用 IPv6 免费把自己电脑变成服务器
如何利用 IPv6 免费把自己电脑变成服务器

都没有问题,说明我们配置成功。

因为公网 IP 可能随着网络的变化而变化,根据你自己的 IP 变化的情况,你可以自己判断要不要使用 DDNS,它可以动态的把你的公网 IP 更新到 Cloudflare 的 DNS 上去,这样你不用自己手动更新 IP,如果你用的话,我推荐使用 ddns-go[2],如果使用 macOS,可以用 brew 安装,配置教程可以参考这篇文章[3]

参考资料
[1]

DNS Checker: https://dnschecker.org/

[2]

ddns-go: https://github.com/jeessy2/ddns-go

[3]

这篇文章: https://lijianfei.com/post/yi-jian-gao-ding-cloudflare-dns-zi-dong-geng-xin-gao-bie-shou-dong-fan-suo/


原文始发于微信公众号(德普王):如何利用 IPv6 免费把自己电脑变成服务器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/264833.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!