海运的博客

shadowsocks使用Iptables随机多端口

发布时间:October 11, 2014 // 分类: // 5 Comments

Openwrt下配置iptables将shadowsocks连接随机DNAT到特定端口:

iptables -t nat -A OUTPUT -p tcp --dport 5688 -m state --state NEW -m statistic --mode nth --every 4 --packet 0 -j DNAT --to-destination serverip:5688
iptables -t nat -A OUTPUT -p tcp --dport 5688 -m state --state NEW -m statistic --mode nth --every 4 --packet 1 -j DNAT --to-destination serverip:5689
iptables -t nat -A OUTPUT -p tcp --dport 5688 -m state --state NEW -m statistic --mode nth --every 4 --packet 2 -j DNAT --to-destination serverip:5690
iptables -t nat -A OUTPUT -p tcp --dport 5688 -m state --state NEW -m statistic --mode nth --every 4 --packet 3 -j DNAT --to-destination serverip:5691

服务器端将客户端连接的端口DNAT到shadowsocks监听的端口:

iptables -t nat -A PREROUTING -p tcp --dport 5689:5691 -j DNAT --to-destination serverip:5688
#如果是分散的端口:
iptables -t nat -A PREROUTING -p tcp -m multiport --dports 3000,10000 -j DNAT --to-destination serverip:5688

新版本:

#OpenWRT:
iptables -t nat -A OUTPUT -d serverip -p tcp --dport 5688-j DNAT --to-destination serverip:50000-60000 --random
#Server:
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 50000:60000 -j REDIRECT --to-ports 5688

同时要设置本的的端口使用范围,不然本地连接的返回包会重定向到ss服务器端口:

sysctl -w "net.ipv4.ip_local_port_range=1024 9999"

本地端口太少防止不够用打开端口重用:

sysctl -w "net.ipv4.tcp_tw_reuse=1"

标签:none

有 5 条 关于" shadowsocks使用Iptables随机多端口 "的评论

  1. kxmp kxmp

    可以直接用端口范围的. 这样更方便.
    iptables -t nat -A OUTPUT -p tcp --dport 5688 -m state --state NEW -m statistic --mode nth --every 4 --packet 0 -j DNAT --to-destination 1.2.3.4:10000-12000

  2. noone noone

    较新的内核可以这样写
    iptables -t nat -A OUTPUT -p tcp -m tcp --dport $DPORT -m state --state NEW -j DNAT --random --to-destination :$PORTSTART-$PORTEND

    1. 海运 海运

      谢谢提醒。

  3. FADAD FADAD

    能否使用 SNAT 让服务端的发送端口 随机化?

  4. linhua linhua

    只需配置 服务端 的接收端口随机化就行了, 发送端口 因为 连接追踪(conntrack)的缘故,自然会随机化。发出的包 会复用 进来的包建立的 TCP/UDP连接

发表评论

分类
最新文章
最近回复
  • simon: 刚刚看了我的vps,玛德,居然也有人在一直尝试登录,幸好我的密码是强密码
  • thornbird: 又学会一招,不错
  • 头很黑: 除了发送eth转账 ,还能转账其他的代币吗 比如eos
  • 米扑博客: 总结的很棒
  • 米扑博客: 很赞的博客
  • 常易北: 满分顶楼主!!!我也是,现在网上瞎几把扫别人云主机的智障太多了!
  • track: NAT 部分没处理,这块感觉有问题。
  • yu: 查到有用的资料很幸福!
  • boscotsang: 请问下服务器端如何控制权限让通过权限认证的客户端才能连接?现在这样只要有自编译的客户端程序都可...
  • yck932: 大侠,请问哪里有 tunnels 详细参考资料,谢谢