如何利用花生壳建立云服务器(VPS)防火墙

firewall

前言

随着云服务器(VPS)的流行,很多小伙伴都建立起自己的博客或梯子服务器。但安全问题是一个不容忽视的问题,要不然就很容易成为黑客们的“肉鸡”。一般的安全处理方法:设置强密码、更改默认服务端口号、使用密钥登陆……

今天介绍的是基于iptables防火墙。利用系统iptables建立起防火墙规则,普通用户只允许网站(80、443端口)的访问,iptables根据IP来识别管理员,对管理员则是全部端口开放。

但国内的运营商绝大部分分配的都是动态公网IP,如何保证我们在公网IP发生变化后,iptables依旧能把我们最新的公网IP进行更新呢?
这时候我们可以利用花生壳动态域名解析实现。
脚本通过crond定时刷新管理员的花生壳域名,从而更新iptables规则中管理员的白名单IP。
可以先看看拓扑图:
ddns-firewall-topology

一键部署脚本

开始部署

1、花生壳:注册 -> 下载 -> 安装 -> 启用客户端。传送门:www.oray.com
1、下载、解压,得到init_firewall.sh脚本
2、使用root权限执行

sh ./init_firewall.sh

3、输入你的花生壳域名(千万不要输错),然后一切就完成了。服务器只会开放80和443端口,其他所有端口只针对花生壳域名当前的IP开放。
下面我们解释一下脚本做了些什么事情。

继续阅读

【转】为什么很多网站的静态资源会使用独立的域名?

u=4074891242,748395977&fm=21&gp=0

用一个独立的域名有以下几个优点:

1、避免域名污染。 当浏览器向服务器请求一个静态资源时,会先发送同域名下的 cookie,服务器对于这些 cookie 不会做任何处理。因此它们只是在毫无意义的消耗带宽。所以你应该确保对于静态内容的请求是无coockie的请求。
2、动静分离更有利于CDN
3、HTTP对同一个域名的同时下载线程数是有限的,只是为了优化下载速度,防止一个域名下太多下载线程,每个浏览器的限制不同
4、方便复用,放在另一个服务器上,可以方便全局内其他产品的使用,比如说taobao.com的js文件可以给tmall.com使用
5、基于第四点,还有利于客户端的缓存(请求同一个文件,无需重复下载)

Logitech G900 无线双模鼠标简单开箱

19

第一次接触罗技鼠标是10多年前了,还记得当年25元一个罗技滚轮鼠标。为了LOL心血来潮把很多鼠标都玩了一圈,结果就是长长的账单Logitech 罗技 G900鼠标简单开箱

先聊一下之前玩过的鼠标吧(因为猪脚都不是他们,所以图片就略过了)

IE 3:
用了10年,微软的经典!依然好用!不管是重量、手感、微动都非常不错,只是玩游戏时候,DPI 略显不足,现在放办公室日常办公还是挺不错的。

G700s:
从美亚海淘回来的第一款游戏鼠标,其实一开始看中的是他的无线功能,虽然是无线,但基本不会丢帧,类肤的手感也非常棒。
作为罗技的旗舰级鼠标,拥有双模(无线或有线均可)及8200dpi,配置还是不错的。
但用来撸啊撸,2盘过后,胳膊明显感觉酸痛,因为G700s净重127g(带电池约170g),再加上一颗5号电池,用久了还是蛮累的。
(另外,1颗2000毫安的充电池,大概可连续使用12小时左右,需要经常充电。建议充电器买快充的。)

G100s:
入门级鼠标,众多论坛大神都推荐的一款入门级鼠标。
只有111g的重量,以及2500dpi,对于一般玩家也足以。据说royal.辅助zero、IG.上单勇秀、IG.打野影子都是用这款鼠标。
我用起来感觉还不错,握感饱满、轻盈,但按键和滚轮实在让人有点廉价的感觉。

G303:
鼠标外形比较特别,DPI+RGP+编织线,基本配置都不错,87g重量,整体还是不错。但就是不习惯我手感,现在作为外出LOL使用。

M45:
最没有期待,但最有惊喜。看到大魔王Faker也曾经用贼船的M45,因此便入一个玩玩。开始的时候不习惯,但2天后发现很舒服,特别是喜欢类肤的涂层,后来把所有配重都拆掉以后,重量挺合适LOL的(约100g)

太攀皇蛇:
鼠标偏瘦,重量、配置方面都挺不错,但最郁闷是右边的两个按键,经常会无触碰,虽然可以屏蔽,但有强迫症的我依然不爽,只能放弃。

一大早顺丰快递已经派件,先不说,上图!

继续阅读

解决运行php composer出现SSL报错的问题

