求教, iptables 疑问

2022-01-28 12:57:56 +08:00
 Faxlok
我有个云服务器,我不希望别人直接访问 A 端口,直接连接 A 端口是不行的。我想通过访问 B 端口来进行转发到 A 端口。
下面是自己乱写的一些规则,没起到作用。。不知道怎么写。。感觉要买本书来看看了

iptables -I INPUT -p tcp --dport A -j DROP
iptables -I INPUT -s 127.0.0.1 -p tcp --dport A -j ACCEPT
iptables -t nat -A PREROUTING -d 0.0.0.0 -p tcp --dport B -j DNAT --to-dest 127.0.0.1:A
iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp --dport A -j DNAT --to-dest 127.0.0.1
1436 次点击
所在节点    问与答
9 条回复
jasonyang9
2022-01-28 15:22:33 +08:00
我现在基本都用 nftables 了,iptables 不太用。

思路:
服务程序是在监听端口 A 的;
对入站的 TCP 数据包,源是 127.0.0.1 的,目标端口是 A 的,接受;
对入站的 TCP 数据包,目标端口是 A 的,丢弃;
做 DNAT ,即端口转发,对目标 IP 是本机的,且对目标端口是 B 的,修改目标端口到 A 。

第 1 和 2 条的顺序是否倒了?

你没有修改数据包的源 IP ,即没有做 SNAT ,然后在`iptables -I INPUT -s 127.0.0.1 -p tcp --dport A -j ACCEPT`中又判断了仅从 127.0.0.1 发来的入站数据包接受。
retanoj
2022-01-28 16:28:55 +08:00
请 google:iptables 本地端口转发
lovelylain
2022-01-28 16:33:16 +08:00
要求不高的话,用 frp 吧,简单很多,缺点是代理中转了一次,丢失了原始客户端 ip 。
liangzai
2022-01-28 16:50:36 +08:00
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 13306 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 13306 -j DNAT --to-destination 192.168.10.209:3306
iptables -t nat -A POSTROUTING -d 192.168.0.209 -p tcp --dport 3306 -j SNAT --to-source 192.168.10.210
service iptables save
service iptables restart

我自己做的 A 转发端口到 B 主机样例:内网 192.168.10.210 是有公网 IP 的 A 主机,将 13306 端口转发到内网主机 B 的 192.168.10.209 的 3306 端口上,即通过 A 主机的公网访问连接到内网 B 的 mysql 端口上
如果是本机转发应该就该改类似的端口,你可以自己试下
saltbo
2022-01-28 20:39:10 +08:00
刚学完 iptables ,分享下学习笔记 https://saltbo.cn/notes/learn-iptables.html
Faxlok
2022-02-06 18:32:01 +08:00
@jasonyang9 我把最后一条改成了 4 楼的也不行
Faxlok
2022-02-06 18:32:43 +08:00
@liangzai 不行唉。。我改了端口行不同。我也是转发的 3306
Faxlok
2022-02-06 18:32:55 +08:00
@saltbo 很厉害!
liangzai
2022-02-06 23:51:49 +08:00
@Faxlok 这就尴尬了,很久之前做的,没试过一个机器里的端口转发

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/831101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX