V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Faxlok
V2EX  ›  问与答

求教, iptables 疑问

  •  
  •   Faxlok · 2022-01-28 12:57:56 +08:00 · 1345 次点击
    这是一个创建于 826 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有个云服务器,我不希望别人直接访问 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
    9 条回复    2022-02-06 23:51:49 +08:00
    jasonyang9
        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 发来的入站数据包接受。
    retanoj
        2
    retanoj  
       2022-01-28 16:28:55 +08:00
    请 google:iptables 本地端口转发
    lovelylain
        3
    lovelylain  
       2022-01-28 16:33:16 +08:00 via Android
    要求不高的话,用 frp 吧,简单很多,缺点是代理中转了一次,丢失了原始客户端 ip 。
    liangzai
        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 端口上
    如果是本机转发应该就该改类似的端口,你可以自己试下
    saltbo
        5
    saltbo  
       2022-01-28 20:39:10 +08:00
    刚学完 iptables ,分享下学习笔记 https://saltbo.cn/notes/learn-iptables.html
    Faxlok
        6
    Faxlok  
    OP
       2022-02-06 18:32:01 +08:00
    @jasonyang9 我把最后一条改成了 4 楼的也不行
    Faxlok
        7
    Faxlok  
    OP
       2022-02-06 18:32:43 +08:00
    @liangzai 不行唉。。我改了端口行不同。我也是转发的 3306
    Faxlok
        8
    Faxlok  
    OP
       2022-02-06 18:32:55 +08:00
    @saltbo 很厉害!
    liangzai
        9
    liangzai  
       2022-02-06 23:51:49 +08:00 via Android
    @Faxlok 这就尴尬了,很久之前做的,没试过一个机器里的端口转发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1250 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:17 · PVG 01:17 · LAX 10:17 · JFK 13:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.