Nov 07

1.绕过 GFW 和 ISP 劫持

最简单和不折腾的方法是购买 VPN,次之是购买一台海外 VPS,自己安装 VPN 或 Shadowsocks 服务端。VPN 的优点是可以全局翻墙,Shadowsocks 虽然可以设置全局模式,但是对于不支持代理的本地应用是没有办法的,当然这种情况下可以试试 ProxifierPE 强制所有连接通过代理上网。

使用 Shadowsocks 可能遇到的另一个问题是,因为 Shadowsocks 使用的是 SOCKS5 类型的代理,当本地应用只支持 HTTP/HTTPS 类型代理时,就需要自己解决 HTTP 转换为 SOCKS5 的问题。当然,这个问题使用 Privoxy 就能很好地解决。

本节主要介绍如何组合使用 Shadowsocks 和 Privoxy,并假设你已经安装并配置好了 Shadowsocks(Linux 中可以安装 shadowsocks-qt5 或 命令行版本的 Shadowsocks)。

Shadowsocks 与 Privoxy 组合使用的示意图如下所示:

Shadowsocks-Privoxy

假设你已经配置好了 Shadowsocks,接下来配置 Privoxy。

Windows 系统中右键点击 Privoxy 托盘图标,依次点击 Edit – Main Configuration 打开配置文件;Linux 系统中 Privoxy 的配置文件位于/etc/privoxy/config。
配置文件修改为:

# 把 HTTP 流量转发到本机 127.0.0.1:1080 的 Shadowsocks
forward-socks5 / 127.0.0.1:1080 .
# 可选,默认只监听本地连接 127.0.0.1:8118
# 可以允许局域网中的连接
listen-address 0.0.0.0:8118

启动 Shadowsocks 和 Privoxy 后,把本地应用的代理设置为 HTTP/HTTPS 类型的 127.0.0.1:8118,就可以绕过 GFW 和 ISP 了。如果局域网中的其他 PC 或手机也希望使用该电脑上网(假设该电脑 IP 地址为 192.168.1.10),把它们的代理设置为 19.168.1.10:8118 即可。

目前,有一个讨巧的的办法替代这两者的组合:使用 Lantern —— 一款开源的安全上网工具。它使用的是 HTTP 类型代理,本地端口为 8787,也就是说,把本地应用的代理设置为 127.0.0.1:8787 就可以使用 HTTP 类型的代理了。而且使用它,也无需自己购买 VPS。

Lantern 默认非全局代理,可以在设置中改为全局模式。

另一方面,Lantern 只监听本机 127.0.0.1:8787 的连接,如果局域网中的电脑或手机也想通过这台电脑翻墙(假设该电脑 IP 地址为 192.168.1.10),那么也需要配合 Privoxy 使用。这时,Privoxy 的配置应该如下:

# 监听局域网中连接到本地 8118 端口的连接,转发给 8787 端口的 Lantern
forward / 127.0.0.1:8787
listen-address 127.0.0.1:8118 # 可改为 0.0.0.0:8118 允许局域网的连接

2.匿名上网

网络中保持匿名的办法是使用 Tor,匿名的意思是隐藏你当前的 IP 地址。Internet 上有很多志愿者运行着 Tor 中继节点,Tor 能保证从出发点的流量至少经过三个不同的中继节点到达目的地址,而且这三个不同的中继不会每次都相同。

形象地说,你想把一封匿名信交给小明,在大街上随便找了一陌生人 A 让 A 帮忙转交,A 走了一段路程后随便找了一个陌生人 B 让 B 帮忙转交,B 走了一段路程后随便找了一个陌生人 C 让 C 帮忙转交,最终 C 按照信封上的地址找到了小明并把信交给了他。小明只知道是 C 转交了这封信,至于是谁写的这封信,他就无从得知了。A、B、C 分别对应着 Tor 网络的中继节点,这种投递匿名信的方式就起到了隐藏 IP 地址的效果。

如下图所示,使用 Tor 从本机经过三跳访问了 Google。

Shadowsocks-Privoxy

Tor 浏览器

为了方便使用 Tor,Tor 开发者把 Tor 集成到了定制版的 Firefox 中,简单设置一下就能正常使用。

