Akawa

ETY001的博客

基本参数:

* -L [bind_address:]port:host:hostport
* -L [bind_address:]port:remote_socket
* -L local_socket:host:hostport
* -L local_socket:remote_socket
* -R [bind_address:]port:host:hostport
* -R [bind_address:]port:local_socket
* -R remote_socket:host:hostport
* -R remote_socket:local_socket
* -C 压缩
* -g global forward 全局转发,否则只能绑定到127.0.0.1
* -R 远程转发
* -L 本地转发
* -f 后台认证用户/密码,通常和-N连用,不用登录到远程主机
* -N 不执行脚本或命令,通常与-f连用。

前置配置

如果用的是 openssh ,先设置 远端服务器GatewayPortsyes,否则 远程映射 时,
在远端无法绑定到 0.0.0.0

本地映射

通过参数可以看到,除了端口外,还支持socket文件映射,所以有四种方式。

理解起来,就是把远程的端口映射到本地,我们的访问是从本地的端口开始的,最终目的地是远程端口。

解决的问题是,远程主机的防火墙只开放了 22 端口,而我们要访问远程主机的其他端口,比如 5900

参考命令:

1
2
3
# 192.168.1.1 是远程主机的内网IP
# 1.1.1.1 是远程主机的公网IP
ssh -CfNgL 15900:192.168.1.1:5900 [email protected]

远程映射

通过参数可以看到,除了端口外,还支持socket文件映射,所以也有四种方式。

理解起来,就是把本地的端口映射到远端,我们的访问是从远端的端口开始的,最终目的地是本地端口。

解决的问题是,本地主机没有公网IP,而我们需要从公网访问到本地的某个服务。

需要在远程主机端的 sshd_config 中启用 GatewayPorts。

参考命令:

1
2
3
4
# 192.168.1.1 是本地主机的内网IP
# 1.1.1.1 是远程主机的公网IP
# 访问远程主机的12222端口相当于直接访问了本地22
ssh -CfNgR 12222:192.168.1.1:22 [email protected]

其他

如果你的远程服务器的 ssh 端口不是默认的 22,比如是 2233, 
那么直接加上 -p 2233 参数即可。

在centos下编译安装shadowsocks-libev,需要先安装必要的依赖,命令如下:

1
yum install -y gcc automake autoconf libtool make build-essential autoconf libtool gcc curl curl-devel zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel git asciidoc xmlto

然后克隆下源代码,

1
git clone https://github.com/madeye/shadowsocks-libev.git

从源码编译安装

1
2
3
cd shadowsocks-libev
./configure
make && make install

这样即可编译好一个新的ss,所有程序是以ss-开头,其他系统下面的编译安装,请参考
https://github.com/madeye/shadowsocks-libev

使用 brew 安装完 nginx 后,想用 launchctl 来实现 nginx 的开机自启动。
但是由于 80 端口属于 1–1024 间的端口,需要 root 权限,于是执行下面两条命令,
即可让普通用户也可以建立80端口。该方法其实就是给 nginx 加上 s 操作权限。
让普通用户可以以 root 权限执行。

1
2
sudo chown root:wheel /usr/local/Cellar/nginx/1.2.6/sbin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.2.6/sbin/nginx

在使用ubuntu的apt-get安装php-fpm的时候,默认的nginx配置文件的php相关部分少了如下一行代码

1
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

把这行代码加在 include fastcgi_params; 之前即可。

最近项目需要做一个欢迎页,效果差不多就是有点PPT的样子,然后用鼠标滚轮可以控制页面切换。

在实施过程中,遇到的问题就是jquery的 mousewheel 事件触发的机制让人太纠结了。

由于我们一般滚动了 x° 的圆心角才认为是滚动了一次,而计算机在滚动 x° 的过程中,只要有度数的变化,
就会触发一次事件。这个在回调事件的第二个参数即可看出来,第二个参数叫做 delta,即变化量。
也就是说这个变量其实是存储的从开始滚动到当前滚动位置,滚动过的一个类似圆心角的值。

那么我们就需要在这个回调函数里面去做文章,让我们意识中的滚动一次能实现出来。

具体的方法是,加入一个全局变量,来记录每一次的滚动开始,并且每次开始后的一秒内,
不再执行回调函数,直到1秒钟的时候重置这个全局变量。之所以设置一秒是因为我们平时的习惯,
差不多就是1秒钟滚动一次滚轮。代码差不多就是下面的这个样子:

window.is_wheel = false;
$('body').bind('mousewheel', function(event, delta) {
  if(window.is_wheel==true)return;
  window.is_wheel = true;
  setTimeout(function(){
    window.is_wheel = false;
  }, 1000);

  if(delta > 0){
    next_page();
  } else {
    prev_page();
  }
  return false;
});

这样,频繁触发的问题就解决了。另外需要注意的是,如果翻页是个动画效果,那么请把翻页动画效果的时间设置在一秒内,
因为可以保证每次滚动滚轮只执行了一次翻页操作,即翻页动画的回调函数也会按照预期顺序执行。

自 Chrome 21.x 开始默认只允许从 Chrome Web Store (Chrome 网上应用店)安装扩展、应用及脚本,
虽然此举增强了安全性但也给众多依赖油猴及 Stylish 脚本的用户造成了很大的不便,
那么现在应当如何在谷歌浏览器安装 Web Store 外的第三方扩展程序呢?

以下三种方法将可解决“只可添加来自Chrome网上应用店的扩展程序、应用和用户脚本”的问题。

方法一、本地拖放安装

1. 下载扩展程序/脚本程序至本地计算机;
2. 将其直接拖拽到浏览器的“扩展程序”页面(设置-扩展程序)即 chrome://chrome/extensions 页面。

方法二、开启浏览器支持

右击 Chrome 桌面快捷方式,选择-”属性”-”快捷方式”,
然后在”目标”一栏尾部添加参数 -enable-easy-off-store-extension-install ,
然后再运行浏览器
就可以像以前那样正常安装 Web Store 之外的第三方扩展应用及脚本程序了。

方法三、开发模式安装

也是先将扩展程序下载保存到本地,
然后将下载来的文件后缀名*.crx 改成*.rar,
这样你就得到了一个压缩文件,
然后右键解压这个压缩文件得到一个文件夹。
然后在浏览器里打开扩展程序页面( chrome://settings/extensions),
选中右上方开发人员模式复选框,
然后再点击左上方的”载入正在开发的扩展程序“按钮,
选中刚刚解压出来的文件夹然后点确定即可

经过两周业余时间的努力,终于把三年前的一个坑填上了。

这是2012年年中的时候的一个想法,http://gurudigger.com/ideas/522
简单来说就是利用零碎的时间来整理我们的收藏夹。

附上应用地址:https://chrome.google.com/webstore/detail/review-bookmarks/oacajkekkegmjcnccaeijghfodogjnom

如果你觉得这个工具对你有帮助,欢迎 捐助我 ~~

0%