远程管理AC68U的正确方法

终于狠心买了华硕AC68U,刷入Merlin固件各种好用。但是远程web管理却一直不能正常使用。

与之前所有的路由一样,使用端口转发逃避电信对80端口的封锁,实现远程管理。但是在AC68U上无论用任何端口转发至80都无法访问。

中间有个小插曲,在测试其他端口是否被封的时候,选择了443端口,顺便把原先的HTTPS搭建起来。由于证书过期导致443转发也无法访问,我一度以为电信把所有端口都封掉了。后来更新了证书HTTPS就可以正常转发访问了。

那么转发80失败是什么愿意呢?其实AC68U的防火墙配置(或者是Merlin固件的配置?)默认是不允许外网访问的,即便只是允许外网访问80也是很不安全的,依然可以被暴力破解。

正确的访问方法是VPN。Merlin固件里已经集成了PPTP/L2TP和OpenVPN,设置起来非常简单。在其他终端VPN登陆服务器以后,再访问内网IP即可远程管理路由器。

Solidphp 2.0

新年快乐!
为了更方便快捷的开发web应用,更新了solidphp2.0,几乎是推倒重来的。
https://github.com/aurorax/solidphp

git使用socks代理

在win下没有找到类似tsocks的代理软件,又不想只为了一个git开vpn,可以用简单的一行git config开启socks5代理

$ git config --global http.proxy 'socks5://127.0.0.1:1080'

So easy!

mac osx使用homebrew安装tsocks

tsocks是一款在命令行下为其他软件应用代理的软件。

在mac下使用homebrew安装时会出现找不到formula的问题,homebrew的github上有这个问题的解决方法:
https://github.com/Homebrew/homebrew/issues/11870

作者给出了formula代码

require 'formula'

class Tsocks < Formula
  # The original is http://tsocks.sourceforge.net/
  # This GitHub repo is a maintained fork with OSX support
  homepage 'http://github.com/pc/tsocks'
  head 'https://github.com/pc/tsocks.git'

  depends_on 'autoconf' => :build if MacOS.xcode_version.to_f >= 4.3

  def install
    system "autoconf", "-v"
    system "./configure", "--prefix=#{prefix}", "--disable-debug", "--disable-dependency-tracking", "--with-conf=#{config_file}"

    inreplace("tsocks") { |bin| bin.change_make_var! "LIBDIR", lib }

    system "make"
    system "make install"

    etc.install "tsocks.conf.simple.example" => "tsocks.conf" unless config_file.exist?
  end

  def test
    puts 'Your current public ip is:'
    ohai `curl -sS ifconfig.me 2>&1`.chomp
    puts "If your correctly configured #{config_file}, this should show the ip you have trough the proxy"
    puts 'Your ip through the proxy is:'
    ohai `tsocks curl -sS ifconfig.me 2>&1`.chomp
  end

  def config_file
    etc / 'tsocks.conf'
  end
end

然后

$ vi /usr/local/Library/Formula/tsocks.rb

复制以上formula代码至此,然后命令行下

$ brew install --HEAD tsocks

安装成功后

$ vi /usr/local/etc/tsocks.conf

添加代码

server = 127.0.0.1 #代理地址
server_type = 55即socks代理
server_port = 8080 #代理端口

然后即可在命令行对任意软件应用代理

$ tsocks wget https://google.com

openwrt:tp-link 703n v1.6 failsafe模式

刚搬家不久,拿出来很久不玩的703n,放门厅给卫生间提供wifi信号(新房子布局很奇葩),手贱把lan和wan的地址改成一样的了…

然后就是翻openwrt:
http://wiki.openwrt.org/zh-cn/toh/tp-link/tl-wr703n#failsafe_mode
我的版本是v1.6,开机等待亮灯迅速按reset,灯快闪,即进入failsafe模式。
这里关于failsafe的wiki页面有一个地方不适用703n:
http://wiki.openwrt.org/doc/howto/generic.failsafe
其中说灯快闪以后还要广播一个udp包,其实对于703n是不需要的。还有一个不适用703n的地方是要拔掉wan口,703n就只有一个wan口,拔掉要怎么连…wan口连好pc,pc设置固定ip段192.168.1.0/24,直接在快闪的时候就可以telnet 192.168.1.1。进入系统默认是只读的,需要

$ mount_root

然后就想怎么改怎么改了。

GnuTLS: Libnettle 2.x was not found

在安装gnutls的时候如果遇到“Libnettle 2.x was not found”,一般有两个原因。

1.nettle未安装
这个比较简单,默认centos

