CentOS与AutoSSH 127.0.0.1对比*

时间:2015-02-06 16:10:41

标签: centos portforwarding ssh-tunnel autossh

我正在使用autossh并进行设置,如下例所示:http://surniaulula.com/2012/12/10/autossh-startup-script-for-multiple-tunnels/

我发现它的效果非常好,但需要一些澄清。特别是,以下示例中127.0.0.1和*之间的差异:

ForwardPort=(
    "L 127.0.0.1:3397:127.0.0.1:3306"
)

ForwardPort=(
    "L *:3397:127.0.0.1:3306"
)

第一个似乎是来自主机本身的重定向,其中第二个似乎从任何地方前进。对我来说这翻译好像*是任何IP转发通过,但有人告诉我,它只是说机器上的任何适配器。我很好奇是IP还是任何适配器?我假设最终结果是一样的,但是想澄清我自己的理解。

更新

我更新了我的测试,以包含我正在使用的网络的特定IP,然后尝试连接到端口,发现它无法使用指定的特定端口,例如。

ForwardPort=(
    "L x.x.x.x:3397:127.0.0.1:3306"
    "L 127.0.0.1:3397:127.0.0.1:3306"
)

由于这不起作用,它让我相信我的伙伴关于适配器是正确的。如果有人可以向我提供适配器内容如何工作的一些细节,或者链接到解释它的好文章,我会很感激。

1 个答案:

答案 0 :(得分:0)

弄清楚我的答案,想到我会发布我的答案,万一有人感兴趣或谷歌搜索我的答案而不是找到答案。

所以,当我做x.x.x.x时,这是我的远程服务器的WAN IP。 autossh并不知道这一点,因为IP不是它的适配器之一。如果您在服务器上运行ifconfig,那么您将获得127.0.0.1和其他适配器(如eth0)的本地环回,这些适配器将具有WAN IP。通过执行*,它可以转发来自本地环回以及来自WAN的任何请求。因此*路由所有请求,其中127.0.0.1仅执行来自计算机本身的请求。

如果您想允许外部转发,但限制谁可以执行此操作,您可以通过执行*然后通过iptables限制服务器的通信来实现此目的。