0

我正在使用 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"
)

由于这不起作用,这让我相信我的朋友对适配器的看法是正确的。因此,我正在寻找有关适配器工作原理的详细信息。

4

1 回答 1

0

想出我的答案,想我会发布我的答案,以防有人感兴趣或像我一样用谷歌搜索答案但找不到。

所以当我这样做时,x.x.x.x这是我的远程服务器的 WAN IP。autossh 对此一无所知,因为 IP 不是它的适配器之一。如果您ifconfig在服务器上运行,那么您将获得本地环回127.0.0.1和其他适配器eth0,例如 WAN IP。通过执行*,它会转发来自本地环回以及来自 WAN 的任何请求。所以*路由所有请求,127.0.0.1只有来自机器本身的请求。

如果您想允许外部转发,但限制谁可以这样做,您可以通过这样做*然后限制服务器的通信来实现这一点iptables

于 2015-02-06T16:50:59.070 回答