分类 [ 技术 ] 下的全部文章

IT常识 2017年9月24日

本博客由于放在美国,大陆这边的电信有的地方为了屏蔽国外的网站,经常不解析本博客的域名,所以要更换电信的DNS为google的8.8.8.8和8.8.4.4,更换之后绝大多数原来被屏蔽的网站都可以访问了。另外,作为一个合格的IT从业者,应该使用google的浏览器chrome和google的搜索http://www.google.com.hk。不过firefox浏览器也不错,这个是完全开源的,界面美观,速度快,我现在开始使用它了。

为了使用google搜索,大陆这边还要安装翻墙软件,简易的翻墙软件点击这里可以下载,解压到硬盘某个目录下,然后点击里面的fg750p.exe启动翻墙软件,过一会儿就会打开动态网,此时你也可以浏览任何网站,包括www.google.com网站。如果不想翻墙了,就关闭那个翻墙软件即可或者点击菜单“暂停使用”。也可以把需要翻墙访问的网站加到白名单中:点击“设置-->自由门代理控制”,然后在中间的那个框中输入网址。或者采用蓝灯(lantern)翻墙工具,这个速度快,从这里下载后安装,然后重启电脑,lantern就自动启动了,这时就可以浏览世界上的任何网站了。

最好的翻墙软件是goagent,配置稍微复杂,但是一旦安装配置好了将一劳永逸。在百度上搜索goagent会有详细的安装配置说明。

国外的网站:

https://twitter.com,https://www.facebook.com, https://www.google.com,https://plus.google.com,https://zh.wikipedia.org,https://www.youtube.com,http://www.youtube.com/user/VOAchina。另外下面的新闻网站也可以常去逛逛:

1、纽约时报中文网:http://cn.nytimes.com/china/
2、华尔街日报:http://cn.wsj.com/gb/
3、美国之音:http://www.voachinese.com/
4、法广新闻:http://www.chinese.rfi.fr/
5、纽约时报:http://cn.nytimes.com/
6、国际调查记者同盟:http://www.icij.org/
7、https://plus.google.com
8、动态网:www.dongtaiwang.com
9、禁书网:www.bannedbook.org
10、曹长青网站:http://caochangqing.com/gb/index.php?dispmode=0
11、自由亚洲电台:http://www.rfa.org/mandarin/
12、参与:http://www.canyu.org/
13、博谈网:http://www.botanwang.com/
14、新唐人电视台:http://www.ntdtv.com/
15、人民报:http://www.renminbao.com/
16、看中国:http://www.secretchina.com/
17、民主中国:http://www.minzhuzhongguo.org/
18、透视中国:http://www.ntdtv.com/xtr/gb/2012/07/10/a719984.html
19、纵览中国:http://chinainperspective.com/
20、中国数字时代:https://chinadigitaltimes.net
21、维基百科:http://zh.wikipedia.org/
22、编程随想的博客:http://program-think.blogspot.com/
23、无国界记者:http://rsf-chinese.org/
24、文学城:http://www.wenxuecity.com/

 

自己搭建VPN 2017年9月24日

谷歌推出了云计算平台系统,其中最主要的一项功能就是虚拟机了,新注册的朋友能免费试用一年,一年后收费,不过那个最低配置的虚拟机大概一天1元人民币,也算是很便宜了。

下面具体谈谈如何利用谷歌的vps搭建shadowsocks翻墙。打开网站https://cloud.google.com/,注册用户并完成虚拟机的创建,我在虚拟机里安装ubuntu 16.04(64位),注意谷歌虚拟机的ip地址是内网ip,在路由机上映射到一个外网ip地址(估计采用openstack系统搭建),在cloud.google.com上创建虚拟机后会显示外网的ip(下文简称外网ip),通过cloud.google.com的控制台登录到虚拟机里,可以查看到虚拟机里的ip(下文简称为内网ip),安装openssh后就可以通过ssh命令远程登录了(链接外网ip:22)。

1、安装shadowsocks服务

采用putty.exe远程登录vps,然后执行下面的命令:

root@instance-1:~# apt-get install shadowsocks -y
root@instance-1:~# cat /etc/shadowsocks/config.json

"server":"10.108.18.16",
"server_port":7208,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"A1b2C3",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1,
"prefer_ipv6": false

重点是红色字体部分,server参数为内网ip,server_port为shadowsocks服务程序监听的端口,也就是shadowsocks服务程序监听从 server:server_port 发来的客户端翻墙请求。password为shadowsocks客户端链接服务器的密码,也就是说只有知道了这个密码的人才运行通过客户端链接服务器完成翻墙任务。然后执行如下命令启动服务:

