21 September 2012

因为公司限制在开发机只能访问IDC内特定端口,比如80端口,为了能在开发机访问,之前用ssh端口转发。但是公司的安全策略又不允许sshd启动在80这样的端口上,因此在使用了一段事件后,就不停的被安全中心骚扰,要求停掉80端口上的sshd。

无奈只能找其他的软件做端口转发,之前尝试过haproxy,它有tcp的模式,可以用来做转发。配了以后,发现很容易客户端段和服务端断掉,往往交互一两个命令后,就断掉了。

今天又尝试了一下,终于成功了。原来之前的timeout值设置的太小,改大后,功能稳定。

下面是配置:
global
maxconn 40000
# debug
#quiet
user allison
group users
nbproc 1
log 127.0.0.1 local3
spread-checks 2
defaults
option srvtcpka
option clitcpka
option tcpka

#以下几个timeout值注意不能设置太短
timeout server 300s
timeout connect 300s
timeout client 300s
timeout http-request 300s
timeout queue 300s
listen pg_for_ide pg_host:80
mode tcp
option persist
server pg pg_ip:5432 weight 256

haproxy配置项很多,功能也很强大,有时间再细细研究一下。

参考信息: haproxy官网:http://haproxy.1wt.eu/