分类目录归档:经验集

NAT64基本原理概述,它有哪些局限性?

NAT(NetworkAddress Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址,但现在又想和因特网上的主机通信时,可使用NAT方法。定义在RFC 1631中。NAT的最初目的与CIDR相似,也是为了减缓可用IP地址空间的耗尽速度,实现方式是用少量的公有IP地址来表示大量的私有IP地址。随着时间的推移,人们发现NAT对于网络迁移、网络融合、服务器负载共享等应用来说都非常有用。

IPv4最初创建于20世纪70年代,早于目前的Internet,早于万维网,早于时时在线无处不在的宽带服务,早于智能手机。创建之初,IPv4所拥有的43亿地址对于将要支持的微不足道的试验性TCP/IP网络来说极其富裕,但目前连接Internet的人数已经超过了32亿,而且还有大量其他设备连接在Internet上。

无论未来的IoT会发展到何种规模,目前的43亿地址都已经远远不能满足需求了。从容量角度来看,我们在20世纪90年代中期就已经耗尽了IPv4地址。我们只是通过很多手段将扩展的IPv4可用地址用于远远超出IPv4地址容量的物联网。

所以说IPv6不必可少,但是在过渡到IPv6网络之前还有许多困难。

1、Internet缺乏集中式管理,是大量独立管理的自治系统的联盟,因而没有办法强制或协调大家全部都从IPv4切换到IPv6。

2、网络完全支持IPv6需要大量财力、人力和技术。

3、IPv6与IPv4不后向兼容。IPv6最初诞生在20世纪90年代,当时的设计人员认为运营商肯定会积极部署IPv6,几乎没有人想到IPv6的部署会面临诸多阻力。

NAT64是一种有状态的网络地址与协议转换技术,一般只支持通过IPv6网络侧用户发起连接访问IPv4侧网络资源。但NAT64也支持通过手工配置静态映射关系,实现IPv4网络主动发起连接访问IPv6网络。

虽然现在的绝大多数设备都支持IPv6,但依然有很多仅支持IPv4的老设备。需要通过某种方式将这些设备通过IPv6网络互连起来。NAT64可实现TCP、UDP、ICMP协议下的IPv6与IPv4网络地址和协议转换。

而且由于IPv6不兼容IPv4,因此就得有必要的迁移机制,比如双栈、隧道和转换。

1、双栈接口:保持IPv4与IPv6共存的最简单方式就是给接口配置两种协议。使用何种版本的IP协议取决于从设备接收到的数据包版本或者查询设备地址时由DNS返回的地址类型。虽然双栈是从IPv4到IPv6的期望迁移手段,但前提是必须在IPv4地址耗尽之前完成迁移过程。

2、隧道:隧道解决的也是共存问题。隧道允许一种协议版本的设备或站点穿越另一种协议版本的网段(包括Internet),因而两个IPv4设备或站点之间可以通过IPv6网络交换IPv4数据包,两个IPv6设备或站点之间也可以通过IPv4网络交换IPv6数据包。

3、转换:转换技术是将一种协议版本的数据包报头更改为另一种协议版本的数据包报头,因而解决了IPv4设备与IPv6设备之间的互操作问题。

简单的NAT64设置可能是一个设备的两个接口分别连接到IPv4网络与IPv6网络的网关。IPv6网络的流量经由网关路由,其对两个网络之间传送的分组进行所有必要的翻译。但是,这种翻译并不是对称的,因为IPv6地址空间比IPv4地址空间大得多,因此就不可能进行一对一的地址映射。

通常来说,NAT64被设计为在IPv6主机发起通信时使用。但也存在一些机制允许反向场景,例如静态地址映射。

不是每种类型的资源都能用NAT64访问。嵌入IPv4字面地址的协议(例如SIP和SDP、FTP、WebSocket、Skype、MSN等)都不能得到支持。对于SIP和FTP来说,使用应用层网关(ALG)技术可以解决问题,到现在为止,NAT64并不是一个很好的解决方案,目前确定的NAT64局限性如下:

1、在没有静态地址映射表项的情况下,不允许IPv4设备向IPv6设备发起会话请求;

2、软件对NAT64的支持程度有限;

3、与其他所有转换器一样,也不支持IP多播;

4、很多应用都不支持。

使用高防服务器或者高防CDN后为什么还会出现源站IP被打?

今年 DDOS 攻击特别多,特别是 CC,DDOS 攻击造成服务器崩溃,导致用户无法访问。对于站长只能被动防御,使用高防 CDN 或者高防服务器,成本相当高。有时候就算接入了高防服务后,源站 IP 还是被打,网站打不开。

在使用 DDoS 高防服务后,如果还存在攻击绕过高防直接攻击源站 IP 的情况,那么就是源站IP暴露了,需要更换源站 IP。在更换源站 IP 之前,要确认已消除所有可能暴露源站 IP 的因素。

1、自己检查源站服务器中是否存在木马、后门之类的安全隐患,比如是不是安装随意下载的主题和插件。

2、源站 IP 是否存在一些其他的服务没有配置高防 IP 服务,比如邮件服务器的 MX 记录、bbs记录等除 Web 以外的记录;检查 DNS 解析的全部内容,看是否有记录解析到源站IP。

3、是否存在网站源码信息泄露,要使用 WordPress、Drupl等官方放出的程序,不要到下载站下载。

4、是否存在某些恶意扫描情况。您可通过在源站上只允许高防回源 IP 来防护;

5、检查在 CDN 是否有搜索引擎回源,通过 Censys  这个工具可以轻易查到源站 IP。

如果源站 IP 被打,建议先更换源站IP,然后再接入高防防护,一般源站暴露了,接入高防就会出现攻击绕过高防直接攻击源站的情况,然后就造成了源站被打,高防无效的情况。

发现一个记录笔记的工具baklib,用起来真心爽

今天介绍的这款工具真是相见恨晚。所以用了一周后紧急推荐给大家,目的是把好东西尽早的分享出来让大家早用到。

首先声明,这不是一个广告,也未收取广告费。是纯推荐,虽然对方有收费服务,但对于个人用户,免费版本已经很好用了。收费版本只是供有更多需求的用户设立的,比如需要更大空间,比如需要绑定独立域名等。如果你要购买他们的收费服务,你就直接咨询对方客服,不要咨询小编。

其他工具的痛点

首先小编说说为何觉得它好吧。这就要从遇到的痛点说起。

记录学习笔记是小编一直的一个习惯。小编也推荐大家养成记录笔记的习惯。有几个笔记软件是小编曾经用过的,

1、有道云笔记:经常搜索不到东西,有个笔记明显记在里面了,而且关键词很明显的写着里面,搜索就是提示没有。经常这样。因此如果放大量内容到里面就比较痛苦。多内容存入而且好查找,只有注册多个账号,但反复切换经常要输入验证码实在太麻烦。

2、onenote:单纯电脑上使用可以说是非常非常好,目录结构也非常清晰明了,笔记保存在电脑上也很好,但是云端存储难用,目的是为了让手机里面也能看笔记。因为同步经常出错。即使后来注册了个学校邮箱的1T账户的那种,号称服务器是国内的,但是同步依然很慢而且经常同步出错。导致我想手机上查看一下新的笔记很难。但小编经常要在手机上查看笔记,用了一段时间onenote,放弃了。

3、印象笔记:免费用户每月只有60M流量,意思是完全无法贴图片或附件,只能是单纯的文字,用来做学习型笔记不是很好,因为学习型笔记经常会贴图上去,有时候还会贴个WORD或者Excel或者ppt或者pdf附件上去。另外免费版一个账号只能使用两台设备。算上手机,2台以上设备的人很多啊。

接下来说说今天的主角

网站是:www.baklib.com,乍一看网站很难记忆。但是lib就是library图书馆、知识库的意思。所以实际上只是bak这个名字记住就可以了。当然其实不用记名字的。收藏下网站就行了。

它虽然只有网站,但是打开速度,编辑速度非常非常快。比一般的网站快许多。给人顺滑的感觉。由于平时打开电脑总是要开浏览器的,所以把网站收藏到收藏夹点击就打开了。而小编每次突然要查个东西打开有道云笔记,开软件需要10秒,别看只有10秒,就是难等啊。

首次打开本网站,自己用手机号注册一下就行了。然后进去后建议大家下图选择。

然后设置个名称和域名。要记住这只是你的一个笔记本。你可以建立很多个笔记本,每个笔记本支持最大1G空间。别小看1G。比如用来记录统计学习,你能把1G用文字和图片填满,你已经是大神了。你可以不重新注册新账户的情况下,新建多个笔记本,这里它称之为站点。是因为你可以设置整个站点是完全公开,还是完全私有,还是凭打开密码可以外人查看,三种类型。

独有的公开私有设置

如果你是一个老师,你可以搞完全分享的类型,学生们通过网址就可以看到你整理的笔记,不管你是否使用这个功能,这绝对是这个平台很大的优势。如果你是个人,我建议你设置为凭密码访问,这样不完全公开,但可以让很好的好友查看你的笔记,另外一方面自己也可以在手机上或电脑上纯阅读笔记的时候查看,显示效果会更好。如果你完全不分享,那就设置为私有。

看下图,你是可以建立很多个笔记本的,每个笔记本1G空间是独立的。而且都是免费的。这样你可以把每个笔记本作为一个专题,比如学英语的、学统计的、学电脑的、学PS的……

看下面是关于笔记本(站点)权限的设置:

下图是密码访问的界面。比如上面我设置的域名是mylib.baklib.com打开后输入你上面设置的密码就可以查看你的笔记了。密码你自己可以随时修改。密码这个东西不必设置的太复杂,毕竟只是学习笔记而已,机密级别远不如银行卡密码、邮箱密码之类的。

每个笔记本都可以备份,甚至备份到自己电脑上来。当然其实必要性不是太大。作为一个产品数据安全是首要地位的。备份只是作为给用户的一个定心丸使用,有些人可能会担心万一哪天这个平台搞不下去了要倒闭,我的资料怎么办。我相信哪怕真有哪一天,笔记可以下载到本地,平台会提供某种方法展现或导入到其他平台。

笔记方面的使用方法

下面是记录笔记方面的使用方法:

下面内容界面就是组织你的笔记目录结构和撰写笔记的地方。界面上很多按钮,你可以自己尝试,界面可以隐藏左侧栏,可以全屏,十分友好。

文件夹可以支持多级目录。而且可以随意拖放改变上下位置。笔记文章也支持拖动改变前后顺序。

由于大部分时间你可能是在撰写笔记。所以撰写编辑器就是一个很重要的部分。他采用的是块级结构,向下堆叠的方式。十分简洁。可以直接复制粘贴图片或截图到文章中。可以插入附件,比如把对于练习数据Excel直接上传到文章中。这样时间长了复习起来就很方便,不用到电脑中去找练习数据了。另外一个好处是支持markdown,用过的都知道好。

如何记录笔记的经验

许多人不记录笔记,这样学习效率100%是不高的。但是大家别钻牛角尖,因为天才除外。还有些人记录笔记就是把别人的东西单纯的摘抄过来或全篇复制到自己的笔记本中。这种记录方法不是很推荐。我想说的是,你可以这样做,但是一定要把这种完全摘抄的笔记记录到一个单独的笔记本或目录中。不要把它和自己撰写总结的笔记混杂在一起。只有你自己总结撰写的笔记才是你自己的知识,总结并撰写出来这个过程就是你的记忆的过程。所以我强烈建议大部分笔记本应该是你自己完全撰写出来的。试试吧,那样的学习效果一定会很棒的。

切换不同笔记本(站点)

下图界面左上方的切换按钮可以切换到不同的笔记本(站点)

今天的资源就是个网站,网址已经公开给大家了。这里再重复一下。剩下的给你自己去摸索吧。网址再重复交代一下是:www.baklib.com。

WordPress 越用越卡怎么办?CentOS 系统WordPress开启Redis缓存加速教程

WordPress越用越卡怎么办?CentOS 7系统WordPress开启Redis缓存加速教程。Redis是用来做什么的?Redis是PHP的一个拓展,主要目的是用来缓存MySQL的查询结果,来减少查询次数用的。对于小白来说,你只需要知道是一种缓存的功能,可以提高网站的运行速度,以应对WordPress越用越卡的问题。

如何安装Redis拓展?

如果你用的宝塔环境,那么可以直接在宝塔界面的软件商店中找到Redis服务:

点击安装,并启用即可。

注意:如果你环境配置的是CentOS 7.0版本,那么只有PHP 5.X 的版本能够支持Reids拓展。推荐大家配置的是CentOS 7.3的版本。如果你用的是我推荐的一套,那么就不必过分担心。PHP可以直接选择 7.0 – 7.2 的版本。

补充说明

如果你并非宝塔环境,可以直接使用命令安装Redis拓展。通过Putty或者Xshell打开命令界面执行如下代码即可:

apt-get install redis

安装对应的 WordPress 插件

你只需要在 WordPress 的插件中寻找一款 Redis Object Cache 的插件,安装并启用即可。具体操作方法如下:

WP后台 > 插件 > 安装插件 > 搜索 “Redis Object Cache” > 安装并启用

注意:部分模板启用 Redis会有冲突。建议详细查看模板说明。或者直接咨询模板作者,以确定启用 Redis 是否会影响你的模板主题。

插件开启 Redis

进入插件的设置界面(直接在插件列表中就可以找到 “settings”选项)

点击 “Enable Object Cache” 按钮即可。

以上,就完成了WordPress 安装+启用 Redis 拓展加速的完整过程。

SiteGround外贸主机推荐

SiteGround搞18周年庆,产品包括云虚拟主机、WordPress主机、WooCommerce主机、云服务器。

计划 促销价格 原价格
Startup $3.99/月 $14.99/月
GrowBig $6.69/月 $24.99/月
GoGeek $10.69/月 $39.99/月

如何让没有外网IP的云主机服务器拥有外网访问能力

云上企业集群环境,不可能为所有云主机都配备外网IP,所以会有一部分机器没有外网能力。然而不是所有的云厂商都提供内网的yum服务,当需要安装软件的时候,会比较麻烦。如下图所示,只有B机器能访问外网。

此时,若我们想要A和C都能访问外网,要怎么办呢?想想家庭网络环境,一条光纤,一个外网IP,一个路由器,家里所有的电脑、手机都能上网了。所以这里我们缺少一个路由器。现在我们让B机器来兼职下路由器。

linux架设简易路由器访问外网

直接在B机器上运行下面的脚本:

#!/bin/bash
#Auth:dige
#Blog:https://hqidi.com
#Time:2018-10-2  09:40:47
#Name:route.sh
#Version:V1.0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.13.110.198 -o eth0 -j SNAT --to-source 10.13.185.186
iptables -t nat -A POSTROUTING -s 10.13.80.128 -o eth0 -j SNAT --to-source 10.13.185.186

脚本解析:
echo 1 > /proc/sys/net/ipv4/ip_forward
这条命令是在打开linux系统的路由转发功能,这是临时生效的(系统重启后失效)若要永久生效,编辑/etc/sysctl.conf文件,添加一行 net.ipv4.ip_forward=1 (centos6默认有此配置行,不过值是0,得修改为1)

iptables -t nat -A POSTROUTING -s 10.13.110.198 -o eth0 -j SNAT --to-source 10.13.185.186

拆解下这条长长的命令:
iptables -t nat :对iptables的nat表进行操作,这个表是用来做网络地址转换的。
-A POSTROUTING :在POSTROUTING链添加一条规则。
-s 10.13.110.198 :当来源IP是10.13.110.198的时候。
-o eth0 :把数据从eth0转发出去。
-j SNAT :做SNAT操作。
–to-source 10.13.185.186 :把原本是从10.13.110.198发出来的数据包的源地址修改为10.13.185.186。
整合起来就是这样的:
当A机器访问internet的数据包到达B机器的时候,B机器上的iptables把数据包从eth0向外转发,并把数据包的源地址修改为10.13.185.186 (正常情况下,应修改为B机器的外网IP的,现在云服务商都没有直接把外网ip绑定在centos系统内,就是说B机器外面还有一层NAT)
若觉得太复杂,我们可以改成一个比较简单的脚本:

#!/bin/bash
#Auth:dige
#Blog:https://hqidi.com
#Time:2018-10-2 09:47:47
#Name:route.sh
#Version:V2.0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这个脚本的转发性能没有上面那个高,但简单,不用管什么外网IP,源地址,目的地址。
执行脚本:
./route.sh
然后把A和C机器的默认路由设为B机器的内网IP就行了,刚开始A和C机器吵着“我要上网,我要上网”上不了,当你把默认路由设为B机器后,相当于你答复A和C机器说,你们要上网的话去找B机器,他知道路。在A和C机器上执行:
route add default gw 10.13.185.186 eth0
此时,A和C机器都能连通互联网了。图中最上面的绿色箭头已通。但是,外网用户若要访问C机器,要怎么办呢?若C机器提供web服务,那好说,直接在B机器上装nginx做反向代理,若想从外网直接ssh登录C机器呢,现在我们解决图中最下面的蓝色箭头。
只需要在B机器上操作:

iptables -t nat -A PREROUTING -d 106.115.15.86 -p tcp --dport 22128 -j DNAT --to-destination 10.13.80.128:22

当有请求访问外网的22128端口的时候,把请求转发到内网10.13.80.128的22端口上。此时图中最右边的用户访问C机器应该是 10.13.80.128 加端口 22128的形式访问。

采购云服务商NAT网关访问外网

古语有云:万事加钱可及
刚刚我们自己做了个路由器,很折腾,下面讲简单的方法,买一个路由器

云服务商专门提供了一个产品“NAT网关”来实现我们上面的需求。
阿里云NAT 网关 :https://help.aliyun.com/product/44413.html
腾讯云NAT 网关 :https://cloud.tencent.com/product/nat
UCloud优刻得NAT网关 :https://console.ucloud.cn/vpc/natgw
把原本绑定在B机器上的EIP解绑,然后绑定到NAT网关上。
出外网模式选择白名单模式,然后添加所有没外网IP的机器:

这样,第一张图中的绿色箭头就通了。
配置下端口转发,用以实现外网ssh连接:

这样,第二张图中的蓝色箭头就通了。

转载自笛声