Phone:
(701)814-6992

Physical address:
​6296 Donnelly Plaza
Ratkeville, ​Bahamas.

使用iptebles实现服务器之间流量转发

使用iptebles实现服务器之间流量转发

相信有很多人使用过流量转发,比如用商家转发到落地机的,那么怎么实现这种转发呢?其实很简单,几行命令搞定,这次俺们用 iptables 来演示一下。

流量走向:

客户端 --> GFW --> A服务器 --> B服务器(落地) --> YouTube --> 返回客户端

A服务器IP:2.2.2.2 端口:20000
B服务器IP:6.6.6.6 端口:60000

实现目的:把本机A服务器IP 2.2.2.2 上的 20000 端口流量转发到B服务器IP 6.6.6.6 的 60000 端口上

A服务器

以下都在A服务器上操作,也就是转发服务器,白话就是线路好的服务器

首先在服务器上开启 tcp 转发:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

使其生效:

   sysctl -p

好像Debian11以上就弃用了iptables,来安装一下:

apt install iptables -y

把A服务器 20000 端口流量转发到B服务器的 60000 端口上

在PREROUTING上修改目的地址:

iptables -t nat -A PREROUTING -p tcp --dport 20000 -j DNAT --to-destination 6.6.6.6:60000

在POSTROUTING上修改源地址:

# 2.2.2.2 是A服务器IP,也就是转发服务器IP
iptables -t nat -A POSTROUTING -d 6.6.6.6 -p tcp --dport 60000 -j SNAT --to 2.2.2.2

# 或者直接用MASQUERADE自动获取源IP,两条命令二选一
iptables -t nat -A POSTROUTING -d 6.6.6.6 -p tcp --dport 60000 -j MASQUERADE

其实上面两条命令就可以用了,为了防止在FORWARD上面被丢弃,添加两条规则允许通过:

iptables -I FORWARD -d 6.6.6.6 -p tcp --dport 60000 -j ACCEPT

iptables -I FORWARD -s 6.6.6.6 -p tcp --sport 60000 -j ACCEPT

最后,为了使规则永久生效,不至于重启服务器后丢失,安装个iptables-persistent

apt install iptables-persistent

安装完成后写入规则,这样就不会丢了:

iptables-save > /etc/iptables/rules.v4

上面就是转发服务器上的操作,下面落地服务器就简单了。用法就同大多卖流量转发的一样了。

B服务器

B服务器也就是落地服务器,在B服务器上安装个Shadowsocks就好了,注意端口使用上面转发的60000端口。

安装一键脚本:
https://github.com/yeahwu/v2ray-wss

客户端

本来B服务器上安装的SS的IP和端口是,IP 6.6.6.6,端口 60000

既然使用了转发,那么客户端只要把IP和端口换成A服务器IP,和转发端口20000,就可以使用了。