能用 iptables 把流量转发到另一台机器的某个端口吗?
现在想让路由器把流量都转发到 192.168.1.2:12345 上。参考网上透明代理的 iptables 规则,好像都是转发给本地端口,我尝试过转发给另外的机器,不成功。
我不想把网关改到 192.168.1.2 上,不知道能不能做这样的转发?
现在想让路由器把流量都转发到 192.168.1.2:12345 上。参考网上透明代理的 iptables 规则,好像都是转发给本地端口,我尝试过转发给另外的机器,不成功。
我不想把网关改到 192.168.1.2 上,不知道能不能做这样的转发?
下请:
-A POSTROUTING -s 192.168.0.0/24 -j SNAT –to-source 192.168.0.150
具体也可以百度一下 SNAT 的配置
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
192.168.1.2:做透明代理,再多做一步,加个 dns 服务器
192.168.1.1:openwrt 的主路由,把 dns 服务器和网关设置为 192.168.1.2
以上完美解决,不用转发啊,我家现在就是这么搞的,相当于 192.168.1.2 是网关。
dnsmasq-full 配合 ipset 可以实现墙内外分流,墙外的走透明网关,墙内的直接走路由器出去。
# 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
https://github.com/Ehco1996/ehco
推荐试试