1
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 发来的入站数据包接受。 |
2
retanoj 2022-01-28 16:28:55 +08:00
请 google:iptables 本地端口转发
|
3
lovelylain 2022-01-28 16:33:16 +08:00 via Android
要求不高的话,用 frp 吧,简单很多,缺点是代理中转了一次,丢失了原始客户端 ip 。
|
4
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 端口上 如果是本机转发应该就该改类似的端口,你可以自己试下 |
5
saltbo 2022-01-28 20:39:10 +08:00
刚学完 iptables ,分享下学习笔记 https://saltbo.cn/notes/learn-iptables.html
|
6
Faxlok OP @jasonyang9 我把最后一条改成了 4 楼的也不行
|