使用Socat进行端口转发
21 August 2022
使用Socat进行端口转发
以前写使用ssh隧道进行端口转发,这次再介绍下Socat进行端口转发。如
安装
brew install socat
端口转发
TCP
监听本地TCP 80 端口,并将请求转发(代理)到 10.0.0.1:8080 上:
socat TCP-LISTEN:80,reuseaddr,fork TCP:10.0.0.1:8080
UDP
监听本地UDP 53 端口,并将请求转发(代理)到 10.0.0.1:5353 上:
socat UDP-LISTEN:53,reuseaddr,fork UDP:10.0.0.1:5353
将访问本机 15237 端口的请求转发至 localhost:15236 端口
socat TCP-LISTEN:15237,reuseaddr,fork TCP:localhost:15236
# 后台执行
(socat TCP-LISTEN:15237,reuseaddr,fork TCP:localhost:15236) &
Socat现在并不支持SOCKS5端口的转发,但SOCKS4端口的转发是支持的,如下:
# 格式:socat TCP-LISTEN:<localport> SOCKS4:<socks-server>:<host>:<port>,socksport=<socksport>
socat TCP-LISTEN:15237 SOCKS4A:localhost:secret.shell.server.org:22,socksport=15235
参考: Tunneling and Port Forwarding
Socat入门教程
Linux ssh: port forwarding, socks5, jump hosts, …