使用 CloudFlare CDN 拯救被墙的 IP 和最简单解决办法

大概是6月4号左右,发现 IP 被墙,后使用 CloudFlare CDN 暂时解决了 80 端口的访问问题,目前 FTP 和 SSH 等非 80 端口 还存在问题

我的 VPS 是 Bandwagon Host
从检测结果来看,在国内是无法访问了,国外一切正常,因为我有多台 VPS 平常是交替使用和 未雨绸缪,是可以互相检测的

然后查询了一些资料,我记得之前也有发生过这种情况,我是直接选择了 更换机房,但是在控制面版中,更换操作一直报错,想来应该是这种规则:当某个IP 在全球某块区域被Ban 此时无法进行更换。联系了 Bandwagon Host ,提交了工单,蛤蛤蛤,顺便强化了 我那蹩脚的英语

Bandwagon 的工作人员还是相当Nice的,问题得到确认,
两个建议:
1 直接付费更换IP,估计需要一个星期
2 等GFW 自动解禁
可我认为 GFW 很难自动解禁啊

和 群内的大佬讲了这个事情,给了我一个建议:
使用 CloudFlare CDN 然后 安装 v2ray,配置 v2ray,将端口设置为 80

我查阅到了一个不错的教程,在另外一台VPS上 成功使用了

拯救被墙的IP,CDN + v2ray,安全的科学上网方法 | sprov
https://blog.sprov.xyz/2019/03/11/cdn-v2ray-safe-proxy/

我认为这种设置的意义在于:
首先 CloudFlare CDN 是一个很大的管道,作用是一个中间件,请求和流量走了大管道,再各回各家,这个管道太大,大到 GFW 也不敢随便封禁,完成这个设置后,网页已经能够正常访问,
然后 80 端口不能占用,也就是说 这是一个纯粹的代理工具,像我部署了服务的,那就比较尴尬了。配置 v2ray的端口为 80,这实际上是给 代理工具 一个流量出入口

那么,接下来问题来了:
SSH连接 和 FTP问题,因为使用了 CDN 目前 80端口可以正常使用了
但是像22 或者其他端口,都是有问题的,

解决办法也比较简单,前提是 本地环境已经能连接外网 ,然后设置代理即可

这个时候 我们在工具 如 Xshell 内 设置选项卡工具,
就可以了

可是 这还是没有彻底解决问题啊

是的,我最后直接花钱买了个新的 年费 VPS,几十百来刀吧,能用钱解决的问题,就尽量用钱解决。后期重新配置下环境,把文章搬过去得了

单例、多例与线程安全问题

单例与多例问题是指,当多个用户访问某个类时,系统是为每个用户创建一个该类实例,还是整个系统无论多少用户访问,只创建一个该类实例。

线程安全问题是指,多个用户同时在访问同一个程序时,其对于某一数据的修改,会不会影响到其他用户中的该数据。若无影响,则是线程安全的;若有可能影响,则是线程不安全的。

现在对HttpServlet、HttpSession、Struts2中的Action、Hibernate中的SessionFactory与Session,进行总结。

(1)HttpServlet
单例。即无论多少用户访问同一个业务,如LoginServlet,Web容器只会创建一个该Servlet实例。而该实例是允许多用户访问的。
若Servlet中包含成员变量,则每个用户对于成员变量的修改,均会影响到其他用户所看到的该变量的值,所以这时是线程不安全的。若不包含成员变量,则是线程安全的。

(2)HttpSession
多例。Web容器会为每个用户开辟一个Session,多个用户会有多个Session。而每个用户只能访问自己的Session。所以,对于Session来说,就不存在并发访问的情况,也就不存在线程安全的问题了。所以可以说是线程安全的。

(3)Struts2的Action
多例。对于同一个业务,例如LoginAction,系统会为每一个用户创建一个LoginAction的实例,并使其成员变量username与password接收用户提交的数据。同一用户只能访问自己的Action。所以,对于Action来说,就不存在并发访问的情况,也就不存在线程安全的问题了。所以可以说是线程安全的。

(4)Hibernate的SessionFactory
单例。无论多少用户访问该项目,系统只会创建一个SessionFactory对象,即这个对象是可以被所有用户访问的。
SessionFactory实现类中所包含的成员变量基本都是final常量,即任何用户均不能修改。所以,也就不存在用户的修改对其他用户的影响问题了,所以是线程安全的。

(5)Hibernate的Session
多例。系统会为每个用户创建一个Session。
Session的实现类中定义了很多的非final成员变量,一个事务对成员变量所做的修改,会影响到另一个事务对同一数据的访问结果,所以是线程不安全的。

简短的小结还有以后记录方向

其实之前也有一个服务器后来情况的话,这几天访问速度异常的慢。索性就重新换了机房然后用WordPress算了,有的时候还是要善用工具,能极大的提升效率,这个比我之前的真的是好用多了。

关于说到为什么想到要打算使用博客呢,这个第一是学习的内容是面向全栈开发,学习的过程当中有实践的必要,就当是摸石头过河了,总归是要迈出这一步的。可能也会有另外一个站点,专门就是放自己编译完成的文件,荒蛮野人一样的慢慢美化。第二呢,个人域名,博客这样的东西就好像是自己的一个小空间,也能记录分享些自己的生活经历,跟朋友圈啊,微博这样的是完全不同的,有归属感。第三的话,马上就要就业了,单从工作的角度说,博客或者git对于开发者都是标配了,一路走过来的坑坑洼洼,也可以写下来警示来者。

首先要写的东西,就是先总结下自己搭建的过程,我想跟我一样经验上半生不熟的人还很多,而网络上的一些教程,大都是不全的,有的教程写的很好,但是存在了局限性,比如说在购买域名后设置Name Server,使用腾讯的DNSPOO这一段,我的域名提供商(Go Daddy)设置页面已经不同与之前的教程了,还有WDCP面板安装与设置,以及WordPress安装,xshell,xftp的使用,有一些细节上的东西,需要更新。

然后的话,就当是笔记如今天又踩了什么坑啊,如何解决问题,心得体会。

慢慢长大后就发现了,其实大家追求的不过都是解决问题的能力罢了,解决问题首先能给自己带来很愉快的心理体验,然后就对应自己的level了,至于当时的心境嘛,确实是煎熬。

去日苦多,珍惜光阴