ssh 端口转发。
作用:
1 不同的内网之间互联;
假设有 2 台在不同网段之间的机器需要连接,那么在 A 网段用一台机器 ssh 到公网 abc.com 上,绑定一个 abc.com 的端口 x 到 A 网的任意 ip:port,
然后在任意地方访问 abc.com:x 就等于访问之前绑定的 A 网段的 ip:port,这样,几乎任何服务都可以传递过来,包括远程连接,打印机等
2 发布本地服务到外网;
跟上面类似,只要将远程主机的端口绑定到本地机器即可。
3 欺骗程序(比如 RDC 的 mac 版本不能指定端口,如果服务器设置了非默认端口,则可以通过 ssh 在本机转发一下);
这个纯粹的是做端口转发,本机就可以搞定。
4 用作代理服务器。
用到 -D 参数,配合 pac 文件很好用。
参考:
理解这个得到 agentzh 的大力帮助。
这篇文章也比较好。
Showing posts with label shell. Show all posts
Showing posts with label shell. Show all posts
Sunday, June 21, 2009
神奇的 ssh 端口转发
Monday, March 9, 2009
gnu coreutils 之 tar
windows 下我们用 winRAR 来压缩、打包文件,相当爽。
不过,不知大家发现没有,其实用 winRAR 压缩时选择 zip 格式通常会快很多(代价是会比 rar 格式大一些,不过差不多少)。
不过,不知大家发现没有,其实用 winRAR 压缩时选择 zip 格式通常会快很多(代价是会比 rar 格式大一些,不过差不多少)。
在 unix 类系统下面,打包压缩通常就是 tar 了。曾经经过相当长时间的折磨,现在来总结一些 tar 的用法。那是相当的简单。
tar cf abc.tar f1.txt f2.txt
命令 [tar] + 压缩命令 [c] + 指定文件命令 [f] + 指定的文件名 [abc.tar] + 要压缩的文件列表 [f1.txt f2.txt]
以上就把 f1 和 f2 两个 txt 文件打包到 abc.tar 里了。这里比较怪异的是 abc.tar 跟 f1.txt 加上 f2.txt 一样大,没有压缩。是不是很逊?还好,继续。
tar zcf abc.tar.gz f1.txt f2.txt
在刚才的命令中加一个 [z],把文件名改一下,那么这个打出来的包就是压缩过的了。
为啥来,因为 [z] 的意思是打包的同时给压缩一下,压缩成 gzip 格式。
tar 内置支持的格式还有一个,比较厉害 bzip2。
tar jcf abc.tar.bz2 f1.txt f2.txt
把上面命令里的 [z] 换成 [j] 即可。
通常,这样压缩出来比 gzip 要小一点(当然,更加耗时),喜好哪种格式看各位吧。
通常,这样压缩出来比 gzip 要小一点(当然,更加耗时),喜好哪种格式看各位吧。
要压缩的文件列表也可以加文件夹进去,那么这个文件夹就可以打包了。
然后看如何解压缩。
然后看如何解压缩。
tar xf abc.tar
命令 [tar] + 解压命令 [x] + 指定文件命令 [f] + 指定的文件名 [abc.tar]
这个命令就会把包里文件释放出来了。
如果我之前压缩成 gzip 了怎么解压呢?
tar zxf abc.tar.gz
告诉 tar 这个文件是 gzip 格式就行,就是加一个 [z] 参数。
同理
tar jxf abc.tar.bz2
OK,
基本上都搞定了。
还是比较简单的。吧?
再说一些吧,
打包的时候尽量打包目录,这样别人解压缩的时候就不会解压出一堆文件,看的眼花缭乱。
上面各个示例命令的参数里面可以再加一个 v,
可以显示 tar 工作的详细内容,否则他就悄悄的干活,干完了就跑了,你也不知道他都干了些啥。
tar vjxf abc.tar.bz2
应该挺简单的吧。
我学习的时候最先看到的就是最长的 4 个参数一起,根本搞不清都啥跟啥,只能每次用的时候现查。
希望这些文字可以帮助你快一点掌握 tar 的用法。
:)
Wednesday, February 18, 2009
[译] 使用 ssh 执行远程命令
原文:Run Remote Commands with SSH
ssh 是一个神奇的工具。
你可以使用它连接2台电脑,或者在不登录到终端的情况下在远程机器上执行一段命令。
下面演示如何查看系统磁盘使用情况:
root@admin:~ # ssh root@www 'df -h' Filesystem Size Used Avail Use% Mounted on /dev/ubda 3.5G 2.1G 1.4G 61% / tmpfs 96M 4.0K 96M 1% /dev/shm
是不是很神奇,但好像不是非常有用。 如果你在多台服务器上配置好 public/private key pairs,然后就可以肆意在那些机器上。具体情况,下回分解。
现在呢,你可以通过已有的知识来做很多事情,比如查询服务器上 web服务 的进程数,而不用登录到服务器上然后敲入那些命令。 你要做的只是将要执行的命令用引号引起来然后放到 ssh 命令后面,就行了。 下面给出一个例子:用 root 帐号登录到服务器并查询服务器上的所有进程,将结果通过 pipes 传给本地,通过 grep apache 获得所有 apache 进程,然后通过 grep -v grep 过滤掉 grep apache 命令本身,这样就只剩下 apache 进程了,然后通过 wc -l 就能得到所有的 apache 进程数了。
root@admin:~ # ssh root@www 'ps -ef | grep apache | grep -v grep | wc -l' 11
或者看看如何显示系统的资源使用情况和最占用 CPU 的进程:
root@www:~ # ssh root@www 'top -b -n 1 | head -n 8' top - 11:01:04 up 20 days, 6:47, 1 user, load average: 0.44, 0.21, 0.09 Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie Cpu(s): 1.7% user, 1.5% system, 0.0% nice, 96.8% idle Mem: 195620k total, 186276k used, 9344k free, 16380k buffers Swap: 525304k total, 516k used, 524788k free, 26912k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7399 root 19 0 936 936 740 R 9.2 0.5 0:00.20 top
或者只是看看都谁登录呢:
root@www:~ # ssh root@www 'who' brock pts/0 Oct 21 10:31 (75.72.194.149) jim pts/1 Oct 25 06:25 (128.101.163.128)
如果你想知道怎么样才能在执行上面命令的时候不用输入密码,你可以看看这一篇 设置 SSH keys ,下次登录就不用输入密码了
Subscribe to:
Posts (Atom)