Tor 浏览器专为大陆等网络环境加入了流量混淆的选项。首次打开浏览器时会弹出 Tor 状态检查,点击设置配置 Tor 网桥,勾选互联网提供商(ISP)是否对 Tor 网络连接进行了封锁或审查中的是,把下一步中的网桥类型选择meek-amazon或meek-azure。这两者在大陆没被完全封锁,因此可以用来做跳板网桥。

不过随着网络环境的恶化,Tor 提供的网桥类型都不可用时,就需要使用自己的 Shadowsocks 或 Lantern 代理了。

首次打开 Tor 浏览器,在 Tor 设置中勾选互联网提供商(ISP)是否对 Tor 网络连接进行了封锁或审查中的否,在下一步是否需要本地代理访问互联网?中选择是,下一步中设置你的代理:

  • 使用 Shadowsocks 则设置为 SOCKS5 类型的 127.0.0.1:1080;
  • 使用 Lantern 则设置为 HTTP/HTTPS 类型的 127.0.0.1:8787;

如果通过局域网中其他计算机的配置联网,把 127.0.0.1 改为那台计算机的 IP 地址。

使用了代理的 Tor 浏览器原理示意图如下(以 Tor + Shadowsocks 组合为例):

Shadowsocks-Privoxy

Tor Expert Bundle

Tor 浏览器适用于使用浏览器匿名上网的场景,如果打算让本地应用(如其他浏览器、Linux 中的 Terminal 等)也使用 Tor 隐藏 IP 地址,那么就需要自己手动配置 Tor 了。从 Tor 官网下载 操作系统对应的 Expert Bundle,它只包含 Tor 工具,不含浏览器。

假设你已经配置好了 Shadowsocks,接下来,为 Tor 配置 Shadowsocks 代理。

Windows 系统中,打开 %AppData%/tor 目录(如果不存在则创建该目录),新建 torrc 文件,内容如下:

## 通过 SOCKS5 代理
SOCKS5Proxy 127.0.0.1:1080
## 如果使用 HTTP/HTTPS 代理
# HTTPSProxy 127.0.0.1:8118
## 如果只允许特定端口的网络连接,如 80 和 443
ReachableAddresses *:80,*:443
ReachableAddresses reject *:*

Linux 系统中,Tor 的配置文件位于 /etc/tor/torrc,配置内容同上。

启动 Shadowsocks 和 Tor,因为 Tor 监听的是 SOCKS5 类型的本地 9050 端口,把需要匿名的本地应用代理设置为 SOCKS5 类型,代理地址设置为 127.0.0.1:9050,实现匿名上网。

还是老问题,如果本地应用只支持 HTTP/HTTPS 代理类型,那么仍需要使用 Privoxy,修改其配置文件为:

forward-socks5 / 127.0.0.1:9050 .
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

这样一来,本地应用的代理设置为 HTTP/HTTPS 类型的 127.0.0.1:8118 就可以实现匿名上网了。
Privoxy + Tor + Shadowsocks 组合使用示意图如下所示:

Shadowsocks-Privoxy

使用 Tor 匿名访问网络除了应用于渗透测试,另一个应用场景是编写爬虫变换 IP 地址爬取站点,减小被网站屏蔽的可能性。

在 Linux Terminal 中,使用 export 命令设置代理,可以只在当前 Terminal 中生效,

export http_proxy=http://127.0.0.1:8118
export https_proxy=https://127.0.0.1:8118

3.总结

接下来简要归纳上述内容,给出每种组合的配置内容。

Privoxy + Shadowsocks 组合 —— 翻墙
配置 Privoxy,Linux 系统中位于 /etc/privoxy/config:

forward-socks5 / 127.0.0.1:1080 .
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

本地代理需设置为 HTTP/HTTPS 类型的 127.0.0.1:8118。
如果不使用 Privoxy,本地代理需设置为 SOCKS5 类型的 127.0.0.1:1080。

Privoxy + Tor + Shadowsocks 组合 —— 匿名上网
配置 Privoxy,Linux 系统中位于 /etc/privoxy/config:

forward-socks5 / 127.0.0.1:9050 .
listen-address 0.0.0.0:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

配置 Tor,Windows 系统中位于 %AppData%/tor/torrc,Linux 系统中位于 /etc/tor/torrc:

SOCKS5Proxy 127.0.0.1:1080    # Shadowsocks 代理地址
ReachableAddresses *:80,*:443
ReachableAddresses reject *:*

