以前写过一篇使用iptables进行端口转发的文章, 今天写一下使用socat将本地端口的流量转发到远程机上的过程. 不要问我这样做有什么用, 我也不知道.
安装
$ sudo apt install socat
转发TCP端口
$ sudo vim /etc/systemd/system/socat.service # 写入如下内容
[Unit]
Description=socat (https://www.zhukun.net)
After=network-online.target
Wants=network-online.target
[Service]
User=root
Group=root
ExecStart=/usr/bin/socat TCP4-LISTEN:本地端口,reuseaddr,fork TCP4:远程IP:远程端口
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
转发UDP端口
$ sudo vim /etc/systemd/system/socat_udp.service # 写入如下内容
[Unit]
Description=socat_udp (https://www.zhukun.net)
After=network-online.target
Wants=network-online.target
[Service]
User=root
Group=root
ExecStart=/usr/bin/socat -T5 UDP4-LISTEN:本地端口,reuseaddr,fork UDP4:远程IP:远程端口
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
启动服务
$ sudo systemctl daemon-reload
$ sudo systemctl start socat.service
$ sudo systemctl start socat_udp.service
$ sudo systemctl enable socat.service
$ sudo systemctl enable socat_udp.service