Rat's

使用socat进行单个端口的转发,同时支持tcp和udp
说明:由于用iptables经常不成功。所以只能寻求另一种办法,就是用socat工具来完成端口转发,如果你只有少数...
扫描右侧二维码阅读全文
26
2016/07

使用socat进行单个端口的转发,同时支持tcp和udp

说明:由于用iptables经常不成功。所以只能寻求另一种办法,就是用socat工具来完成端口转发,如果你只有少数几个端口要转发的话,那么socat就是比较好的选择了。socat唯一麻烦的地方就是好像我没找到如何转发端口段,只能一个命令一个端口。不过如果只是自用转发少量端口的话还是蛮好用的。

socat安装

使用命令:

#CentOS系统
yum install -y socat

#Ubuntu或Debian系统
apt-get update
apt-get install -y socat

socat的使用

1、转发TCP

nohup socat TCP4-LISTEN:10000,reuseaddr,fork TCP4:1.1.1.1:10000 >> socat.log 2>&1 &

说明:

TCP4-LISTEN:10000监听ipv4的10000TCP端口。10000改成你自己需要转发的端口
fork TCP4:1.1.1.1:10000`转发到1.1.1.1的10000端口,根据需求修改自行修改ip和端口
nohup后台运行。可以把这个命令写到/etc/rc.local里面开机启动启动。

2、转发UDP

nohup socat -T 600 UDP4-LISTEN:10000,reuseaddr,fork UDP4:1.1.1.1:10000 >> socat.log 2>&1 &

很方便吧!把tcp改成udp就是转发udp了。说明如上。也可以直接写到/etc/local里面开机自动启动。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 03 月 27 日 12 : 15 PM

发表评论

7 条评论

  1. 头疼

    请问博主TCP UDP单端口一起转发怎么做?

    1. Rat's
      @头疼

      需要两条命令,一条用tcp参数,另一个udp参数,你可以在博客搜一下关键词socat,我发过socat一键脚本。

  2. zzzzzz

    站长 nohup socat -T 600 UDP4-LISTEN里面这个 -T 600有什么意义?手动版无需设置自动填写本机ddns域名吧

    1. Rat's
      @zzzzzz

      这个可以不填,就是检测你在规定时间没有没有流量传输,然后终断,你可以试试填域名。

      1. zzzzzz
        @Rat's

        谢谢耐心回答 ,我知道 被中转机域名可以填在后面, 中转机域名填前面那个端口前面吗?
        像这样:nohup socat -T 600 UDP4-LISTEN:www.xxx.com:10000,reuseaddr,fork UDP4:www.xxxxx.com:10000 >> socat.log 2>&1 &

        1. Rat's
          @zzzzzz

          前面的不需要填ip/域名,默认是本机地址,只需要填端口就行了

  3. 阿三

    我啊