最近买了一台DELL R620服务器,配置了Xeon E5-,20个物理核心和40个逻辑核心,外加32G内存。本以为高配置的服务器我会很满意,但是直到开始玩之后才发现非常麻烦。总结如下:
1.首先你需要一个公网IP
虽然申请起来比较困难,但也要看运营商和地区。例如,对于广播和电视来说,忘掉手机吧。给广播电视打电话的人甚至不知道公网IP地址是什么。莫比尔可是出了名的老流氓,哪有那么容易给你免费吃顿饭?如果你想向中国移动申请公网IP,首先要准备2万元人民币。所以申请联通和电信是最简单的。您可以尝试联系客服帮您开通。如果还不行,工信部会联系你。我也会写一下我是如何申请的,希望对大家有所启发。
2.动态域名解析
拥有公网IP就够了吗?想桃花。公网IP分为固定公网IP和动态公网IP。固定公网IP是企业或者相关部门专门使用的,但是如果你有钱的话可以申请。一个月的价格比千兆宽带一年贵很多。 (视地区而定),开放固定公网IP的80端口和443端口比较容易。如果你有固定的公网IP,肯定会省事。
不过,对于我们这种喜欢乱搞的穷人来说,我们当然只给出动态的公网IP地址。什么是动态IP?也就是说,公网IP地址在一定的触发条件下会发生变化。它可能会在 48 小时内自动更改,也可能会在您重新启动计算机或路由器时更改。一般情况下,IP变化的值是最后一部分,如xxx.xxx.xxx.123。这个公网IP后面的123不是固定的,会在0-255之间变化。这很令人困惑。大家都知道,域名解析A记录必须解析一个固定的公网IP。我们不可能不断地手动更改IP。如果IP随时发生变化,假设我们当时拉屎了,拉了一个小时,没有及时发现,网站就宕机一个小时了,影响很大。
因此,就有了DDNS这样的东西。第一个D的意思是“”,即动态的意思。组合起来就是动态DNS。这东西的原理是什么?可以实时监控IP变化。一旦监测到IP变化,域名解析记录就会被修改为新分配的公网IP。这是一件非常好的事情。很多路由器都会有这个设置,名为DDNS或动态DNS,但有些路由器只有第三方DDNS服务,比如花生壳。第三方DDNS速度很慢,无法利用家庭宽带。所以我们可以尝试给路由器刷第三方固件。有些固件会有阿里云或者DDNS服务,这样就方便多了。但如果有大佬懒得做,或者路由器是古董,那就得写一个定时运行的DDNS脚本来监控了。这将在下面的文章中讨论。
3.端口转发
现在公网IP地址解决了,但是只是解决了一个棘手的问题。我们还需要设置端口转发。虽然我们有公网IP,你可以尝试用IP+8888访问宝塔面板,但是还是访问不到。这是因为路由器设置的原因,我们的端口仍然对外界关闭。因此,我们需要在路由器上配置端口转发,将外网的访问请求转发到对应的内部端口,从而可以正常访问
4.省略域名后端口的处理
如果配置正常的话,应该可以访问宝塔面板,但是当你兴高采烈地新建一个网站并尝试访问时,卧槽,访问超时了?哦,忘了说了,现在所有运营商都封锁了80、8080、443等敏感端口,就是为了不让家宽建站。 (当然,有些地方可能不会屏蔽443端口,你可以试试这个。)无论你怎么尝试端口转发,都行不通。现在麻烦了,那就建个网站有用啦~~~
不过,您的域名此时并非无法访问。现在80和443端口已经过时了,我们可以换成其他端口。比如2233,你看这个端口有多么有趣。我们只需在宝塔面板中将您的网站端口从80更改为2233,您就可以访问您的网站了。不过你需要在你的域名后加上端口号,如:2233,这样才能正常访问。这就是没有端口80或端口443的缺点:需要添加端口——这不仅对用户不友好(因为有时用户无法区分中文冒号和英文冒号),最可怕的是搜索引擎蜘蛛看到这么奇怪的域名就不来了。那么为什么80、443端口的网站不需要在域名后手动添加端口呢?其实不管是什么端口,域名后面的端口仍然存在,只是浏览器已经帮你省略了80和443端口。但如果不是80或443端口,浏览器就帮不了你,只能靠你自己了。
为了省去很多麻烦(主要是域名后面加端口实在是不美观),我们需要用其他手段把域名后面的端口号去掉,这样即使我用的是非80或者443端口搭建网站,直接输入域名还是可以正常访问网站的。无需手动输入端口即可达到与80端口443端口网站相同的访问效果。
关于端口号的问题,目前我找到了两种方法。第一种:CDN。众所周知,有些CDN可以设置自定义回源端口。使用CDN可以解决移除端口号的问题。此方法也适用于未注册域名(使用香港CDN)的网站。缺点是不能直接返回,非国内CDN会对速度造成一定影响;第二种是隐式URL解析,需要你的网站域名额外添加一个中转域名进行解析,并且这个中转域名有一个端口号可以访问,只要我们的官网域名解析到我们的中转域名即可域名,加上隐式URL解析记录,无需端口号即可访问网站。不用说,好处就是直接回溯源头;但缺点是需要注册域名和购买高级解析包。在阿里云中,我不确定免费版的云分析器中是否有这样的隐藏URL记录。我用的是云分析仪企业版,每月14元。
可能你理解的不是很清楚,我给你举个例子:
我想建立一个网站,域名和主机IP为11.11.11.11。但是没有80和443端口,解析为11.11.11.11后,我只能将网站端口改为6666,这样用户访问网站时只能输入:6666来访问我的网站。为了允许用户通过直接键入来访问我的网站,我需要执行以下操作:
首先,我创建了一个名为的新域名,我将其解析为11.11.11.11,这样当我输入:6666时,我可以访问与:6666相同的页面。
然后,我修改了解析记录,删除了原来的A记录,然后解析为:6666(这种解析记录就是隐式url解析)。这样,当我访问时,就相当于访问: 6666 ,并解析到源站的IP,即11.11.11.11。因此我完美的实现了通过直接访问的方式正常回源。
这是隐式 URL 解析。当然,前提是域名已经注册。
然而:隐式 URL 有一个很大、很大、甚至致命的问题。首先,隐式URL解析是基于实现的,这对于搜索引擎蜘蛛来说非常不友好。注重SEO的兄弟一定不要用。其次,浏览器中显示的域名始终是隐藏URL记录的解析值。无论你如何点击内部链接,浏览器都会显示该域名,用户读后会感到困惑。可以这样理解:我创建了一个域名为1.0的博客,并且使用了隐式url解析。我打开一篇文章,发现url还是原来的,这让我大吃一惊。我登录后端并输入 URL /wp-admin(刻在 DNA 中的链接)。我发现页面跳转正常,但是浏览器显示的URL还是原来的? ? ?如果有用户看到的话,肯定会认为这里闹鬼。因此,如果蜘蛛来爬行您的网站并发现一个域名指向一堆不同的页面,您希望它怎么想?它还会爬行吗?
因此,强烈不建议使用隐藏 URL。有能力的话最好用CDN~~
然而,CDN 并不完美。除了被要求在中国注册外,还可能被有关部门发现,责令贾宽停止建设网站。使用香港CDN则不同。你可以为所欲为了,但是你也必须小心运营商对http请求的监管!在网上,你会看到一些大佬抱怨贾宽的网站建设有时会下线(宕机)。发现了一个典型案例。
话又说回来,无需在服务器上设置任何反向代理、重定向或任何内容。外网80端口的请求在到达服务器之前就被拦截了,根本没有流量。一切都是徒劳。内网端口畅通无阻。你可以发送任何你想要的东西。去外网给你锤子就别想进去了!
这些都是我们在家建设网站时必须解决的问题。不管怎样,没有一个方案可以完全媲美从阿里云购买云服务器来搭建网站。如果你和我一样喜欢折腾,可以继续往下看。我给出了详细的操作方法供大家参考;但如果你刚刚准备好这样玩;或者你根本没有意识到这一点,工作困难的兄弟,我建议你好好利用云服务器。抛开设置的难度,相信稳定性应该不会比云服务商好。家里停电了怎么办?不仅如此,你还得购买物理服务器、树莓派或者小主机,再加上国内的CDN费用等等,更何况还需要花费大量的时间。站长只需要建立自己的网站即可,无需过多担心家里架设服务器的问题。虽然物理服务器的配置是免费的,家里也宽敞,但是花两千块钱就可以拥有一台64核的、几百G内存的、十几台的。 T的SSD,加上千兆宽带,100M上下行,如果放在阿里云或者腾讯云,一个月能卖到10万多。也许你会发现花钱还不如买个云服务器。追求稳定和速度的站长直接购买云服务器就可以了!
PS如果你没有公网IP地址,或者不想惹那么大麻烦,还有一个办法,那就是内网穿透。内网穿透几乎可以解决以上所有问题,但是正如一开始提到的,速度限制比较大,第三方内网穿透的速度就更不敢恭维了(提供一些比较知名的内网穿透服务商) :,花生壳,frp等),如果你有闲置的大带宽云服务器,也可以自己搭建frp服务,我也会写一个教程。不过我是这样想的,既然有云服务器,为什么不使用云服务器呢~
高能警告!这是最后的提醒,请您慎重考虑,三思而后行!欢迎来到折腾聚会~
本文是针对动态公网IP地址、域名未注册、80、443端口被屏蔽的家庭服务器的教程。如果您的域名已被注册,或者您没有公共IP地址,请滚动到本文末尾查看我写的其他文章。 ,也从0开始解释,并且会针对其他情况提供更加可行、多样化的解决方案。欢迎阅读
//1798
正文开始
1、准备物理设备
它可以是机架服务器、塔式服务器、工程机、TB级小型主机甚至你的家用电脑等。如果你在建设网站,你必须有24小时开机的意识。你必须自己处理噪音、电费和其他问题。不需要。如果是这样,您可以购买云服务器。没有必要经历这样的麻烦。
你可以看一下我的,我花了很多钱(其实还不如去腾讯云瞬间杀掉一个服务器)
算一下装了多少条内存条,光是内存的钱就够买一台服务器一年了(⊙o⊙)
2.自行申请公网IP
3.安装系统并配置环境
我认为高端服务器应该配备最好用的面板——宝塔(无广告)
4.DDNS配置(请根据自己的服务器环境进行配置)
我的服务器使用宝塔面板
首先,进入内网宝塔面板。由于现在没有配置公网IP,所以无法访问。
DDNS服务是动态解析。检测到服务器IP变化后,可以自动修改域名解析值,保证域名正常访问,避免很多麻烦。
由于我的域名是在阿里云注册的,所以我通过阿里云DNS的API实现自动DDNS。
类似的功能也有,这里不再赘述。
(1)阿里云设置域名解析
直接进入阿里云云解析控制台,添加域名解析记录。将该值写成自己喜欢的值,这样就可以判断ddns服务是否有效。
(2)安装阿里云SDK(环境,阿里云还提供了其他语言,可以自行查看官方文档)
返回宝塔,连接ssh,输入以下命令检查系统是否安装
从这张图可以看到,我的服务器已经安装了.6.8,所以不需要单独安装。
如果两个命令都报错,请自行安装(可以在宝塔应用商店找到项目管理器,一键安装)
如果没有报错,我们可以直接安装阿里巴巴的SDK,依次执行以下命令:
这几乎和不报告错误一样好。
如果出现以下错误:
请升级pip版本并执行命令:
点3——点
(3)代码实现及配置
好了,现在环境基本安装完毕。来吧,开始编写(复制)DDNS代码:
新建一个空白文件,命名为ddns.py,复制代码:
如果太长你看不懂,这里有一些地方需要你根据个人情况修改文件:
# 建议使用RAM子账户的KEY并添加安全ID = 'your' = 'your'
我想你可以找到这些ヾ(≧▽≦*)o
为了保证信息安全,建议使用子账户总和,并手动修改子账户的权限。
# 设置主域名 = '您的根域名' # 子域名列表参数可以根据实际需要增减 = ['二级域名']
那么你也需要注意这一点。您需要填写您的根域名,例如
那如果我想填写怎么办?填写你的二级域名即可,但不要带上你的根域名!例如,您只需填写一个
需要注意的是,这个动态DDNS不限于一个子域名。如果需要对多个子域名使用动态DDNS,例如and,可以直接填写a和b,二级域名之间用逗号分隔。
例子:
# 设置主域名 = '' # 子域名列表参数可以根据实际需要增减 = ['a,b']# 动态DDNS就是这样配置和使用的。
还有一种:
.('60') # 可选值的范围取决于您的阿里云账号级别。免费版本是600-86400。单位是秒。
这是TTL。打开企业版解析包的有钱人可以调整这个。无需使用,记录很快就会生效。 60是一分钟,600是十分钟。你可以自己调整。
编辑完成后,保存文件,进入ssh,首先测试API是否可以正常调用。输入命令:
#.0(含)及以上版本使用以下/文件特定路径/ddns.py #.0及以下版本使用以下/文件特定路径/ddns.py # # /www/ddns.py
如果返回信息如下提示,则说明配置成功。
★[2022-01-10 00:55:02] ------------------------------------ -------- -------------------------------------- 准备更新现有记录。新IP与原IP相同。 ,无法更新! -------------------------------------------------- --------------------------★[2022-01-10 00:56:02] ---------- - ------------------------------------------------- - --------------准备更新现有记录。更新成功,返回信息为:{"":"xx","":"xx"}-------------------- ---------------- ------------------------------------------------------------------ --
我们进入阿里云云分析页面。如果我们看到域名记录值发生变化,说明API修改成功,DDNS基本配置完成!
(4)添加定时任务自动监控公网IP变化
进入宝塔面板-计划任务,添加shell脚本任务:
脚本内容就是刚才ddns.py的执行命令,例如:/www/ddns.py
根据需要填写执行周期。建议每两分钟执行一次。我选择监控频率为一分钟,这样当公网IP发生变化时,可以缩短停机恢复时间;
我们还可以同时创建多个定时任务,最大程度地监控公网IP变化,保证网站的正常运行。
任务创建完成后,需要手动执行并查看日志,看是否有错误。
恭喜你,你现在已经完成了万里长征的第一步。恭喜您获得动态 DDNS 服务!
5、端口转发实现真正的外网访问
仅拥有公共 IP 地址是行不通的,您不相信吗?您可以尝试使用公网IP地址访问宝塔面板。我确信访问会超时,更不用说建立网站了。
这是因为我们的路由器的设置仍然阻止了外界的端口,导致无法访问我们的服务器。为了解决这个问题,我们需要登录路由器管理页面配置端口转发,将外网用户对服务器的请求转发到内网对应的服务器上,这样外部就可以正常访问我们的服务器了网络。
话不多说,首先访问服务器的管理页面。大多数路由器管理页面的地址是192.168.0.1或192.168.1.1
输入管理员密码即可成功进入后台。如果您忘记密码,请重置路由器配置。
(该设置的位置和名称根据路由器品牌和型号的不同而不同,请区分)
找到转发规则,虚拟服务器,添加端口转发规则
我们直接添加新条目吧,首先尝试将入口转发到宝塔面板
注:服务端口号可以随意填写。路由器会将服务端口请求转发到内部端口。外网用户可以通过公网IP+服务端口访问内部端口,但是80、443、8080等端口是没办法的
例如:宝塔面板默认端口为8888,如果您的服务端口号和内部端口号都填写8888,那么您可以直接输入公网IP+8888访问宝塔面板。
如果你的服务端口填写的是1234,那么如果你输入公网IP+8888,访问就会超时。只有输入公网IP+1234才能访问宝塔面板~
(相当于奇怪的内网渗透)
填写宝塔面板内网ip的ip地址并保存。
现在尝试通过公网IP+服务端口访问宝塔面板入口。如果能够成功访问则说明配置成功。
如果上面宝塔面板的端口转发配置成功,那么我们就需要对网站的端口进行转发,这样我们搭建的网站就可以通过指定的端口被外网访问到。
登录宝塔面板并创建一个网站。 URL最好配置了DDNS,方便检查端口转发是否成功。
创建完成后,点击站点设置,手动添加域名
由于80端口和443端口已被运营商屏蔽,所以我们需要为网站分配其他端口。如上图,我给我的网站分配了5555端口
实现:添加域名和端口。您可以填写任何您想要的内容。 11451也可以,就是有点臭。
添加完成后,一定要清除防火墙。
然后,进入路由器管理页面配置端口转发:
只需填写宝塔面板内网地址的IP地址即可
然后,我们需要验证端口转发是否正常工作:
(1)公网ip+服务端口
(2)DDNS的URL+服务端口已配置(先验证一下)
例如,我刚刚使用5555端口创建了一个网站。我会访问<公网IP:5555>或<配置的DDNS URL:5555>来检查外网是否可以正常访问。多用几台设备检查一下(•̀ ω•́ )✧
如下图,如果访问不超时,则表示访问成功。
至此,端口转发已经配置完毕。
PS 当我写这篇文章时,我有了一个想法。是否可以将80、443以外的业务端口转发到内网80端口?比如外网访问1111端口,可以直接转发到内网80端口。虽然运营商在外网屏蔽了80和443,但在内网却没有!这节省了您更改网站运行端口的步骤。但似乎有一个错误:如果我运行多个网站怎么办?都是转发到80端口吗?需要验证。有兴趣的人都可以尝试一下。
6、解决访问网站时域名后面加端口号的问题
(去掉丑陋的端口号,哇,这个破端口真烦人)
运营商把精彩的80和443端口都封掉了,只剩下一堆奇怪的端口。我们在访问域名的时候要加一点尾巴。这是非常令人厌恶的。如果是您使用的网站,您可以理解。但我却通过他赚钱了!当搜索引擎看到如此陌生的域名时,就懒得去抓取了。这不是游戏结束了吗?您是否认为用户输入域名即可访问的网站现在必须添加端口很烦人?另外,中文的 : 和英文的 : (冒号)超级难区分。用户应该做什么?不用再玩了!所以,一个合格的站长是不能容忍这种问题的存在的。既然已经到了这一步,就让暴风雨来得更猛烈吧~
注:本文将提供注册域名访问网站时在域名后添加端口号的步骤。如果您的域名未注册,请滚动到本文末尾查看另一篇提供未注册域名解决方案的文章。文章,感谢您的支持~
既然我们的域名已经被注册了,此时我们有两个选择:第一个是使用第三方CDN来帮我们去掉端口;第二个是使用第三方CDN来帮助我们移除端口。第二种是使用隐式url解析来帮助我们隐藏原始的访问端口。域名
但在开始之前,还有一个不可忽视的步骤:我们需要一个中转域名
说明:由于我们的IP是动态的,就像域名解析一样,CDN的回源配置不能要求我们手动更改回源IP。既然我们有了DDNS,那么CDN也有这样的功能吗?监控IP变化并自动修改返回IP?我不知道大厂有没有,小厂肯定没有。那么这是一个问题吗? ,别忘了有些CDN还支持域名回源!在源服务器和源服务器之间,我们又添加了一台。这个的作用是和DDNS配合。如上所述,只需添加端口号即可正常访问网站。不过,我们当前的任务是去掉域名和端口号。如果您可以正常访问它,您将承担该角色。假设:1234可以正常返回原站点,那么我们设置了一个CDN,返回目标为:1234。那么只要我们访问,是不是可以直接访问源服务器呢?无需再添加端口! ! !
举个例子:我想访问源站,我们添加一个中转域名。假设配置DDNS后,添加访问源站的服务端口,然后设置cdn,返回源站为:服务端口。这样,通过 就可以访问源码站点了~~~
所以,不要使用官方域名来配置DDNS。如果这样做的话,请更改域名~~~
只要明白原理,配置并不难
腾讯云配置示例
阿里云配置示例
另外,我们可以与第三方内网共享DDNS,使用腾讯云的热备份原站回源方式。当一个源站回源失败时,我们可以通过另一个源站回源,以备不时之需。假设DDNS坏了,有第三方内网穿透支持,那就万事大吉了。
找到适合自己的CDN,如图配置,然后去Cloud DNS解析CDN提供的cname即可完美访问!去掉了端口的小尾巴,看起来真的很舒服!如果你有注册域名,也可以使用大陆CDN,速度一点也不会差。
第二种是不推荐的隐式url解析方式:
正如前面提到的:
隐式URL的缺点(流量网站的大忌!)
隐式 URL 存在一个很大、很大、甚至致命的问题。首先,隐式URL解析是基于实现的,这对于搜索引擎蜘蛛来说非常不友好。注重SEO的兄弟一定不要用。其次,在浏览器中显示的域名始终是隐藏URL记录的解析值。无论你如何点击内部链接,浏览器都会显示该域名,这会让用户感到困惑。可以这样理解:我创建了一个域名为1.0的博客,并且使用了隐式url解析。我打开一篇文章,发现url还是原来的,这让我大吃一惊。我登录后端并输入 URL /wp-admin(刻在 DNA 中的链接)。我发现页面跳转正常,但是浏览器显示的URL还是原来的? ? ?如果有用户看到的话,肯定会认为这里闹鬼。因此,如果蜘蛛来爬行您的网站并发现一个域名指向一堆不同的页面,您希望它怎么想?它还会爬行吗?
但是,如果网站是供您自己使用或者是没有那么多子链接的静态网页,则隐式 URL 是非常理想的。我们不要忘记它的优点:它可以直接追溯到源头!无需通过第三方CDN分发
我没钱,就以阿里云为例:
也很简单,只需注册域名即可!不然的话就会是这样的:
当然也可以使用显式url,可以理解为301重定向,不过重定向是在DNS服务器上完成的~当然域名会变~
访问我们的网站,完美返源,无端口!噢耶!自建服务器正式上线!
我仍然必须提醒您,因为公共网络IP会改变,例如SSH或面板登录需要IP,因此您可能必须依靠渗透来实施这些服务!当然,也可以通过绑定域名来访问宝塔面板。在下面拖动穿透教程以观看〜
本教程到此结束!感谢您阅读本文,希望本文能够激发您的灵感!最初,我想到了为什么我会遇到这么多麻烦。我不妨购买云服务器来节省我的担忧并享受此过程!ヾ(≧▽≦*)o
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。