iptables TCP UDP 端口中转

 

IPTALES tcp+udp全端口转发(网络加速)

IPTABLES全端口转发的优点系统资源消耗极低,用1H1G的小机器就可以了,然后并发高速度快,可以有效的解决线路的质量问题

优点:全端口tcp+udp

IPTABLES 安装

centos系统

ubuntu debian

yum install iptables -y
apt install iptables -y

配置IPV4转发

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #这里开启端口转发从默认0改成1
sysctl -p

配置iptables开机加载

CentOS 系统:


service iptables save

chkconfig --level 2345 iptables on

Debian/Ubuntu 系统:


iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

查询本机的网卡绑定的ip

 

ifconfig

比如我在我的服务器里面的显示


[[email protected]_0_5_centos ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:33:5A:FD
inet addr:172.27.0.5 Bcast:172.27.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:814836 errors:0 dropped:0 overruns:0 frame:0
TX packets:803932 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:744827454 (710.3 MiB) TX bytes:735461052 (701.3 MiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

以上网卡eth0绑定的ip地址是172.27.0.5  我的这个是绑定的内网ip

单端口 端口转发

 


iptables -t nat -A PREROUTING -p tcp --dport [本地端口] -j DNAT --to-destination [目标IP:目标端口]
iptables -t nat -A PREROUTING -p udp --dport [本地端口] -j DNAT --to-destination [目标IP:目标端口]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [目标端口] -j SNAT --to-source [本地服务器主网卡绑定IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [目标端口] -j SNAT --to-source [本地服务器主网卡绑定IP]

以下示例,假设你的国外服务器(被中转服务器)是 1.1.1.1 ,你的SS端口是 10000 ,而你这台正在操作的VPS的主网卡绑定IP(中转服务器)是 2.2.2.2 

 


iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000 -j DNAT --to-destination 1.1.1.1:10000
iptables -t nat -A PREROUTING -p udp -m udp --dport 10000 -j DNAT --to-destination 1.1.1.1:10000
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 10000 -j SNAT --to-source 2.2.2.2
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 10000 -j SNAT --to-source 2.2.2.2

不同端口 端口转发

本地服务器(中转服务器 2.2.2.2 ) 10000 端口转发至目标IP(被中转服务器) 1.1.1.1  30000 端口

 

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000 -j DNAT --to-destination 1.1.1.1:30000
iptables -t nat -A PREROUTING -p udp -m udp --dport 10000 -j DNAT --to-destination 1.1.1.1:30000
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 30000 -j SNAT --to-source 2.2.2.2
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 30000 -j SNAT --to-source 2.2.2.2

这个时候你Shadowsocks客户端填写Shadowsocks信息的时候,端口应该填 10000 而不是 30000 

 

多端口 端口转发

1.同端口 端口转发

本地服务器(中转服务器 2.2.2.2 ) 10000~30000 端口转发至目标IP(被中转服务器) 1.1.1.1  10000~30000 端口

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000:30000 -j DNAT --to-destination 1.1.1.1:10000-30000
iptables -t nat -A PREROUTING -p udp -m udp --dport 10000:30000 -j DNAT --to-destination 1.1.1.1:10000-30000
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 10000:30000 -j SNAT --to-source 2.2.2.2
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 10000:30000 -j SNAT --to-source 2.2.2.2

 

这个时候你Shadowsocks客户端填写Shadowsocks信息的时候,账号配置和端口填写都不变,只需要修改IP为中转服务器IP即可 。

 

不同端口 端口转发

本地服务器(中转服务器 2.2.2.2 ) 10000~20000 端口转发至目标IP(被中转服务器) 1.1.1.1  30000~40000 端口


iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000:20000 -j DNAT --to-destination 1.1.1.1:30000-40000
iptables -t nat -A PREROUTING -p udp -m udp --dport 10000:20000 -j DNAT --to-destination 1.1.1.1:30000-40000
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 30000:40000 -j SNAT --to-source 2.2.2.2
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 30000:40000 -j SNAT --to-source 2.2.2.2

 

这个时候你Shadowsocks客户端填写Shadowsocks信息的时候,端口应该填 10000~2000 而不是30000~40000 

 

保存iptables配置

修改后记得保存 iptables配置,免得重启后没了。

CentOS 系统:

service iptables save

Debian/Ubuntu 系统:
[cdoe]iptables-save > /etc/iptables.up.rules[/code]

查看NAT规则

iptables -t nat -vnL POSTROUTING
iptables -t nat -vnL PREROUTING

删除NAT规则

通过上面的查看规则命令,查看规则后,确定你要删除的规则的顺序,下面的命令是删除 第一个 规则。

 

iptables -t nat -D POSTROUTING 1
iptables -t nat -D PREROUTING 1

下面是一键脚本

请先使用ifconfig 命令  查看本机vps 网卡绑定的ip  有的是内网ip有的是外网ip

 



一键脚本命令如下:

wget -N --no-check-certificate https://raw.githubusercontent.com/xiaohouzivpn/script/master/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh
zh-CN Chinese (Simplified)
X