SSH作为Socks代理的简单方法

VPN在实际使用中也不一定方便,如果只是想简单上个网,恰好在国外又有可以ssh远程登录的服务器,那么可以很方便的将ssh作为隧道转化成Socks代理,具体方法如下:

Windows下操作:

在 putty 中设置好要登录的服务器 ip,并在“连接-SSH-通道”中设置:源端口6080 动态 自动,然后增加
保存后打开,使用账号和密码登录,这样就建立好 socks 5 代理.
在相关软件中设置好代理参数 socks5: 127.0.0.1:6080 后便可以使用.

Xshell 类似,在 SSH Tunnnel 里面设置,选择 Socks5.

Mac 和 Linux 中操作:

在终端中运行 ssh -D 6080 user@theserver ,然后在浏览器或者软件中设置好代理参数 socks5: 127.0.0.1:6080 后便可以使用.

推荐浏览器设置

推荐使用 Firefox 和 Chrome 等,然后安装相应的proxy一键切换工具,如 Chrome Falcon Proxy; Firefox Proxy Selector 等。 当然,如果自己写一个 pac文件来自动控制哪些网站使用proxy,那就不属于本文的范畴了。

Brew your software in OS X

安装 brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

查找软件

brew search netcdf

查看软件信息

brew info netcdf

安装软件

brew install ncview gfortran cdo grads wget axel parallel

值得注意的是,brew会自动解决依赖问题,如ncview依赖netcdf,那么他会自动先安装netcdf,然后再安装ncview

如果编译一个软件需要参数,那么可以直接加上这些参数,如:

brew install --enable-fortran

安装小众软件

brew 目前将比较小众的一些软件分门别类,cdo 属于science类,同样地 ncview、netcdf等也属于这一类,而grads则分到binary 类,这类小众软件的formula默认是不下载的,需要预先“提取”一下:

brew tap homebrew/science homebrew/binary

自己创建brew安装包

如果需要的软件暂时还没有进入官方维护包内,那么可以创建一个新的 brew formula (以cdo为例, 更新:cdo目前已经正式进入官方的list中,因此不需要再手动创建,而只需要运行 brew install cdo 就好了)

brew create https://code.zmaw.de/attachments/download/2372/cdo-1.5.4.tar.gz

创建好了以后,修改 Formula文件,解决一些依赖问题

brew edit cdo

写入以下内容(依赖 netcdf, hdf5, proj)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'formula'
class Cdo < Formula
url 'https://code.zmaw.de/attachments/download/1690/cdo-1.5.2.tar.gz'
homepage ''
md5 'a01826b7c2906579f17c6dbc7d619479'
depends_on 'netcdf' # 这几句是手动添加的,增加依赖关系
depends_on 'hdf5'
depends_on 'proj'
def install
hdf5 = Formula.factory 'hdf5' # 这几句是手动添加的,增加依赖关系
netcdf = Formula.factory 'netcdf'
proj = Formula.factory 'proj'
system "./configure", "--with-hdf5=#{hdf5.prefix}","--with-proj=#{proj.prefix}","--disable-debug", "--disable-dependency-tracking","--with-netcdf=#{netcdf.prefix}", "--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
def test
# This test will fail and we won't accept that! It's enough to just
# replace "false" with the main program this formula installs, but
# it'd be nice if you were more thorough. Test the test with
# `brew test cdo`. Remove this comment before submitting
# your pull request!
system "false"
end
end

然后就可以编译安装啦

brew install cdo

OSX: can't open X11 display

由于苹果公司果断放弃了自己维护 X11.app,只能用 XQuatz 来替代。但是在使用 XQuartz 的过程中经常遇到一些问题,比如环境变量的设置问题。今天遇到一个问题就是,自己点击安装的 XQuartz.app 是能正常运行的,但是在终端里面使用 xeys、GrADS 等软件的时候报错:“can’’t open display”。

大部分情况下,如果正确安装了 XQuartz 但是遇到这个问题的话,很可能是配置文件没能正确地起作用。

If XQuartz were installed and you can launch it, while can’t launch it in terminal, then you may solve it by:

1
2
3
launchctl unload -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
reboot

Then it should work!.

问题解决。

Mavericks apache2 issue after Server 3 removed

After remove Server.app, my apache2 on Mac OS X 10.9.2 Mavericks couldn’t start normally while everything looks OK. After carefully studied the log file through Console.app and looked into the content of /usr/sbin/apachectl, I realized that the starting process of apache in OS X is quite different than that in Linux: it uses launchctl!

So, I searched the apache launchctl config file:/System/Library/LaunchDaemons/org.apache.httpd.plist. Aha! it said:

1
2
3
4
5
6
7
8
9
10
11
12
<key>SERVER_INSTALL_PATH_PREFIX</key>
<string>/Applications/Server.app/Contents/ServerRoot</string>
......
and
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/httpd</string>
<string>-D</string>
<string>FOREGROUND</string>
<string>-f</string>
<string>/Library/Server/Web/Config/apache2/httpd_server_app.conf</string>
</array>

The key SERVER_INSTALL_PATH_PREFIX and ProgramArguments were modified by Server.app aparently. Just recover them to /usr and /etc/apache2/http.conf, there, it works again!

Mac OS X 启用root用户

虽然一般情况下 Mac 下面不需要 root 权限的,配合 sudo 基本可以走天下,但是也避免不了一些奇葩的然则又必须使用的软件需要 root 用户才行,比如有的网页 VPN 必须绑定 22 号端口!(真奇葩!!),那么使用如下步骤可以启用 root 账户。

  1. 从 Apple 菜单中选取系统偏好设置…。
  2. 从显示菜单中选取用户与群组。
  3. 点按锁图标并使用管理员帐户进行鉴定。
  4. 点按“登录选项…”。
  5. 点按右下部的“编辑…”或“加入…”按钮。
  6. 点按“打开目录实用工具…”按钮。
  7. 点按“目录实用工具”窗口中的锁图标。
  8. 输入管理员帐户名称和密码,然后点按“好”。
  9. 从编辑菜单中选取启用 Root 用户。
  10. 在“密码”和“验证”字段中输入您想要使用的 root 密码,然后点按“好”。

OK, 搞定!

OSX Mavericks 输入特殊字符

调用字符显示程序

在 Mavericks 之前的 OSX 中,输入特殊字符可以使用 ⌘+⌥+T,调用字符显示程序,但在最新的 Mavericks 中,快捷键变为了 ^+⌘+Space

注音字母

在英文输入状态下,按住键盘上的某些字母键可以实现给该字母添加注音或者是临时输入一些带注音符号语言的功能,如长按 E 会弹出选择”E È É Ê Ë “ 等字符的选项。

使用软键盘

在输入法图标上选择“选择键盘显示程序”,会出来一个软键盘,按住 Option 键,可以选择输入一些特殊字符。

使用快捷键

1
2
3
4
= ⌥+⇧+K
· = ⌥+⇧+9
‰ = ⌥+⇧+r
€ = ⌥+⇧+2 等

通过“符号和文本替换”

预先在“系统偏好设置”,点击“语言与文本→文本→列表下方的加号按钮”,然后在“替换”框中输入要替换的文本,比如 cmd,在“使用”框中输入替换为的文本或符号,比如⌘,此时当你在文本中输入 cmd 的时候即可自动将 cmd 替换为⌘,而不需要做其他事情。当然,你也可以添加更多的符号替换,比如输入 apple 自动替换为,将 opt 自动替换为⌥等等。