c:\>php -f %phprc%\composer install
Loading composer repositories with package information

  [Composer\Downloader\TransportException]
  The "https://packagist.org/packages.json" file could not be downloaded: SSL
   operation failed with code 1. OpenSSL Error messages:
  error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify
  failed
  Failed to enable crypto
  failed to open stream: operation failed

install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-p
lugins] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--ver
bose] [-o|--optimize-autoloader]

没有安装CA证书导致的,CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

然后修改php.ini文件

openssl.cafile= D:/xampp/php/verify/cacert.pem

问题解决。

Windows10的80端口被System占用

安装了Windows10系统后,如果装Apache是启动不了的,遇到这个Apache启动不了的时候,首先是查看80端口是不是被占用。

运行netstat -aon | findstr :80 ,发现pid是4的进程占用着80端口,这还是一个系统进程,kill不掉。所以只能另想办法:

1、打开注册表:regedit
2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
3、在右边找到Start这一项,将其改为0
4、重启系统,System进程不会占用80端口

重启之后,再启动Apache就可以了。

PHP 连接 SQLServer2005/2008/2012/2014(For Win)

PHP连接SQLServer2005/2008或以后版本数据库与以往的连接SQLServer2000是不一样的,需要自己添加PHP对SQLServer连接的驱动扩展。

(php.ini中的extension=php_mssql.dll扩展只适用连接于SQLServer2000)

1、微软官网下载一个SQLServer Driver for PHP的扩展包。下载地址
2、安装解压缩,解压出来一堆DLL文件,全部放到php\ext目录下
3、在php.ini的Dynamic Extensions中添加如下两条扩展:

    extension=php_sqlsrv_56_ts.dll
    extension=php_pdo_sqlsrv_56_ts.dll

4、重启apache
5、测试代码

<?php
  $servern="SFKFK27EL8FJ\SQLTRY";
  $coninfo=array("Database"=>"db address","UID"=>"sa","PWD"=>"123456");
  $conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!");
  $val=sqlsrv_query($conn,"select * from usertable");
  while($row=sqlsrv_fetch_array($val)){
    echo $row[1]."<br />";
  }
  sqlsrv_close($conn);
?>

SQL中在日期范围内判断星期几,把周六、周日的日期插入表

–创建表

CREATE TABLE [dbo].[WeekendDate](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Date] [datetime] NULL,
    [Weekday] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]

–将周六日的数据插入到表

declare @datetime datetime,@weekday char(12)

set @datetime='2012-01-01'
while @datetime<='2017-01-01'

begin

select @weekday=datename(weekday,@datetime)
if @weekday= 'Saturday' insert WeekendDate([date],[weekday]) values(@datetime,@weekday)
if @weekday= 'Sunday' insert WeekendDate([date],[weekday]) values(@datetime,@weekday)
--select @datetime,@weekday
select @datetime=dateadd(day,1,@datetime)
end

(如果系统为中文,则把Saturday改为星期六,Sunday改为星期日)

–检查插入结果

--select * from weekenddate

投资的数学题

201506022259

1.关于收益率
  假如你有100万,收益100%后资产达到200万,如果接下来亏损50%,则资产回到100万,显然亏损50%比赚取100%要容易得多;

2.关于涨跌停
  假如你有100万,第一天涨停板后资产达到110万,然后第二天跌停,则资产剩余99 万;反之第一天跌停,第二天涨停,资产还是99万元;

3.关于波动性
  假如你有100万,第一年赚40%,第二年亏20%,第三年赚40%,第四年亏20%,第五年赚40%,第六年亏20%,资产剩余140.5万元,六年年化收益率仅为5.83%,甚至低于五年期凭证式国债票面利率;

4.关于每天1%
  假如你有100万,每天不需要涨停板,只需要挣1%就离场,那么以每年250个交易日计算,一年下来你的资产可以达到1203.2万,两年后你就可以坐拥1.45亿。

5.关于每年200%
  假如你有100万,连续5年每年200%收益率,那么5年后你也可以拥有2.43亿元个人资产,显然这样高额收益是很难持续的;

6.关于10年10倍
  假如你有100万,希望十年后达到1000万,二十年达到1亿元,三十年达到10亿元,那么你需要做到年化收益率25.89%。
继续阅读

「Synergy」让你一套键鼠控制多台电脑

20150511-synergy

一直苦于如何使用一套键鼠,同时操控多台实体机。解决方案一般有两种:
* 软件:Synergy为代表,成本低,方便。现已开始收费,10刀起。
* 硬件:USB直连线,成本高,一条小日本生产的USB 3.0的线要300多(国产USB 2.0只要100内)

因硬件还得等物流的原因,直接入手软件,不爽了再考虑换硬件。

官网:http://synergy-project.org/
继续阅读