Socat 不支持端口段转发,只适用于单端口或者少量端口
- tcp转发
监听 0.0.0.0网卡的 15672 端口,并将请求转发至 172.17.0.15 的 15672 端口。
$ socat -d -d -lf /var/log/socat.log TCP4-LISTEN:15672,bind=0.0.0.0,reuseaddr,fork TCP4:172.17.0.15:15672
1. -d -d 前面两个连续的 -d -d 代表调试信息的输出级别。
2. -lf /var/log/socat.log 指定输出信息的文件保存位置。
3. TCP4-LISTEN:15672 在本地建立一个 TCP IPv4 协议的监听端口,也就是转发端口。这里是 15672,请根据实际情况改成你自己需要转发的端口。
4. bind 指定监听绑定的 IP 地址,不绑定的话将监听服务器上可用的全部 IP。
5. reuseaddr 绑定一个本地端口。
6. fork TCP4:172.17.0.15:15672 指的是要转发到的服务器 IP 和端口,这里是 172.17.0.15 的 15672 端口。
- upd转发
只要把 TCP4 改成 UDP4 就行了。
$ socat -d -d -lf /var/log/socat.log UDP4-LISTEN:123,bind=0.0.0.0,reuseaddr,fork UDP4:172.17.0.15:123
另外这个可以搭配supervisord把服务作为自启动
例子:(注意这个例子有点问题,请参考官方的案例)
cat /etc/supervisord.d/socat.ini
[program:socat] ;
command=socat -d -d -lf /var/log/socat.log TCP4-LISTEN:8077,bind=0.0.0.0,reuseaddr,fork TCP4:183.xxx.xxx.xxx:8077;
#directory=/root/ ;
autorestart=true ;
stderr_logfile=/var/log/socat.err.log ;
stdout_logfile=/var/log/socat.out.log ;
environment=ASPNETCORE_ENVIRONMENT=Production ;
user=root ;
stopsignal=INT
如何安装supervisord
yum install supervisor -y
网友评论