本地代理需设置为 HTTP/HTTPS 类型的 127.0.0.1:8118。
如果不使用 Privoxy,本地代理需设置为 SOCKS5 类型的 127.0.0.1:9050。

Privoxy + Tor + Lantern 组合 —— 匿名上网
配置 Privoxy,Linux 系统中位于 /etc/privoxy/config:

forward-socks5 / 127.0.0.1:9050 .
listen-address 0.0.0.0:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

配置 Tor,Windows 系统中位于 %AppData%/tor/torrc,Linux 系统中位于 /etc/tor/torrc:

HTTPSProxy 127.0.0.1:8787    # Lantern 代理地址
ReachableAddresses *:80,*:443
ReachableAddresses reject *:*

本地代理需设置为 HTTP/HTTPS 类型的 127.0.0.1:8118。
如果不使用 Privoxy,本地代理需设置为 SOCKS5 类型的 127.0.0.1:9050。

转自:https://g2ex.github.io/2016/05/20/Tips-on-Chinternet/

Jul 15

以前博客搭建在 Godaddy 的免费空间上,考虑到访问速度还可以,稳定性也还行就没有迁移出来,尽管自己已经有几个 VPS 闲置着。但是前几天,Godaddy 突然将我的空间取消了,发了电子邮件也没有回复,考虑再三,决定还是将博客迁移出来,毕竟免费的空间还是没有保障,说关闭就关闭。

整个迁移过程还算容易,以前我曾将博客的数据保存在树莓派的临时空间上,大部分的数据还在的,只有最近几个月的数据没有,好在我在 Openshift 的镜像网站上有备份,所以数据还算没有损失。博客程序还是使用的是 WordPress,模板还是使用的是原来的模板,只是使用上自己的 SSL 证书。

Google App Engine 要放弃旧的 Master/Slave Datastore,几个应用需要迁移,重要的应用还是处理了一下,一些不常用的就放弃了。Google Reader 关闭了,有一个叫 goread 程序可以很大程度上替代 Google Reader,但是搭建过程中总是有点小问题,https的方式访问总是提示过多的重定向,需要将安全选项中的 always 改为 optional 才行。另外有两处个性化的标题须在 base.html 和 site.js 里面修改。

Jul 05
  • Twitter Weekly Updates for 2015-06-28: – Twitter Weekly Updates for 2015-06-21: – Twitter… http://bit.ly/1RHMzgc #
  • RT @na_sheishei: RT @maylogcom: #转
    强拆现场,一个男青年站在屋顶大喊:“拆我房子可以,但我是爱国青年,坚决抵制日货。 把日立,川琦,神钢,小松,四台挖掘机开走,换国.产的三一过来,不然我就跳楼! #
  • @craigxy @stang227 还真是民族歧视啊 #
  • RT @ccres: 记错了,先是《交大没有帅哥》,反击篇《交大没有靓妞》 //@cccres:当年有bbs神曲“交大没有美女”,今天浙大应该来一曲“浙大等你来上” //@简单冲刺:一水的浙大女生还有举着“等你来”牌子的,这招生宣传广告和东莞酒店制服诱惑有啥区别?就差脱裤子了你… #
  • RT @songma: “美国四口之家的贫困线标准是年收入两万多美元,表面上比中国家庭收入中位数还高很多,但光看收入数字会被误导。事实上,美国穷人家庭孩子面临的挑战比普通的中国孩子大得多。

    如果不幸生在美国的贫困家庭,你可能很难成为一个正常人。”

    说得好像生在中国的贫困家庭… #

  • Script to check and re-connect WiFi on Raspberry Pi: #!/bin/bash… http://bit.ly/1U38vpT #
  • RT @lianhuaxiaofo: 【天涯】【听君一席话 胜养十年猪】 听高人的一次聊天,他说:“中国大陆,完全有能力实行全民免费医疗与免费教育,为何不搞呢?”他说:“如果给了你免费医疗与教育,你就想要免费养老,若没了后顾之忧,你就会得寸进尺的要选票,要更多的福利!你就没有了… #
  • RT @lianhuaxiaofo: 【腾讯】会议上赫鲁晓夫声色俱厉地指责斯大林的错误。突然,下面有人递了张纸条上来:“你也是斯大林的同事,为什么你当时不阻止他呢?”“谁在这样问?!你马上给我站出来。”赫鲁晓夫怒吼道。会议厅内一片极度不安的寂静,没有人敢动弹一下。最后,赫鲁晓夫… #