$ wget http://ftp.gnu.org/gnu/nettle/nettle-2.x.x.tar.gz
$ tar zxf nettle-2.x.x.tar.gz && cd nettle-2.x.x
$ ./configure && make && make install

其中2.x.x为所需的版本号,安装完毕即可继续安装gnutls。

2.环境变量
这个我花了一段时间才搞明白,一般出现在64位系统中,如果nettle没有安装在默认位置,而是“—prefix=/opt”,则须修改环境变量,以“—prefix=/opt”为例

$ export LD_LIBRARY_PATH=/usr/lib/:/usr/lib64/:/opt/lib/:/opt/lib64/ NETTLE_CFLAGS="-I/opt/include/" NETTLE_LIBS="-L/opt/lib64/ -lnettle" HOGWEED_CFLAGS="-I/opt/include" HOGWEED_LIBS="-L/opt/lib64/ -lhogweed"

然后即可安装gnutls。

占卜

在咖啡馆泡了一天,无意间发现旁边两个人在占卜,顿时来了兴趣,偷听了一会。

大概是这个人生活中出现了某些问题(应该是感情上),然后找这个人来占卜。通常来说我不相信占卜,偷听了一会觉得其实这类服务应该还是有帮助的。那个占卜的人(我不知道应该叫什么,算卦先生?),问的最多的问题是“你觉得这是什么?”,所以我觉得,占卜发展到现在应该算作一种情感服务,从随机的图形或者图案中了解被占卜人的内心,从而提出建设性的解决方案。通常来说让处在问题中的人清楚的描述问题,或者清楚的认识所处的环境,几乎是不可能的。但是占卜作为一种玄学,或者说心理游戏,可以从不携带感情因素的无意识行为,透露出被占卜者内心隐藏的东西,不敢说有没有科学道理,但至少对需求者来说是有帮助的。

重点是占卜者有非凡的理解能力,丰富的阅人经验以及丰富的占卜经历,通过对不同图案和不同解释的分析,得出被占卜者的问题所在,并给出可行的解决方案。如果做不到以上,想有市场就只能靠瞎掰,对需求者以点帮助都没有。

所以,占卜这件事,其实和心理咨询提供解决方案是差不多的,占卜只是一种途径,更重要的是解决问题的能力。

print大法好

有些程序,虽然编译通过,却不像预想中那样运行,这个时候可以用print/printf来查找错误,只需要在恰当的位置,print你想看的的数据,就可以轻易发现哪里出错。

print为什么好,因为它可以将程序中的一切数据,不加处理,即刻呈现给开发者,让开发者知道哪些数据是对的,哪些数据是错的。

换句话说print可以让我轻易的发现程序的漏洞。

同样的情况也适用于人,有些人话说的太多,不假思索。就好像一段程序中有太多的print,把大脑中的思想不加处理,无时无刻,一五一十的呈现给别人。

换句话说会让别人轻易发现你的漏洞。

乐观的情况大家会说这个人单纯,但更多时候是祸从口出。

一段程序,看不到源代码,也不随意print,没有人能找到它的漏洞。同样,一个人,如果不乱print,没有人能看人的源代码,那么没有人能轻易找到这个人的漏洞。

2014年终总结

哈哈,这是我1月16号补上的。

过去的一年,关键词就是浮躁,凡事都不能踏下心来安心去完成,总是做着这件事想着那件事。这是个大问题,新的一年希望能安下心来,努力完成自己制定的计划。有时候想太多是没用的,甚至连未雨绸缪都不是。

还有2015年要好好学习,把想学的东西都学到,知识体系有质的提升。

最后就是,不管想到什么都写下来,努力维护好这个博客,也是提高自己的表达能力。

不过就1月上半个月博客的更新情况来看,最后这一条应该是要跪…努力完成吧:P

新年快乐!

ubuntu14.04修改文件的默认打开方式

在ubuntu中默认的文本文档打开方式是gedit,想更换为eclipse。
首先确认/usr/share/applications下是否有eclipse.desktop文件,若没有创建。

$ vim eclipse.desktop

键入

[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=eclipse
Exec=eclipse
Terminal=false
Categories=Development;IDE;Java;

保存退出。
14.04默认界面为gnome,则修改gnome下的default.list

$ vim /etc/gnome/default.list

找到

text/plain=gedit.desktop

这是默认文本文件的设置项,修改为

text/plain=eclipse.desktop

保存退出即可。
若遇到图标不正常,修改eclipse.desktop中Icon项,使其指向eclipse图标

Icon=/usr/share/pixmaps/eclipse.png

若不能正常打开eclipse,修改eclipse.desktop中Exec项,使其指向eclipse执行文件

Exec=/usr/bin/eclipse