微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

centos – 如何使用iptables将localhost流量转发到远程主机?

我想设置我的CentOS 6.5框以将连接到localhost(127.0.0.1)转发到远程机器上的同一端口(例如10.0.3.10).

我已经尝试过下面的iptables规则,但是当我尝试连接时,它只是挂起:

iptables -t nat -I OUTPUT --src 0/0 --dst 127.0.0.1 -p tcp --dport 8888 \
    -j DNAT --to-destination=10.0.3.10:8888

在远程计算机上运行tcpdump,我可以看到没有传入流量.我做了一些谷歌搜索,但没有发现任何特别有用的东西.我还确认我的sysctl.conf文件包含net.ipv4.ip_forward = 1.

编辑我已添加日志记录以响应以下评论之一.当我转到127.0.0.1:8888时它不产生输出但是在转到10.0.3.10时产生输出

# Generated by iptables-save v1.4.7 on Tue Jul 29 12:52:17 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [11:1008]
:OUTPUT ACCEPT [11:1008]
:LOGGING - [0:0]
-A OUTPUT -p tcp -m tcp -d 10.0.3.10 --dport 8888 -j LOGGING
-A LOGGING -j LOG --log-prefix "IPTABLES: "
-A LOGGING -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 8888 -j DNAT --to-destination 10.0.3.10:8
888
COMMIT
# Completed on Tue Jul 29 12:52:17 2014
# Generated by iptables-save v1.4.7 on Tue Jul 29 12:52:17 2014
*filter
:INPUT ACCEPT [50:2776]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [49:4336]
COMMIT
# Completed on Tue Jul 29 12:52:17 2014
我不知道如何在这台机器上配置iptables来做你想做的事.我通常在这种情况下使用SSH隧道.我觉得设置很容易(个人意见在这里!);-)但是……你需要在你的localhost上建立一个SSH连接(它不需要从远程访问!).

这种情况下的命令语法是:

ssh -f -C -N -L [<bind address>:]<local port>:<remote host name>:<remote service port> [-p <ssh port>] [<username>@]<remote host outside name>

所以对你来说这意味着:

ssh -f -C -N -L 127.0.0.1:8888:10.0.3.10:8888 localhost

原文地址:https://www.jb51.cc/centos/373510.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。