跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 能用 iptables 把流量转发到另一台机器的某个端口吗?
未分類
5 2 月 2021

能用 iptables 把流量转发到另一台机器的某个端口吗?

能用 iptables 把流量转发到另一台机器的某个端口吗?

資深大佬 : vinsony 12

是这样,主路由是个 openwrt,IP 192.168.1.1,另外一台机器 192.168.1.2 上开了个 dokodemo-door,端口是 12345 。

现在想让路由器把流量都转发到 192.168.1.2:12345 上。参考网上透明代理的 iptables 规则,好像都是转发给本地端口,我尝试过转发给另外的机器,不成功。

我不想把网关改到 192.168.1.2 上,不知道能不能做这样的转发?

大佬有話說 (21)

  • 資深大佬 : eason1874

    iptables 能做端口转发。我曾经用这个转发梯子流量实现加速,但是我忘记怎么写了。

    下请:

  • 資深大佬 : richzhu

    下面是我用 iptables 做的 SNAT

    -A POSTROUTING -s 192.168.0.0/24 -j SNAT –to-source 192.168.0.150

    具体也可以百度一下 SNAT 的配置

  • 資深大佬 : 111111111111

    我猜 !# 说的是这个

    sudo su
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp –dport 8388 -j DNAT –to-destination US_VPS_IP:8388
    iptables -t nat -A POSTROUTING -p tcp -d US_VPS_IP –dport 8388 -j SNAT –to-source JAPAN_VPS_IP

    https://github.com/shadowsocks/shadowsocks/wiki/Setup-a-Shadowsocks-relay

  • 資深大佬 : xx6412223

    用 SSH Tunneling 也行

  • 資深大佬 : Jirajine

    你这样转发,就得考虑流量回环问题。

  • 資深大佬 : nbweb

    给你另一个方案

    192.168.1.2:做透明代理,再多做一步,加个 dns 服务器
    192.168.1.1:openwrt 的主路由,把 dns 服务器和网关设置为 192.168.1.2
    以上完美解决,不用转发啊,我家现在就是这么搞的,相当于 192.168.1.2 是网关。

    dnsmasq-full 配合 ipset 可以实现墙内外分流,墙外的走透明网关,墙内的直接走路由器出去。

  • 主 資深大佬 : vinsony

    感觉 SNAT 貌似可行,晚上试一下,谢谢。

  • 主 資深大佬 : vinsony

    @nbweb 你是在 DHCP 下发的时候,给其他电脑设置这个 dns 服务器和网关吗?

  • 資深大佬 : rihkddd

    # 转发脚本内容 tcpproxy.sh
    ———-
    #!/bin/sh
    # TCP Proxy using IPTables
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Flush nat table
    iptables -t nat -F

    # tcpproxy LOCAL_IP LOCAL_PORT REMOTE_IP REMOTE_PORT

    function tcpproxy {
    iptables -t nat -A PREROUTING –dst $1 -p tcp –dport $2 -j DNAT –to-destination $3:$4
    iptables -t nat -A POSTROUTING –dst $3 -p tcp –dport $4 -j SNAT –to-source $1
    iptables -t nat -A OUTPUT –dst $1 -p tcp –dport $2 -j DNAT –to-destination $3:$4
    }
    ————

    # 使用方法
    tcpproxy.sh 192.168.1.1 12345 192.168.1.2 12345

  • 資深大佬 : deorth

    不行,我试过了。跨机器透明代理流量转发会导致原目的地址丢失

  • 資深大佬 : deorth

    只能更改 dhcp 分配的网关

  • 資深大佬 : ziseyinzi

    10 +1,目前 iptables 做不到,nftable 记得有能做到的设计,但是还没实现。

  • 資深大佬 : nbweb

    @vinsony 不是,其它电脑自动获取 ip 时,网关和 dns 就是透明网关的地址。

  • 資深大佬 : pheyx

    iptables 和 iproute 搭配可以实现。看 https://tldp.org/HOWTO/TransparentProxy-6.html 这里的第 2 种方法。

  • 資深大佬 : pheyx

    这种方法不用修改网关,原理是把去往 12345 端口的流量打上标记,然后设定 ip rule 使这些流量走另一个路由表到达运行代理的设备。

  • 資深大佬 : linvon

    #14 #15 可解,iptables 打 mark,增加路由表改路由
    但你全部流量都转发,和改网关又有什么区别呢

  • 資深大佬 : zictos

    可以使用 haproxy,iptables 试了不稳定

  • 資深大佬 : qwerthhusn

    用 HAProxy 吧,甚至 Nginx 的 stream 代理都行

  • 資深大佬 : Ehco1996

    有个简单的命令行工具

    https://github.com/Ehco1996/ehco

    推荐试试

  • 資深大佬 : julyclyde

    SNAT+DNAT 可以。haproxy/nginx 也可以。不过会丢失原始的客户端 IP
    如果要保留,可以尝试 LVS FullNAT 模式+toa 模块

  • 資深大佬 : laqow

    在 openwrt 上装 dokodemo-door

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具