|  |      1eason1874      2021-01-14 16:56:40 +08:00 iptables 能做端口转发。我曾经用这个转发梯子流量实现加速,但是我忘记怎么写了。 楼下请: | 
|      2richzhu      2021-01-14 16:59:28 +08:00 下面是我用 iptables 做的 SNAT -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 192.168.0.150 具体也可以百度一下 SNAT 的配置 | 
|  |      3111111111111      2021-01-14 17:01:27 +08:00 我猜 !# 说的是这个 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 | 
|      4xx6412223      2021-01-14 17:03:16 +08:00 用 SSH Tunneling 也行 | 
|      5Jirajine      2021-01-14 17:04:15 +08:00 via Android 你这样转发,就得考虑流量回环问题。 | 
|  |      6nbweb      2021-01-14 17:08:13 +08:00 给你另一个方案 192.168.1.2:做透明代理,再多做一步,加个 dns 服务器 192.168.1.1:openwrt 的主路由,把 dns 服务器和网关设置为 192.168.1.2 以上完美解决,不用转发啊,我家现在就是这么搞的,相当于 192.168.1.2 是网关。 dnsmasq-full 配合 ipset 可以实现墙内外分流,墙外的走透明网关,墙内的直接走路由器出去。 | 
|  |      7vinsony OP 感觉 SNAT 貌似可行,晚上试一下,谢谢。 | 
|      9rihkddd      2021-01-14 17:16:35 +08:00 # 转发脚本内容 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 | 
|      10deorth      2021-01-14 17:17:04 +08:00 不行,我试过了。跨机器透明代理流量转发会导致原目的地址丢失 | 
|      11deorth      2021-01-14 17:17:33 +08:00 只能更改 dhcp 分配的网关 | 
|  |      12ziseyinzi      2021-01-14 17:24:30 +08:00 10 楼+1,目前 iptables 做不到,nftable 记得有能做到的设计,但是还没实现。 | 
|      14pheyx      2021-01-14 20:00:22 +08:00 iptables 和 iproute 搭配可以实现。看 https://tldp.org/HOWTO/TransparentProxy-6.html 这里的第 2 种方法。 | 
|      15pheyx      2021-01-14 20:06:16 +08:00 这种方法不用修改网关,原理是把去往 12345 端口的流量打上标记,然后设定 ip rule 使这些流量走另一个路由表到达运行代理的设备。 | 
|  |      16linvon      2021-01-14 20:19:25 +08:00 #14 #15 可解,iptables 打 mark,增加路由表改路由 但你全部流量都转发,和改网关又有什么区别呢 | 
|      17zictos      2021-01-14 20:29:36 +08:00 可以使用 haproxy,iptables 试了不稳定 | 
|  |      18qwerthhusn      2021-01-14 21:45:51 +08:00 用 HAProxy 吧,甚至 Nginx 的 stream 代理都行 | 
|  |      19Ehco1996      2021-01-15 07:10:35 +08:00 | 
|      20julyclyde      2021-01-15 11:45:25 +08:00 SNAT+DNAT 可以。haproxy/nginx 也可以。不过会丢失原始的客户端 IP 如果要保留,可以尝试 LVS FullNAT 模式+toa 模块 | 
|  |      21laqow      2021-01-15 15:38:01 +08:00 在 openwrt 上装 dokodemo-door | 
|      22customer      2022-08-06 21:50:03 +08:00 这么多楼居然没人提 redsocks ,专门做代理转发的老牌工具,不过家用路由器上跑的话流量大起来 cpu 占用还挺高的,我之前 200M 宽带都跑不满,最后只好在路由上做白名单,只转发必要的流量 |