2015-02-06 76 views
0

我使用autossh並設置它像顯示在下面的例子:http://surniaulula.com/2012/12/10/autossh-startup-script-for-multiple-tunnels/的CentOS與AutoSSH 127.0.0.1與*

我發現它的作品真的很好,但需要一些澄清。特別是,在下面的例子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

想通了我的答案,我想我會發布我的答案,以防萬一有興趣或谷歌搜索像我一樣的答案,但沒有找到它。

所以當我做了x.x.x.x這是我的遠程服務器的WAN IP。由於IP不是它的適配器之一,autossh並不知道這一點。如果你在服務器上運行ifconfig,那麼你將得到你的本地環回127.0.0.1和其他適配器,如eth0,這將有WAN IP。通過執行*,它確實轉發任何請求都來自本地環路以及來自WAN。所以*路由所有請求,其中127.0.0.1只是來自機器本身。

如果您想允許外部轉發,但限制誰可以這樣做,您可以通過執行*來實現此目的,然後通過iptables限制服務器的通信。