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