前两篇文章说了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)》
评论前必须登录!
注册