首页 » Linux » 使用iptables来实现线路中转(Shadowsocks)

使用iptables来实现线路中转(Shadowsocks)

作者: vForce 分类: Linux 发布时间: 2017-02-10 23:38 ė浏览 23,190 次 6没有评论

最近碰到这样一个需求,为了优化Shadowsocks的连接,采用A机器来中转访问B机器。研究了一下,用iptables来转发数据包就足够实现了。

下面假设用户连接的机器A的IP是1.1.1.1,最终出口B机器的IP是2.2.2.2,中转的端口是3389

1、首先要开启数据包转发

vim /etc/sysctl.conf
# 在文件末添加以下一行(如已有则不必添加)
net.ipv4.ip_forward=1
2、写/etc/sysconfig/iptables来设置转发

-A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination 2.2.2.2:3389
-A PREROUTING -p udp -m udp --dport 3389 -j DNAT --to-destination 2.2.2.2:3389
-A POSTROUTING -d 2.2.2.2/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 1.1.1.1
-A POSTROUTING -d 2.2.2.2/32 -p udp -m udp --dport 3389 -j SNAT --to-source 1.1.1.1

-A INPUT -p udp -m udp --dport 3389 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3389 -j ACCEPT

需要注意的是,此处A机器的IP地址是其网卡地址而不是公网地址,对于一些网卡没有直接设置公网IP的机器来说一定要设置其内网地址,否则会无法访问。

网上搜集的一键脚本:

wget -N --no-check-certificate https://softs.pw/Bash/iptables-pf.sh; chmod +x iptables-pf.sh; bash iptables-pf.sh
bash iptables-pf.sh add #添加端口转发规则
bash iptables-pf.sh del #删除端口转发规则
bash iptables-pf.sh list #查看端口转发规则列表
bash iptables-pf.sh uninstall #清空端口转发规则

 

本文出自 Tech Trace,转载时请注明出处及相应链接。

本文永久链接: https://www.qiujiahui.com/2017/02/10/%e4%bd%bf%e7%94%a8iptables%e6%9d%a5%e5%ae%9e%e7%8e%b0%e7%ba%bf%e8%b7%af%e4%b8%ad%e8%bd%ac%ef%bc%88shadowsocks%ef%bc%89/

0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Ɣ回顶部