1. 首页
  2. 技术交流
  3. 问题百科

iptables实现端口转发/节点中转

由于各个运营商的网络QOS不同,所以很多时候我们不能保证节点的速度,出墙是一方面,还要重要的一点是翻回去。别看国内BGP一片绿,除非是CN2,否则延迟也是稀烂。

这时如果有一台VPS用作中转,这样就能达到稳定且快速的效果。

iptables实现端口转发/节点中转

这里,我们介绍一个使用iptables来进行中转的教程。使用iptables的好处就是不用额外装东西,且同时支持tcp及udp。回国线路最好是拿一台国际网络优化的香港来中转国内,这样就很舒服了。

关于CentOS 7系统:需要删除firewalld装回iptables.

# 安装命令:

systemctl stop firewalld.service
systemctl disable firewalld.service
yum install iptables-services -y
systemctl enable iptables.service

第一步:开启系统的转发功能

首先,先确认服务器是否已开启转发,运行:

sysctl net.ipv4.ip_forward
# 如果已经启动则显示
> net.ipv4.ip_forward = 1
# 如果没有启动则显示
> net.ipv4.ip_forward = 0

# CentOS 6/Debian/Ubuntu 开启方式:

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

# CentOS 7 开启方式:

echo "net.ipv4.ip_forward = 1" >> /usr/lib/sysctl.d/cloudiplc.conf
sysctl -p /usr/lib/sysctl.d/cloudiplc.conf

首先我们设置一下iptables 防火墙的开机启动自动载入规则功能。

CentOS 系统:

 service iptables save
 service iptables restart

Debian/Ubuntu使用:

iptables-save > /etc/iptables.up.rules
iptables-restore < /etc/iptables.up.rules

第二步: 加入iptables规则

总体是这样的:

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]

* 如服务器是内网IP(例如NAT-VPS),请用ifconfig或ip addr确认走公网流量网卡的内网IP(本地服务器IP),比如阿里云这些,内网IP一般为10.xx.xx.xx

例如单端口同端口转发: 将本地服务器(中转服务器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

例如端口范围不同端口转发:

将本地服务器(中转服务器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信息的时候,IP应该填中转服务器IP,端口应该填中转服务器端口,而中转服务器是不用安装酸酸乳的,只需要节点服务器安装。

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

CentOS 系统:

service iptables save

Debian/Ubuntu 系统:

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

1.查看NAT规则

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

2.删除NAT规则:

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

iptables -t nat -D POSTROUTING 4
iptables -t nat -D PREROUTING 4
END

本资源仅用于个人学习测试使用,禁止用于任何商业环境,请于下载后24小时内删除本资源!

本文所有相关技术/资源内容统一放在下载包里

  1. 本网站名称:买卖易资源网
  2. 本站永久网址:https://www.mmeasy.cn
  3. 如果您觉得本站有帮助到您,也想给本站一些帮助。您可以再下方打赏本站。
  4. 未经权利人(原版权作者)允许不得转载:iptables实现端口转发/节点中转,如若转载,请注明出处:https://www.mmeasy.cn/3834.html
  5. 本站资源来源于互联网收集/个人购买,不代表买卖易资源网立场,仅供学习交流之用,切勿私自传播于网络!如有侵犯到您的权益,请查看【版权声明】
  6. 本站资源大多存储在网盘,如发现链接失效,请第一时间告知我们,我们会核实后及时更新。本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
  7. 再次声明:本站所有资源(获得权利人授权的除外)不可用于任何商业用途,不可违反国家法律法规。使用该资源发生的一切问题与本站无关!为尊重作者版权,请购买原版作品,支持你喜欢的作者,谢谢!

发表评论

登录后才能评论
快捷回复
  • 签到
  • 支持
  • 感谢
  • 给力
  • 加油
  • 生气

评论列表(1条)

  • 头像
    坤哥 2020-03-26 06:53

    特来签到,签到时间:上午6:53:31, 支持 买卖易MMeasy.CN!

联系我们

邮件:vip@weiyun.tel
工作时间:周一至周五,9:30-18:30,节假日休息

QR code