我正在使用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"
)
由于这不起作用,它让我相信我的伙伴关于适配器是正确的。如果有人可以向我提供适配器内容如何工作的一些细节,或者链接到解释它的好文章,我会很感激。
答案 0 :(得分:0)
弄清楚我的答案,想到我会发布我的答案,万一有人感兴趣或谷歌搜索我的答案而不是找到答案。
所以,当我做x.x.x.x
时,这是我的远程服务器的WAN IP。 autossh并不知道这一点,因为IP不是它的适配器之一。如果您在服务器上运行ifconfig
,那么您将获得127.0.0.1
和其他适配器(如eth0
)的本地环回,这些适配器将具有WAN IP。通过执行*
,它可以转发来自本地环回以及来自WAN的任何请求。因此*
路由所有请求,其中127.0.0.1
仅执行来自计算机本身的请求。
如果您想允许外部转发,但限制谁可以执行此操作,您可以通过执行*
然后通过iptables
限制服务器的通信来实现此目的。