Powered by Twitter Tools

via Chu’s Space http://bit.ly/1Un4i0B

Jun 30
 
#!/bin/bash
##################################################################
# A Project of TNET Services, Inc
#
# Title:     WiFi_Check
# Author:    Kevin Reed (Dweeber)
#            dweeber.dweebs@gmail.com
# Project:   Raspberry Pi Stuff
#
# Copyright: Copyright (c) 2012 Kevin Reed 
#            http://bit.ly/1LS2s1P
#
# Purpose:
#
# Script checks to see if WiFi has a network IP and if not
# restart WiFi
#
# Uses a lock file which prevents the script from running more
# than one at a time.  If lockfile is old, it removes it
#
# Instructions:
#
# o Install where you want to run it from like /usr/local/bin
# o chmod 0755 /usr/local/bin/WiFi_Check
# o Add to crontab
#
# Run Every 5 mins - Seems like ever min is over kill unless
# this is a very common problem.  If once a min change */5 to *
# once every 2 mins */5 to */2 ...
#
# */5 * * * * /usr/local/bin/WiFi_Check
#
##################################################################
# Settings
# Where and what you want to call the Lockfile
lockfile='/var/run/WiFi_Check.pid'
# Which Interface do you want to check/fix
wlan='wlan0'
pingip='192.168.1.1'
##################################################################
echo
echo "Starting WiFi check for $wlan"
date
echo
 
# Check to see if there is a lock file
if [ -e $lockfile ]; then
    # A lockfile exists... Lets check to see if it is still valid
    pid=`cat $lockfile`
    if kill -0 &>1 > /dev/null $pid; then
        # Still Valid... lets let it be...
        #echo "Process still running, Lockfile valid"
        exit 1
    else
        # Old Lockfile, Remove it
        #echo "Old lockfile, Removing Lockfile"
        rm $lockfile
    fi
fi
# If we get here, set a lock file using our current PID#
#echo "Setting Lockfile"
echo $$ > $lockfile
 
# We can perform check
echo "Performing Network check for $wlan"
/bin/ping -c 2 -I $wlan $pingip > /dev/null 2> /dev/null
if [ $? -ge 1 ] ; then
    echo "Network connection down! Attempting reconnection."
    /sbin/ifdown $wlan
    /bin/sleep 5
    /sbin/ifup --force $wlan
else
    echo "Network is Okay"
fi
 
echo
echo "Current Setting:"
/sbin/ifconfig $wlan | grep "inet addr:"
echo
 
# Check is complete, Remove Lock file and exit
#echo "process is complete, removing lockfile"
rm $lockfile
exit 0
 
##################################################################
# End of Script
##################################################################

转自:http://bit.ly/1R17JuC

via Chu’s Space http://bit.ly/1LS2uqx

Jun 28
  • Twitter Weekly Updates for 2015-06-21: – Twitter Weekly Updates for 2015-06-14: – Twitter… http://bit.ly/1GzzRgt #
  • 累啊,天气还热 #
  • RT @na_sheishei: RT @xiucai1911: 湖南某姓宋的警察发微博说:“不要动不动说你是纳税人,你缴了多少税?也不要说咱们花的是纳税人的钱。我一个月三千来块钱,是财政给的。”网友评:狗不认得主人,只认得喂食的仆人,这狗日的智商也太成问题了 。 #
  • 人民日报社副总编:我们脸书粉丝数仅次于纽时 http://bit.ly/1RF7qAR // 中国大陆都上不了的网站,你那460万的粉丝不是花钱买的僵尸粉吧? #
  • RT @fecable: 一天,菜场上多了一乞丐,有人给他钱,他把给钱的人都记了下来,过了几个小时,一辆宾利停他前面,他上了车,挨家挨户的还钱,而且是十倍的还。第二天,他又来了,满市场的人都给他钱,钱的背面都写着住址,不到一个小时,那乞丐能拿到七八千,后来那乞丐走了,没给任何人… #

Powered by Twitter Tools

via Chu’s Space http://bit.ly/1CBEMtr