@def title = "Set up port forward for Shadowsocks" slug: portforward-shadowsocks datepublished: 2015-08-20T13:35:00 dateupdated: 2018-12-29T02:29:47 tags: Tech Ideas excerpt: "How to forward single port connection to remote servers." –-

Iptables 搭建 Shadowsocks 跳板

电信已经弄得我们无数人想吐了. 在这里给能用Google搜索到这篇文章的人写一下如何架设一台可以用来做类似vxTrans业务的转发服务器.

Get a Linux Prepared

以下命令部分需要su权限 我自己用了一台运行Debian缩减版的Raspberry Pi 2, 所有Linux应该都是可以的. 打开配置文件vim /etc/sysctl.conf 删掉net.ipv4.ip_forward=1前的#使之可以转发ipv4的流量. 运行 sysctl -p /etc/sysctl.conf 使之生效

(如有必要请安装iptables)

配置网络拓补结构

假设有如下外网至这台服务器的网络拓补:

  • 外网168.187.23.189 最外层路由器192.168.1.1 子路由器192.168.1.3,192.168.1.4 子路由器192.168.1.3下 网段为192.168.2.2-192.168.2.255 我们的服务器192.168.2.3

  • 168.187.23.189:4444=>

  • 192.168.1.3:4444=>

  • 192.168.2.3:4444

    #!/usr/bin/sh

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    iptables -t nat -i eth0 -A PREROUTING -p tcp –dport 4444 -j DNAT –to-destination x.x.x.x:8388 iptables -t nat -i eth0 -A PREROUTING -p udp –dport 4444 -j DNAT –to-destination x.x.x.x:8388 iptables -t nat -A POSTROUTING -p tcp -d x.x.x.x –dport 8388 -j SNAT –to-source 168.187.23.189 iptables -t nat -A POSTROUTING -p udp -d x.x.x.x –dport 8388 -j SNAT –to-source 168.187.23.189

运行这个脚本 sudo sh ss.sh