CentOS上端口转发方案之HAProxy

端口转发的实际使用场景很多,比如说load balance,比如说流量中转

所谓的端口转发,是发生在网络协议的第四层,TCP/UDP层,也就是IP层面

所以一般来说有这么几个解决方案:

iptables: 系统原生底层的解决方案,配置比较麻烦。但是如果使用CSF来配置iptables,这是非常简单的

HAproxy: 性能比iptables高,配置简单,但是只支持TCP,不支持UDP. 但是如果不玩游戏的话,TCP的端口转发就足够了。

因此这篇文章主要讲述如何使用HAProxy来做流量中转.

底层操作系统是CentOS 7,系统的repo自带haproxy,版本比较老(1.5.18)但是足够用了

安装haproxy:

yum install haproxy

systemctl enable hapoxy

配置haproxy:

cd /etc/haproxy
mv haproxy.cfg haproxy.cfg.bak
vi haproxy.cfg

然后输入下面的配置:

global
ulimit-n 51200
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon

defaults
log global
mode tcp
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
maxconn 20480

frontend v2
bind *:443
default_backend v2

backend v2
server v1 A.A.A.A maxconn 20480

frontend rdp
bind *:3389
default_backend rdp

backend rdp
server r1 B.B.B.B maxconn 20480

上图表示把把这台服务器的443端口的流量转到A.A.A.A的443端口上,把这台服务器的3389端口流量转到B.B.B.B的443端口上

配置好以后,下面只需要开启haproxy服务就好了

systemctl start haproxy