用 Netgear WNDR4300 打造翻墙路由器

VPS 推荐: BandwagonHost 前提:1. 有一台境外的 VPS 服务器,并且安装了 ShadowSocks 服务且能正常使用,如无特别说明,下文中将以 x.x.x.x 代表 VPS 的 ip ; 2. 熟悉路由器网络的基本配置。 家里联网设备逐渐多了起来,最近又添加了两台电视,有必要实现路由器端自动翻墙,提供自由的网络。经过一番调研,决定入手 Netgear WNDR4300 并刷 OpenWrt ,再装 ChinaDNS 和 ShadowSocks 。 这里 罗列了可以刷 OpenWrt 的设备,听说 Netgear 比较稳定,加上宽带现在是 100M,以后可能还会再升,还需要 2.4G 和 5G 双频支持,综合考虑,选定了 WNDR4300。 WNDR4300 自带的固件速度比较慢,至少从路由器的管理界面的反应速度来看是这样的,点个链接都要等老半天,完全不适合现代生活的快节奏。因此第一件事就是刷 OpenWrt 。 初看 这个页面,以为只能刷 Barrier Breaker 14.07 版本,结果 ShadowSocks 安装报错,查了下说是 OpenWrt 版本太低,于是升级到了 Chaos Calmer 15.05 版本。后来者就没必要走着弯路了,直接下载 15.05 官方固件,通过网页管理界面直接刷入,等几分钟路由器自动重启即可成功,一般不会出问题。 刷了 OpenWrt 后,就可以 telnet 登录路由器了,ip 是 192.168.1.1,用户名是 root,密码为空,然后执行 passwd 修改密码。成功后 telnet 功能即被禁用,需要 ssh 登录。也可以打开浏览器,访问 http://192.

用 strongSwan 搭建 IPsec IKEv2 VPN

VPS 推荐: BandwagonHost Shadowsocks 大部分时候都能满足翻墙的需求,只是最近感觉速度有点变慢,偶尔还出现错误,不知道是不是因为墙又加高了。以防万一,需要开发其它的翻墙姿势。 下面介绍用 strongSwan 搭建 IPsec IKEv2 VPN。服务器端是 CentOS 7,其它 Linux 发行版的话只需要做相应修改即可。客户端是 Windows 和 Android 。 1. 安装 strongSwan A. yum 安装 直接 yum 安装的话版本可能会比较老,可以从 这里 下载编译好的 RPM 包。或者使用 testing 源安装: wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -Uvh epel-release-7-5.noarch.rpm yum --enablerepo=epel-testing install strongswan 这样安装后的 strongSwan 可执行文件是 /usr/sbin/strongswan,配置文件在 /etc/strongswan 下。 B. 源码编译安装 (推荐) 推荐直接从源码安装,因为这样能用上最新版,而且编译安装极其简单方便。 安装依赖包 yum install gmp-devel openssl openssl-devel 从 strongSwan 官网 下载最新版本源代码,当前是 5.3.3,并用 md5sum 命令校验。

Python 列表乘运算的一个陷阱

先来看下面这段代码: a = [[]] * 2 a[0].append(1) 也许你期望 a = [[1], []],然而,实际上 a = [[1], [1]]。 为了进一步分析原因,可以把 a 中每个元素的 id 打印出来: a = [[]] * 2 print [id(x) for x in a] a[0].append(1) print [id(x) for x in a] 一种可能的输出结果是: [140596116844416, 140596116844416] [140596116844416, 140596116844416] 可以发现,a[0] 和 a[1] 的 id 在修改 a[0] 前后都是一样的,也就是说,它们是对同一个对象的引用,修改 a[0] 同时也就修改了 a[1]。 不过这样说也不完全对,不妨来看下面这段代码: a = [1] * 3 print [id(x) for x in a] print a a[0] += 1 print [id(x) for x in a] print a 可能的输出结果是: