Blog

centos7+qemu-kvm+webvirtmgr搭建kvm管理平台之NAT小鸡设置(三)

   前两篇文章说了kvm+webvirtmgr的搭建和kvm小鸡的创建,如果是有多IP的话我没弄过,现在就说说只有一个ip的情况下如何进行nat小鸡的端口转发。

   linux下端口转发有几种方式,大概有iptables、socat、 haproxy 、frp等,dane用的是haproxy,据他说frp也是可以的,我最后用的是socat,下面就说下socat怎么弄。

先安装socat

yum install socat -y

然后shell执行以下命令

nohup socat TCP4-LISTEN:2022,reuseaddr,fork TCP4:192.168.122.201:22  >> socat.log 2>&1 &

简单说下以上命令,就是在母鸡上将公网ip的2022端口转发到小鸡的22端口,这样就可以用xshell等工具通过公网的2022端口访问小鸡的22端口了。

为了避免socat进程被杀或者重启母鸡后socat不运行,我弄了个简单的监控脚本。

cat >/root/socat.sh <<EOF
#!/bin/sh
pid=`ps aux| grep "socat" | grep -v grep | sed -n  '1P' | awk '{print $2}'`
if [ -z $pid ]; then
      nohup socat TCP4-LISTEN:2022,reuseaddr,fork TCP4:192.168.122.201:22  >> socat.log 2>&1 &
        exit 1
else
        echo -e "exist ,don't need restart"
fi
EOF

写入定时任务

echo "0 */2 * * * /bin/sh /root/socat.sh" >> /var/spool/cron/root

可以通过以下命令查看是否运行。

ps -ef | grep socat

如果要结束,可以使用kill命令结束进程。如以下运行结果

root     19956     1  0 00:08 pts/3    00:00:00 socat TCP4-LISTEN:2022,reuseaddr,fork TCP4:192.168.122.201:22

执行kill -9 19956就可以结束运行。



以下是dane使用haproxy的配置文件,有兴趣的也可以参考下。

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 600
        timeout client 5m
        timeout server 5m
frontend 3389-in
        bind *:3389
        default_backend 3389-out
backend 3389-out
        server server1 198.168.122.8:3389 maxconn 20480

特此感谢群友@dane在搭建过程中的大力帮助,以及参考了《kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)》

没有评论

Leave a Reply