使用 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,几十百来刀吧,能用钱解决的问题,就尽量用钱解决。后期重新配置下环境,把文章搬过去得了

JSP中实用知识总结(三)

jsp内根据条件,使得某些行不可勾选,也不可全选,反选

当然不是简单的勾选和全选、反选。那么小白的场景辣!

详述:
我们有一个表格,表格所有列数据均是 jQuery.post 请求Action 方法,传递参数,回传来的data值,调用回调函数,对data进行循环遍历,填充表格。
表格中每一条行数据,均是一条申请信息,我们的业务是可以选中多条申请,进入批量审批流程,因为某些原因,我们需要加条件,比如当该申请的审批人,为第一顺序审批人时,则不能使用批量审批,即 checkbook 无法勾选,同样的,表头的全选和全不选,均不能对该条数据生效,当此条审批检测为非第二顺序审批人时,任何勾选功能均能正常使用

如何解决:
需要设置条件判断哪些数据不可选,重写选中事件,以及全选、取消全选事件

  • 拆分步骤
    • 根据回调函数 判断 data 某个值,判断是否进行过申请,即当前是否为第一审批人
    • 第一审批人情况下,设置 勾选默认为 否
    • 重写selectAll 方法
    • 自定义两个 class 简称 duoxuan,buduoxuan,为实际情况提供支撑
    • 展示效果应考虑多种分辨率下或多种浏览器下兼容性
if(status=='wait'){						 
        $("#shenpi").show();
	$("#duoxuan").show();
        // 判断data[i]中isPay的值,为“是”和“否”,则已经走完了第一次审批,可以进行批量审批
	// isPay 的值为“Null”  无法勾选, 无法进行批量审批
	if(data[i].isPay == "是" || data[i].isPay == "否"){
		html+='<td><input type="checkbox" name="bike" value="'+data[i].userid+'-'+data[i].afs_id+'-'+data[i].wfn_id+'" class="buduoxuan" /></td>';
	}else{
        	html+='<td><input type="checkbox" name="bike"   value="'+data[i].userid+'-'+data[i].afs_id+'-'+data[i].wfn_id+'" class="duoxuan" DISABLED/></td>';
	};
这是在回调函数内,对 data 集合中 数据进行循环,先判断 status 值,进入一级界面,展示审批为等待的,再判断 isPay 值,进入二级界面,从而展示给用户,是否能对某条行数据进行勾选
<td style="width:20px;"><input type="checkbox" onclick="selectAll_1()" class="duoxuan" id="duoxuan" /></td>

/*==========省略很多无关代码=========*/

function selectAll_1(){
		var dx = document.getElementById("duoxuan");
		var items = document.getElementsByClassName("buduoxuan");
		if(dx.checked == false){
			for(var i=0;i<items.length;i++){
				items[i].checked=false;
			}
		}else{
			for(var i=0;i<items.length;i++){
				items[i].checked=true;
			}
		}
	}
 selectAll_1()事件,支撑全选和全不选状态
单选和全选效果
完整的 JSP 代码会上传到 GITHUB

JSP中实用知识总结(二)

前言: 这些总结来自公司上班中,遇到的一些基础的HTML, CSS,JAVASTRAP,和自定义的样式以及BOOTSTRAP的知识,具有代表性会一个月进行总结一次前端,到后面估计主要集中在SQL优化和业务

jsp的触发按钮事件显示窗口,窗口内为图像

当然不是简单的触发事件,显示窗口。那么小白的场景辣!

详述: 我们有一个表格,表格所有列数据均是 jQuery.post 请求Action 方法,传递参数,回传来的data值,调用回调函数,对data进行循环遍历,填充表格。 现有两列列内容为图片,实际场景为,对某个对象的图片描述,比如为报修系统,那么在系统内存储了报修前现场环境照片,完成维修后的环境照片,如果报修前环境照片为两张,那么需要两个按钮事件,图片一、图片二分别打开展示图片信息,如果完成报修后环境图片为三张,那么就是三个能触发的按钮

如何解决: […] Continue Reading…

JSP中实用知识总结(一)

前言: 这些总结来自公司上班中,遇到的一些基础的HTML, CSS,JAVASTRAP,和自定义的样式以及BOOTSTRAP的知识,具有代表性会一个月进行总结一次前端,到后面估计主要集中在SQL优化和业务

jsp的触发按钮事件显示窗口

当然不是简单的触发事件,显示窗口。那么小白的场景辣!

详述: 我们有一个表格,表格所有列数据均是 jQuery.post 请求Action 方法,传递参数,回传来的data值,调用回调函数,对data进行循环遍历,填充表格。问题出现在,当某一列数据,因为内容是文本,存储字符信息很多,已经超过了表格中分配给该行的宽度,设置样式,将剩余超过的长度用 ”…“ 表示,且有字体和背景颜色信息,实际上一列的每条数据都是公告信息,我们需要具体的进行查看完整的公告信息

如何解决: 我们将那一列中每一行,的公告缩略信息,使其成为一个点击事件,而不是单纯的文字,点击即可弹出窗口,展示完整公告信息,且保留之前的公告格式,如颜色,字体等

该列中行信息的传递,也就是公告信息,实际上是data数组中的值,当点击此信息时传递信息给function函数,再将信息传递给函数调用出的窗口公告信息的格式问题,即加码 […] Continue Reading…