找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 42|回复: 6

发个教程吧,使用 iptables 进行端口转发,中转小鸡

[复制链接]

10

主题

229

回帖

490

积分

中级会员

积分
490
发表于 2017-6-16 19:01:46 | 显示全部楼层 |阅读模式
本帖最后由 legendmax 于 2017-6-20 12:15 编辑

端口转发用来中转小鸡不错,iptables不仅支持单端口,连端口段也可以转发,同时TCP/UDP均可


特别注明:本地服务器 IP 未必是公网 IP ,像阿里云就是内网 IP ,请用 ipconfig 确认下走流量的网卡 IP 是外网还是内网。


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

vi /etc/sysctl.conf



net.ipv4.ip_forward=0

修改成

net.ipv4.ip_forward=1

编辑后使用命令让配置马上生效

sysctl -p

第二步: 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]

第三步:重启 iptables 使配置生效(仅适合Centos6,7默认没有安装iptables防火墙,Debian/Ubuntu 不需要输入这个命令)

service iptables save
service iptables restart

扩展需求
多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 )

iptables -t nat  -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
iptables -t nat  -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
iptables -t nat  -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
iptables -t nat  -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

非同端口号修改方案:(使用本地服务器的 60000 端口来转发目标 IP 为 1.1.1.1 的 50000 端口)

iptables -t nat   -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
iptables -t nat   -A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
iptables -t nat   -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]
iptables -t nat   -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]

查看 NAT 规则

iptables -t nat -vnL

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

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

保存 iptables 规则并开机自动配置(Debian / Ubuntu)

iptables-save > /etc/iptables-rules-ipv4

最后,我们需要编辑/etc/network/interfaces文件

vi /etc/network/interfaces

在最后加入下面一行

pre-up iptables-restore
Thinker 发表于 2017-6-16 19:40

用iptables转发经常失败

可能没配置好吧,iptables比较复杂,容易出错
回复

使用道具 举报

13

主题

215

回帖

483

积分

中级会员

积分
483
发表于 2017-6-16 19:11:21 | 显示全部楼层
有很多bug先不说转帖不注明的问题,难道命令不是ifconfig?
回复

使用道具 举报

26

主题

868

回帖

1896

积分

金牌会员

积分
1896
发表于 2017-6-16 19:13:38 | 显示全部楼层
技术贴,要支持一下!
回复

使用道具 举报

3

主题

46

回帖

115

积分

注册会员

积分
115
发表于 2017-6-16 19:30:35 | 显示全部楼层
先支持
回复

使用道具 举报

70

主题

419

回帖

1062

积分

金牌会员

积分
1062
发表于 2017-6-16 19:39:39 | 显示全部楼层
这个可以UDP。
回复

使用道具 举报

70

主题

419

回帖

1062

积分

金牌会员

积分
1062
发表于 2017-6-16 19:40:03 | 显示全部楼层
正好需要这个,感谢楼主分享
回复

使用道具 举报

22

主题

218

回帖

536

积分

高级会员

积分
536
发表于 2017-6-16 19:40:09 | 显示全部楼层
这个可以有。留个脚印以后参考!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-2-11 21:44 , Processed in 0.019273 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表