1,321
社区成员
发帖
与我相关
我的任务
分享
# 运行如下指令后,不能从外网访问,只能在服务器 使用 localhost:8359 或者 192.168.1.3:8059 都可以
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp --dport 8059 -j DNAT --to-destination 127.0.0.1:8359
# 尝试修改 target 为 REDIRECT 也不能从外网访问(在服务器上也可以访问成功:localhost:8359 或者 192.168.1.3:8059)
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp --dport 8059 -j REDIRECT --to-destination 127.0.0.1:8359
# 先从内网地址 192.168.1.3 转 127.0.0.1,使用 OUTPUT 链。就是把从 192.168.1.3:8059 的待发消息,切换到目的地址 127.0.0.1:8359 发出
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp -m tcp --dport 8059 -j DNAT --to-destination=127.0.0.1:8359
#这步操作成功,在服务器通过 curl 192.168.1.3:8059 可以正常访问网页
#
# 再把 192.168.1.3 的入站消息 从 8859 端口转发到8059端口。结合上一步,请求消息最终被路由到 127.0.0.1:8359!@但是没有,参考附图
iptables -t nat -A PREROUTING -d 192.168.1.3 -p tcp -m tcp --dport 8859 -j REDIRECT --to 8059
# 图1 是测试之前,将消息统计清零
# 图2 从外网测试 curl 1.2.3.4:8859,可以看到 这条规则收到了消息。但没有路由到 lo 本机栈。
图1:
图2:
允许 100 全部
目的: -1/-1
源: 0.0.0.0/0