以下为文字版本:
介绍
今天给大家分享如何免费使用 IPv6 将家用电脑变成服务器。我们的家用电脑和服务器最大的区别在于,服务器拥有公网 IP 地址,可以从公网访问其服务。当我们为家用电脑使用 IPv6 公网 IP 地址时,家用电脑上运行的服务可以从公网访问,并且可以作为服务器使用。
首先说一下家用电脑不适合作为服务器的场景:
建网站,因为现在有Pages、Pages等,它们都提供托管网站的功能,而且免费稳定,不需要用家里的电脑当服务器来建网站。我的网站就是托管在Pages上的
如果你要远程控制家里的电脑,就没必要这么做了。我建议你使用实现,然后使用屏幕共享来控制。这样你就可以完全关闭你的防火墙,会更安全。当然如果你家里有 IPv6 公网 IP 就更好了。你可以直接建立这种点对点的直连,延迟更低,体验更好。
那么它可以用在什么场景呢?我举两个例子:
例如,如果你经常需要远程控制家里的电脑,但使用起来又不方便,
比如你需要调试一个云服务器的接口,比如我是做微信公众平台的接口调试的,这种情况下用自己的电脑会更好一些,也会更方便一些。
这些场景比较适合用家用电脑当服务器,其他场景大家可以自己探索,可玩性还是挺高的。
先决条件
如果你想将家里的电脑用作服务器,还是有一些先决条件的。
1. IPv6 公网 IP
首先你需要一个公网IP,现在IPv4公网IP是收费的,但是如果你的宽带是电信的,可以免费获得IPv6公网IP。电信宽带有IPv6公网IP,但是默认是关闭的,只要你的路由器支持IPv6,打开就可以了。我没有用过移动和联通宽带,所以不太清楚。你可以问客服,应该是支持的。
2. 可配置防火墙
其次因为需要对外提供服务,所以需要配置防火墙指定一个公网可以访问的IP地址。光猫默认防火墙是关闭的,我们又无法配置光猫的防火墙,所以我们只让光猫把光信号转为电信号,不用它的拨号,这样它就没有防火墙了。有些路由器支持防火墙配置,比如部分华硕路由器,但是大部分路由器是不支持的。所以如果你的路由器不支持,如果你想配置防火墙,要么换个路由器,要么买个软路由器,要么让路由器给你刷个系统。不过给路由器刷系统也需要路由器满足一定的要求。我用的是小米路由器,但是没有刷这个系统,买的软路由器是电犀牛的R68s,用了几个月了,还是比较稳定的,个人比较推荐。
因为话题比较多,这里就展开讲一下如何开启IPv6,以及如何使用软路由器,大家可以先在网上搜一下,后面我会专门出一篇教程来讲这个。
所以前提条件也可以说是你的宽带需要支持IPv6,你的路由器需要支持IPv6,你的路由器防火墙需要可配置(或者你有一个软路由器)。
3. 域名/(可选)
我们还可以通过在服务器上设置域名解析来进一步实现域名访问。如果你只想通过IP+端口来访问,当然是不需要域名的,也不需要用到,所以域名是可选的。注意,如果使用IPv6公网IP+端口来访问,还需要支持IPv6才能入网,现在移动网络默认就是IPv6的,如果电脑连接的网络不支持IPv6访问,那么就可以连接移动热点。这样的话,我强烈建议你开启源IP白名单配置,因为如果你的公网IP泄露了,那么可能会遭受DDoS攻击,虽然我们使用的软路由或者路由器有一定的DDoS防护,但是无法应对大规模的攻击,可能会被穿透。如果没有源IP白名单,那么我强烈建议你使用域名来访问,因为如果使用域名的话,我们可以使用它的DDoS防护,更加安全。
域名现在比较便宜,几块钱就可以买一年的,还可以免费注册使用,这里也可以买域名,因为它的价格基本是最低的,而且没有第一年便宜,第二年贵的套路。
当然用域名访问也有缺点,因为是国外公司的产品,在国内访问上面托管的域名时,可能不太稳定,所以有的同学可能会出现访问速度慢的情况。
配置步骤:配置IP+端口访问,获取电脑的IPv6公网IP
首先,你需要获取你电脑的 IPv6 公网 IP。我们可以用这个命令来获取我们电脑的 IPv6 公网 IP。这个 240C::6666 是一个 IPv6 公网 DNS 地址。
240开头的是公网IP,红色的是我的IPv6公网IP。
防火墙配置为只有计算机IP才能从外部网络访问
获取到IPv6公网IP之后,我们还需要在我们的防火墙中配置这个指定的IP,让它可以公网访问。我是在系统中配置的。在“网络-防火墙-数据规则”中,我添加了一条规则,配置我的电脑的IP和端口9090可以公网访问。保存并应用。
使已启动的应用服务可通过 IPv6 访问
我们有一个 IPv6 的公网 IP,也配置了防火墙,但是应用服务还需要支持 IPv6 的访问,我以一个简单的 Flask 项目为例,我们先创建一个简单的 Flask 项目,让其启动后可以通过 [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 访问。
结果显示网页访问没有问题,如果你只是想通过这种方式访问家里电脑的服务,那么下面的就不用看了。
配置域名访问DNS配置实现域名+端口访问
可以配置域名解析实现域名访问,因为目前80、443端口被运营商封掉,不能直接使用80、443端口。先配置实现域名+指定端口访问。
在DNS中配置DNS解析:
DNS解析可以用DNS[1]来测试是否生效。然后用另外一台电脑用ping6来测试是否生效,注意是ping6,不是ping。我这里踩坑了,一直用ping,但是没用,还以为DNS解析有问题,浪费了很多时间。下面表示ping生效了。
访问网页没有问题:
现在就可以通过域名+端口来访问了。
配置直接访问域名,不用端口
前面说了80、443端口是运营商封掉的,但是我们可以利用这两个端口来实现免端口访问,通过配置端口转发就可以实现不用端口直接访问,相当于把80/443端口转发到指定端口上。
首先我们需要在“规则-规则”中创建自定义规则,配置当访问二级域名wx.depp.wang时,将请求转发到9090端口:
二、开启DNS解析中的代理状态:
我先解释一下为什么需要开启,开启之后我们访问域名的时候,会先解析到主机,然后在该主机上做一个代理转发,转发到我们配置的公网IP和端口对应的服务上,这样就实现了域名直接访问。
DNS检测生效后,通过ping6和web页面进行测试。
没有任何问题,说明我们的配置成功。
因为公网 IP 地址可能会随着网络变化,所以你可以根据自己的 IP 地址变化情况来决定是否使用 DDNS。DDNS 可以动态地将你的公网 IP 地址更新到 DNS,这样你就不用手动更新 IP 地址了。如果使用的话,我推荐使用 ddns-go[2]。如果你使用 macOS,可以用 brew 安装。配置说明可以参考这篇文章[3]。
参考
[1]
DNS:
[2]
ddns-go:
[3]
本文:
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。