如何透明的穿过跳板机

出于安全和管理方面的需要,许多公司的服务器必须通过跳板机才能登陆。也就是说像这样子:
假设我们定义3个名字:
localhost 代表工程师工作使用的一个ubuntu系统的pc机。
hopper 代表跳板机。
server 代表工程师想要登陆的服务器。

那么工程师需要在localhost上执行 ssh hoper,这样就进入了hoper服务器。然后再执行 ssh server,这样就登陆了server。
也可以这样: 再localhost上直接执行 : ssh -t hopper ssh -t server。直接一条命令就登陆到server。

当需要scp一些文件的时候则显得更加麻烦,要再hopper上建立一个临时目录,scp到hopper,然后再从hopper上scp到server。这简直是无法忍受的。

不过这样的方式都还是显得太过于麻烦。 还有更好的办法:

继续阅读“如何透明的穿过跳板机”

linux系统gateway的配置

几个vps(虚拟主机),只有一个拥有公网ip地址,所有的vps都拥有内网ip地址。其它的vps需要通过拥有公网ip的这个vps进行公网访问,以方便yum安装软件等需求。

在没有公网ip的vps上需要进行的设置:

/etc/sysconfig/network-scripts/ifcfg-eth0 文件中: GATEWAY=10.x.x.x

service network restart

到此完成。

 

接下来是拥有公网ip的那台vps上进行设置:

echo “1” > /proc/sys/net/ipv4/ip_forward

注意,这条命令是临时开启系统的转发功能,系统重启后会恢复为默认设置。 可以通过在/etc/rc.d/rc.local中加入上述命令,使之在系统启动时被执行。

打开iptables的nat功能:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

到此设置完成。

 

其它vps应该可以访问公网了。

(全文完)

linux中的sort

sort -t ‘,’ -g -k2 testsort.file

-t参数用于指定分隔符。如果不指定,默认为tab符和空格。
-g用于指定用数字排序,而不是作为文本排序。(比如34小于123,如果按文本排序,则是123小于34)
-k2指定按照第2列排序。 (列的分隔就时-t参数指定的)

如果需要倒序,可以加上-r参数。 如果要输出到文件而不是在控制台打印,可以加上“-o 目标文件”。

linux中的awk

每次要用awk时,总会想不起来它的写法和参数的格式。每次都要现查。这里记录一下。
awk是一个很复杂的工具,它的格式和参数很复杂。 在这里我只记录自己使用到的情形,以便以后查阅备忘。
之所以不去记录它的完整参数和用法,是因为发现许多人写的博客中有完整的用法,在那复杂的用法中,也许只有1%是我会用的。这道理很类似,我们可以man awk看到完整的用法,但是我却需要很长时间从man那全面的对awk的介绍中找出我所需要的这么一个最简答,最常用的用法。

more mcp_qd_http_access.log | awk -F ‘|’ ‘$9==0{print $7 “t” $8}’

我有一个日志文件,以|分割多列字段。
awk的-F参数用以设置字段之间的分隔符。 -F ‘分隔符’是可选的。
其后的”中是command。前部分的$9==0是判定,只有当第9列的值为0时,才执行后边的指令。
指令放在{}中。 这里时打印除了第7和第8列。 (这里的序列不是从0开始的, $0代表的时整个这一行的文本)。

(全文完)

KeepAlive简介

简单的说,keepalive就是保持连接不断开。 在我们的开发领域,有两个层面的keepalive:HTTP层面的和TCP层面的。

HTTP keepalive:
http层面的keepalive,也叫做connection reuse或persistent connection。 它指的是,在一个tcp连接上,收发多个http请求。而不是为每一次http请求/响应都建立新的TCP连接。
在HTTP 1.0协议中,没有明确的规范指明keepalive应该是怎样的。如果客户端支持keepalive,那么它在请求的header中会增加这样一个值:Connection: Keep-Alive。服务器在收到这个请求,并做出响应的时候,同样会在header中增加Connection: Keep-Alive。这样一来,这个连接就会被保持着而不被断开。当客户端要发起一个新的http请求时,将会重用这个连接。这个连接会一直保持着,直到客户端或服务器端主动断开。

在http1.1中,任何连接都被默认是持久(persistent)的,除非声明了不是。在Apache HTTP Server 2.0中,默认的timeout时间只有15s,而2.2版本则更短,为5s。较短的timeout时间的好处是,迅速传输一个web页面中的所有元素(css,图片等),而又不会因为需要更多的操作系统进程或线程而消耗系统资源。

继续阅读“KeepAlive简介”

Linux性能调优相关的工具

本文只记录我最常使用的一些工具和参数。至于这些工具所有的参数和用法,就不展开了,只需要man一下就有了。

===================

最常用的vmstat:

vmstat 1

======================

用mpstat查看每个cpu的使用情况:

mpstat -P ALL 1

======================
还有sar命令:

sar -P ALL 1

======================
iostat命令:

iostat -x 1

=======================
iptraf查看指定网卡的实时吞吐:

iptraf -d eth0

==============================================
tcpdump,查看来自或目标是去www.baidu.com的请求的数据包。


tcpdump -Sn -i eth1 host www.baidu.com

(-n是打印出点分十进制ip地址,而不用主机名或域名。S参数指定了使用绝对的seq而不是相对seq。 但是这个时候如果访问的是443端口,在抓包的结果中会显示为HTTPS。  -n参数仅仅能避免显示dns lookup主机名,而是显示ip地址。  如果需要显示port number而不是服务名,需要用 -nn)
这个命令只能查看tcp包的信息, 没有包的内容。 如果要查看内容,需要增加 -X 参数。

继续阅读“Linux性能调优相关的工具”