如何在家里部署一台在公网可以访问的服务器

发布于 2021-08-28  2513 次阅读


写在开始的话

漫漫暑假在家,一直没什么事情干,但是又好想和好基友一起打电动,于是在这个暑假的闲暇时光里把搁置已久的家庭服务器项目推上了正轨。某种意义上这是一个懒癌患者在暑假期间在家里完成的唯一一个“大制作”。(手动狗头)

因此不出意外的话本教程将会教会你从零开始搭建自己的家庭服务器。

为了避免大伙看到一半发现自己没法子按这个教程整...

以下用户在绝大数情况下无法顺利走完流程:

  • 宽带运营商不提供公网ip的(大多数情况下移动就不提供,电信联通在打个电话给客服后则一般会提供)( 好像广东地区的联通也不提供公网ip)
  • 没有基本计算机和网络知识的(你总得知道ip是什么东西才能整吧)
  • 软硬件环境过于恶劣的(那你的路由器总不能三分钟掉一次线吧?你的家庭网络总不能连桥接都不能切换吧?)

1. 先整个靠谱点的路由器...

在开始这个计划之前,作者家里用的路由器是一台不堪重负的小米路由器3,如果只是放在家里给家里人看看视频的话想来还是勉强够用的,但是如果要给一台服务器用的话登录还是换台靠谱点的啦

因此在一段时间挑选后我选择了能刷openwrt的竞斗云来当新的路由器。当然大家可以按自己的预算和习惯的系统来选择路由器,但是这里的教程还是先拿竞斗云(Openwrt)来开始吧。

整活第一步,先保护好自己

在整活的一开始,我们需要先进入路由器的管理界面(在没有经过设置的openwrt路由器里应该是192.168.1.1,默认密码应该是“password”)里修改一下一些基本的信息。

首当其冲的当然是密码,如果我们想把这个路由器的管理界面设置成外界可访问的话,我们就需要设置一个强密码来保证安全啦。

因此我们需要在“ 系统 -> 管理权 ”处更新自己的密码,此处建议用密码管理器生成一个强密码后填进去(当然别做一个忘记密码的憨憨)

总觉得要配张图好

整活第二步,先通上网...

在这之后,如果你发现你的设备连不上网的话,我们需要在“ 网络 -> 接口 ”处把我们需要用到的接口勾选上;同时强烈建议在这里将基本设置里的路由器ipv4地址也改掉,不然的话可能会和运营商的光猫地址冲突。

当然你改成其他也可以,符合规范即可
可以参考一下我这里的设置

当然如果你这个路由器还兼做家用路由器的话还可以在路由器在“无线”处修改自己所使用的wifi,这里就不展开讲了

2. 然后整整服务器

为了这次整的服务器足够靠谱,作者特意在“一个朋友”手中搞到了一台退役了的R710来作为主机,如果没有“一个朋友”可供白嫖的话,使用一台淘汰下来的主机或者专门搞一台电脑的话也是可以。

在这里作者选择了给服务器安装debian作为系统,过程无非就是:去官网找镜像,用rufus把镜像装到U盘里,下一步下一步下一步...,最后就是装入ssh server什么的,可以远程访问就算大功告成啦~(建议整个秘钥登录靠谱点)

放个连接成功的图意思意思

3. 然后打个电话跟运营商要公网ip

作者家庭网络选用的网络运营商是中国电信,为了可以一次成功地要到公网ip,作者在打电话给电信客服前恶补了大量功课,大多数情况下都是建议拿装监控为理由申请的,但是实际上笔者要到公网ip的过程是这样的...

  • 第一天晚上:
    • 我:你好,请问一下我可以申请一下公网ip吗,申请的宽带就是这个手机号码绑定的。
    • 客服:好,这个要求可能我的权限没办法立刻帮你搞定哦,48小时内会有专人跟进帮你处理的。
    • 我:好好好,谢谢谢谢(挂断)
  • 第二天早上:
    • 客户:你好昨天你申请的公网ip已经帮你完成对应修改了,请有空的话进行一下相关服务的打分噢
    • 我:好的好的谢谢。

emmm,反正就是行云流水

在要到公网ip后还要记得将光猫改成桥接模式,并用路由器进行拨号上网,这样的话路由器就算是直接接入公网了。

4. 完成下路由器的最后一点设置

整一个端口转发

当然,做到这一步你的服务器还是不能在外网访问的,下面我就讲讲刚才端口转发。

端口转发,顾名思义就是让外网访问到你这个ip的端口请求由你的路由器转发到你想要的设备端口里。

举个例子,假如你想要通过外网访问你路由器的管理界面,我们就需要将外网发往这个ip的请求转发到这个路由器的80端口里(因为管理界面用的是http,而http请求会发往80端口)。

因此我们就需要在“ 网络 -> 防火墙 ”处添加对应的设置

基本设置建议按这个样子整
然后我们就可以在下面按图中的方法将请求转发给连接到路由器的设备了

假如我希望可以通过5051号端口访问这个路由器的管理界面,我们就可以按下图这样设置

当然设置成5051号端口主要是因为运营商在大多数情况下并不会给我们提供80号端口的权限

这样设置之后我们可以在外网通过ip+端口号访问我们的路由器了

成功的例子
同理,我们也可以用相同的原理设置ssh之类请求的转发(记得设备要选对)

可以的话再整个DDNS

那么写到这里可能就会有人问了,我要怎么知道自己的ip呢,为什么这个ip总是隔一段时间就会变呢(真的会有不知道为什么的人不信邪地看到这里吗)

由于运营商给我们的ip是一个动态ip,为了可以方便的在外网连接到我们,我们需要搞个DDNS来帮助我们连接我们的电脑,因为DDNS会每隔一段时间自动检测你的IP地址是否有变化,如果是就自动修改解析。这样的话我们就可以通过一个网址轻松地访问我们的网络了。

由于作者已经在阿里云处购买了个域名,所以这里的ddns教程就以aliddns进行吧。

首先我们需要进入“ 服务 -> 动态DNS ”以添加一个我们使用的规则

取好名后按下那个大大个蓝色添加键(我相信你不会取个中文名的对吧)
然后这是按下了那个添加键后你需要填的东西
这里是高级设置里,如果地址来源使用“网络”不准确的话可以选用图中的URL法

如果不知道accesskey怎么获取的话可以查看阿里云的教程,其他的DDNS各有各的方法,但是openwrt自带的动态ddns功能强大,大多数情况下都可以满足使用。

差不多就是这么回事

在这一套完成后我们就可以成功地连上我们放在家中的服务器啦,如果有疑问的话还请留言指正~