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 用户下执行。
评论
发表评论