root@instance-1:~# systemctl restart shadowsocks
root@instance-1:~# systemctl enable shadowsocks
root@instance-1:~# netstat -tnlp

tcp 0 0 10.108.18.16:7208 0.0.0.0:* LISTEN 28666/python

表明10.108.18.16:7208处于被监听状态,到此shadowsocks服务安装完成。日志记录在/var/log/shadowsocks.log文件中,出问题时可以查看此文件。

2、开启防火墙

谷歌虚拟机默认只允许22、80和443端口通过,且防火墙策略做在虚拟路由器上,不能直接在虚拟机里操作防火墙策略。进入cloud.google.com网站,然后参照下图操作:

1

例如我设置让7208端口通过,记住新建防火墙规则的名字,我的是“vpn7208”,后面要把这个名字附加给虚拟机。选中虚拟机并点击“修改”:

在另外一台电脑上测试防火墙是否通畅:

nc 外网ip 7208  或者 telnet 外网ip 7208

3、安装客户端

从https://github.com/shadowsocks/shadowsocks-windows/releases/download/4.0.5/Shadowsocks-4.0.5.zip下载最新版本的压缩包(截止到2017年8月22日最新版,以后下载的同学可以通过浏览https://github.com/shadowsocks/shadowsocks-windows查找最新版),解压出Shadowsocks.exe,然后双击它安装。安装完并启动后会在任务栏上出现一个类似高德地图那样的小图标,鼠标右键点击此图标,然后点击“服务器”》“编辑服务器…”,见下图:

这里输入谷歌虚拟机的外网ip,同时输入安装shadowsocks服务时定义的端口和密码(我这里分别是7208和A1b2C3)。

好了,到此全部完成,接下来直接打开浏览器上网国外网站即可。由于谷歌vps对流量会计费,所以不要翻墙的国内网站尽量不要通过shadowsocks。这里给你一个好的建议:安装两个浏览器chrome和firefox,chrome设置翻墙代理上网,而firefox不设置代理上网。这样国内的网站(比如淘宝、当当等)采用firefox,国外的敏感网站(比如推特、脸谱、谷歌、谷歌+等)采用chrome浏览器。不过为了保护自己,强烈建议chrome浏览器设置成无痕模式,这样当你关闭浏览器或者电脑后,全部的上网信息被自动删除。

4、设置chrome无痕模式

如果是临时性使用(比如临时使用别人的电脑),可以在启动chrome浏览器后同时按Ctrl+Shift+n三个键就打开一个无痕页,然后在这个新页里输入网址就开始无痕上网了。如果是自己的电脑,建议设成启动浏览器后自动进入无痕模式:用鼠标右键点击桌面上的chrome图标,然后点击“属性”,在打开的窗口上的“目标(T):”后面增加"  -incognito”即可,如:C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  -incognito

经过测试,发现浏览过的网站域名还是会记住,比如你上过twitter.com,那么你在浏览器中输入网址时,如果输入t,会自动显示之前浏览过的推特网址,还有在网页上输入登陆信息(比如登陆推特),鼠标双击输入框,也会显示之前曾经输入国的信息。这样还不是很安全。所以要安装另一个插件 Click&Clean,安装方法:点击浏览器右上角的折叠菜单(竖立的三个点)》更多工具(L)》扩展程序,翻到最后再点击“获取更多扩展程序”,搜索关键字“click@clean”,搜索到了然后安装。安装过程中会下载apphosts.msi,然后点击它安装,最后在浏览器的右上角部分显示一个红色的大写“C”图标,点击它并在弹出的窗口中点击“选项”,参照下图勾选:

这样设置后在无痕模式下默认没有启动该组件,在无痕模式下启动chrome浏览器,然后点击浏览器右上角的折叠菜单(竖立的三个点)》更多工具(L)》扩展程序,找到Click@Clean插件,勾选“在隐身模式下启动”即可。

 

附录:

