NAT机器设置socat转发

 使用 socat 进行中转

如所需转发的端口数量较少,则个人推荐使用此方法。

首先安装 socat,此处以 Debian & Ubuntu 系统为例:

sudo apt install socat

配置进行 TCP 转发,编辑服务文件,可根据需要自行调整此文件名,本文以 socat-tcp 为文件名作例:

sudo vim /etc/systemd/system/socat-tcp.service

添加以下内容,注意替换其中的 本机端口号、目标地址、目标端口号,其中,目标地址 可以是 IP 地址,也可以是域名地址:

[Unit]
Description=Socat TCP Forwarding Service
After=network.target

[Service]
Type=simple
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
DynamicUser=true
ExecStart=/usr/bin/socat TCP4-LISTEN:本机端口号,reuseaddr,fork TCP4:目标地址:目标端口号
Restart=always

[Install]
WantedBy=multi-user.target

接着,启动 socat 的 TCP 转发服务:

sudo systemctl enable socat-tcp
sudo systemctl start socat-tcp

如果还需要进行 UDP 转发,则继续编辑一个新文件,可根据需要自行调整此文件名,本文以 socat-udp 为文件名作例:
sudo vim /etc/systemd/system/socat-udp.service
添加以下内容,注意替换其中的 本机端口号、目标地址、目标端口号,其中,目标地址 可以是 IP 地址,也可以是域名地址:

[Unit]
Description=Socat UDP Forwarding Service
After=network.target

[Service]
Type=simple
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
DynamicUser=true
ExecStart=/usr/bin/socat -T 60 UDP4-LISTEN:本机端口号,reuseaddr,fork UDP4:目标地址:目标端口号
Restart=always

[Install]
WantedBy=multi-user.target

接着,启动 socat 的 UDP 转发服务:

sudo systemctl enable socat-udp
sudo systemctl start socat-udp

本机防火墙放行此端口:

sudo ufw allow 本机端口号

至此,利用 socat 设置中转的方法介绍完毕。另可根据使用场景,对目标机的防火墙进行配置,令其只接受来自此 NAT VPS 的流量。

附注:使用 nohup 直接启动 socat 转发 TCP 的方法

nohup /usr/bin/socat -d TCP4-LISTEN:本机端口号,reuseaddr,fork,su=nobody TCP4:目标地址:目标端口号 >> /var/log/socat.log 2>&1 &
nohup /usr/bin/socat -d -T 60 UDP4-LISTEN:本机端口号,reuseaddr,fork,su=nobody UDP4:目标地址:目标端口号 >> /var/log/socat.log 2>&1 &

上面两条命令可在 root 用户下执行。

评论

此博客中的热门博文

搭建Trojan-go一键脚本教程

使用 Cloudflare WARP 给 VPS 服务器免费添加 IPv4 或 IPv6 网络支持

GCP DD windows server 2012 亲测可用