(1)、有人利用搬瓦工vps搭建爬梯工具(搬瓦工官方网站 https://bwh1.net/index.php)也是一个不错的选择,一台不错配置的VPS(硬盘SSD:20 GB RAID-10,内存:1024 MB,CPU:2x Intel Xeon,流量: 1 TB/月)每月4.9美元,优惠后一年大概300元人民币。

(2)、在上面第三幅图中,如果勾选“允许来自局域网的连接”,那么你的电脑就成了局域网内(比如同一个办公室、家庭)的翻墙网关了,只要其他电脑上的浏览器的“代理设置”与你电脑上的浏览器一样,但ip地址改成你电脑的ip即可。查看chrome浏览器的代理设置:点击右上角竖立的那三点》设置》高级》打开代理设置》“连接”页》局域网设置,这里可以看到是“自动配置脚本”,比如我的是:

http://127.0.0.1:1080/pac?t=20170826145911940&secret=K7xxz9Mb+6pLK7cO6MuhxrQyCGwcgbBT/mw9yChfS1c=

改成下面的内容并对其他电脑设置代理:

http://192.168.0.102:1080/pac?t=20170826145911940&secret=K7xxz9Mb+6pLK7cO6MuhxrQyCGwcgbBT/mw9yChfS1c=

其中192.168.0.102是我电脑的ip地址(按Win+r,输入cmd并回车,在输入命令ipconfig可以查看ip地址)。

iphone手机设置代理:设置》WI-FI》已连接wifi右侧的“i”》HTTP代理》手动,然后输入我电脑的ip地址192.168.0.102和端口号1080。好了,到此,你的手机可以畅游四海了:推特、谷歌、脸谱、……,没有你不能上的网站,只有你不能上的女人,哈哈。不过说到苹果手机,我这里特别要提醒大家一句:苹果公司已屈服于中国政府了,在中国境内建了个appstore,专门给墙内人用的,上面的软件都是被阉割的(注入后门代码),所以我强烈建议大家重新注册一个苹果的apple id(在此网站注册 https://appleid.apple.com),注册时国家选择美国,然后在手机上注销原来登陆的Apply ID,重新以新的Apply ID登陆,然后会引导你输入信用卡号码(很多童鞋没有,这就是一道坎,正是中国政府想要的结果)。当你开始想了解中国时(你已经走上犯罪的道路了),为了安全起见,去香港购买苹果手机,然后办一张信用卡以便能以美国注册Apply ID,这样你安装的软件就是从美国店下载的,绝对安全可靠。

亲,你难道还没有感叹!对,没错,采用树莓派或者香橙派就可以做一个小巧精悍的翻墙网关这个大杀器了。等我完成了这个大杀器,我到时在发布在这个博客上,敬请关注。

 

使用Windows 目录服务(AD)对iLO进行集中管理

默认地,iLO(或iLO2)使用本地管理策略,集成iLO的服务器随机都带有一个标签,上面标有iLO的DNS名称,管理员帐号(Administrator)及密码(数字字母字符串)。传统地,我们一般是更改默认密码或新增一帐号,设置密码与管理权限,再以WEB方式来管理iLO。但这种方式不能实现集中管理,如果iLO管理员的密码泄漏,我们势必要手工地逐一更改,效率极为低下。反之,如果可以利用Windows AD管理功能,我们就可以方便地进行集中管理,并且可以利用Windows 的安全审核功能来追踪特定用户的登陆与登出。如果某一管理员的密码泄漏,我们也只需要方便地更改该管理员的密码而不用去每一个iLO更改密码。

 

一、设置域控制器

1、在AD上新建一个安全组iLOadmin (图一), 并向该组中新加两个用户ilotest, test2(图二)

2、在域控制器上安装证书服务器

3、配置证书服务

运行MMC,在文件菜单下,选择添加/删除插件,选择添加证书,出现提示时,选择计算机管理(Computer Management),单击确定回到添加插件窗口。选中证书/个人文件击,右键选择申请新证书,选择域控制器身份验证。完成证书配置服务。

4、验证证书服务是否工作正常

打开IE,在地址栏输入:https://域控制器名称:636,如果可以弹出以下窗口说明证书服务器工作正常

 

一、使用工具进行iLO批量集成服务

 

1、从HP网站下载目录服务支持管理软件,

 

http://h18004.www1.hp.com/support/files/lights-out/us/download/23896.htm(SP31581.exe)

 

2、安装目录服务支持管理软件(既可以有域控制器上安装,也可以在其它域计算机上,如Windows XP上安装该软件)

3、安装完成后,可以通过开始->程序->Hewlett-Packard group->HPQLOMIG启动Lights-Out目录迁移工具。搜索网段内的iLO,可以使用通配符(*),以确定Firmware 是否需要升级。

如果有更新的iLO Firmware,可以用这种办法进行批量升级Firmware。不管是否使用AD进行iLO用户管理,我们都建议使用这一工具来进行iLO的Firmware升级。

确认Firmware为最新时,单击下一步。

选择Default schema, 在确认AD认证可以正常工作前,先启用(Enabed)本地帐号,如果测试一切正常,可以再禁用本地帐号。然后,进入下一步

 

根据屏幕提示输入相应信息(说明:这里的安全组名称如果使用Windows集成的安全组,测试不能通过,这也是我们一开始新建安全组的原因)。完成后,单击下一步,点击Configure,结束配置。

 

如果一切正常,那么应该可以使用AD用户进行登陆。

 

局域网穿透术 2013年6月18日

一、在内网有一台服务器,上面部署了一个网站,外面的人如何访问这个网站?

条件:自己能设置出口路由器,内网服务器的ip地址假设为192.168.1.100

1、首选在路由器上设置端口转发,让发到路由器80端口的数据包转发到内网服务器的80端口。

然后就可以通过访问路由器的公网ip地址的80端口来访问内网服务器上的网站了,登录到路由器中可以查看公网ip(假如查到的是202.10.198.155,那么外面的人可以浏览 http://202.10.198.155,从而可以看到内网服务器上的网站了。

二、如何访问完全内网里的一个网站?

条件:你没有权限设置出口路由器,但是有一个自由支配的位于公网上的VPS,假设VPS的公网IP是184.178.10.65

1、在VPS里安装ssh服务器,然后修改服务器配置sshd_config,加入如下的配置项:

GatewayPorts yes

然后重启ssh服务

创建一个普通用户sun,登录SHELL为/sbin/nologin,并设好密码,比如123456。注意:普通用户只能转发普通端口(端口号大于1024)

2、在内网网站服务器上安装ssh客户端,然后运行如下命令:

ssh -qnfNT -g -R *:8080:localhost:80 -o ServerAliveInterval=600 -o ServerAliveCountMax=3  -p 7208 sun@184.178.10.65

然后会提示输入sun用户的密码,密码输入正确后这个命令会自动切换到后台。最后外面的人就可以通过访问 http://184.178.10.65:8080来间接访问完全内网里的网站了。记住:sun是普通用户,不能直接转发80端口,所以改成了8080了。如果有root密码,那么这条命令也可以写成:

ssh -qnfNT -g -R *:80:localhost:80 -o ServerAliveInterval=600 -o ServerAliveCountMax=3  -p 7208 sun@184.178.10.65

这样公网上的用户就可以直接访问http://184.178.10.65了。

上面的命令中,关键是要理解:

1) -R *:80:localhost:80 *表示VPS的ssh服务器监听来自任意网卡的链接请求,第一个80表示VPS上ssh服务器监听到端口,localhost表示内网服务器上到ssh客户端监听地址,第二个80表示内网服务器上ssh客户端监听到端口。总体意思是VPS上的ssh服务器监听全部网卡上的80端口请求,然后通过安全隧道转发到内网服务器的localhost端口80。

2) -p 7208 ssh服务器的默认端口是22,通过修改配置文件sshd_config,把默认端口改为了7208,这样vps就更安全了。

VPS上80端口往往比较紧张,所以一般转发其他端口,如8069,另外假设ssh的服务端口是默认的22,那么采用如下命令:

ssh -qnfNT -g -R *:8069:localhost:80 -o ServerAliveInterval=600 -o ServerAliveCountMax=3  sun@184.178.10.65

3、可以一次性转发多个端口:

ssh -qnfNT -g -R *:7208:localhost:22 -R *:5901:localhost:5901 -o ServerAliveInterval=600 -o ServerAliveCountMax=3  -p 7208 sun@184.178.10.65

 

如何让机器开机后自动运行上面的命令呢?由于ssh输入密码一定是交互式,这里就采用大名鼎鼎的expect了。首先要安装它:

yum -y install expect -----(在ubuntu上采用apt-get -y install expect安装)

然后编辑以文件,比如/usr/bin/auto_tunnel.exp,输入以下内容:

#!/usr/bin/expect -f

spawn /usr/bin/ssh -qnfNT -g -R *:7208:localhost:22 -R *:5901:localhost:5901 -o ServerAliveInterval=600 -o ServerAliveCountMax=3  -p 7208 sun@184.178.10.65
expect {
"*(yes/no)?" { send "yes\r"; exp_continue }
"*password:" { send "123456\r" }
}
expect eof

 

然后改成可执行:chmod +x /usr/bin/auto_tunnel.exp

再执行命令:

echo "/usr/bin/auto_tunnel.exp >/dev/null&" >>/etc/rc.local

 

如果外网服务器重启了,那么原先建立的通道就失效了,因此最好在内网的机器上再做一个定时任务,运行命令 crontab -e,加入如下内容:

0 3 * * * /bin/ps -ef|/bin/grep qnfNT|/bin/awk '{print $2}'|/bin/sort -n|/usr/bin/xargs -i -t /bin/kill -9 {};/usr/bin/auto_tunnel.exp >/dev/null&

 

这个任务每天凌晨3点启动,首先把以前建立的通道拆除,然后建立新的通道。

 

4、穿透到windows机器(如3389端口):

首先从网上下载命令plink.exe,然后执行下面的命令:

plink.exe -C -N -R *:1234:localhost:3389 -P 7208 -pw 123456 sun@184.178.10.65

可以单独运行这个命令,也可以做成一个开机自动运行的后台任务(Win7下:控制面板-->管理工具-->任务五计划程序-->新建基本任务...:名称=plink,触发器=计算机启动时,操作=启动程序,程序或脚本=C:\Windows\System32\plink.bat,勾选“当单击完成时,代开此任务属性的对话框”,点击“完成”,点选“不管用户是否登录都要运行”,点击“确认”,输入用户密码)

 

5、内网linux机器上做翻墙工具,然后就可以上被墙的网站,在机器上运行命令:

ssh -fnqTN -D 8080 sun@moodisk.com -p 7208

在网页浏览器中设置代理,对于firefox浏览器,编辑-->首选项-->网络-->设置-->点选“手动配置代理”,然后在socket主机后面输入127.0.0.1,端口输入8080。

但是wget不支持socket5代理,所以为了能使用wget下载被墙网站上的文件,还需要安装软件tsocks,然后在/etc/tsocks.conf写入如下内容:

server = 127.0.0.1
server_type = 5
server_port = 8080

 

最后可以采用如下形式的命令:

tsocks wget http://www.xxx.com/file.txt

 

 

详细的资料参考这里:https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/

本文介介绍sed/awk/vim/iptables思维导图,这些盗图有助于你记忆它们的功能。

给力的运维shell命令 2011年3月31日

1.显示消耗内存/CPU最多的10个进程
ps aux | sort -nk +4 | tailps aux | sort -nk +3 | tail

2.查看Apache的并发请求数及其TCP连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

Linux下网卡限速策略 2010年12月26日

也许有人会说,网卡速度不是越快越好吗?干吗要限速呢。是的,对于单台桌面个人用机,速度当然是越快越好,但是对于服务器或者局域网内的个人电脑,追求的是整体网络吞吐,此时如果单个电脑速度失控很可能就会拖慢整个网络或者服务器了,比如办公室内某人使用迅雷下载,那其他人就很难打开浏览网页了,同样在实验室,几十台电脑共用一台服务器,如果客户机访问服务器时不限速,那么很快服务器和网络可能就会遭殃。还有一种应用场景:就是局域网模拟广域网以测试基于广域网的一些软件。我们经常会遇到这样的问题,在开发网络程序时,在告诉局域网内测试很正常,但一旦交付给用户使用就问题百出(用户跨广域网使用)。在Linux下限速办法比较多,下面一次从最简单的方法到最复杂最逼真的方法逐一讲解:

1、wondershaper脚本——针对整块网卡:
# apt-get install wondershaper iproute
语法: wondershaper <interface> <downlink> <uplink>
# wondershaper eth0 200 100 ;限制第一块网卡的下行速度200kb,上行速度100kb。
# wondershaper clear eth0        ;清除带宽限制
# wondershaper eth0                 ;查看第一块网卡的限速情况。

2、trickle工具——针对具体应用:

保护 SSH 的三把锁 2010年12月02日

如果需要远程访问计算机并启用了 Secure Shell (SSH) 连接,黑客就会尝试突破您的防线并控制您的计算机,您必须接受这个事实。尽管不能保证计算机不会被 “黑客” 占领,但是一些简单的解决方案有助于保护 SSH,可以让攻击困难一些。本文讨论三种技术:

25 条 SSH 命令和技巧 2010年11月28日

SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。

1、hexdump –C <filename> | od -A d –t x1 <filename>   以二进制方式查看文件内容

2、SPident –v | cat /etc/SuSE-release 查看版本号;
3、getfacl –R –P –skip-base –absolute-names <directory> 列出目录下的所有具有ACL类型权限的文件(绝对路径,且跳过符号连接文件);