引用:
pcca寫到:
我有一台伺服器放在托管中心, 因為有防火墻的關係, 所以 FTP, SSH 都無法從外部連接進去。
公司同伴要 upload 修改 PHP 的檔案都很麻煩。
晚了3萬年才看到…熊也來分享一下自己的經驗…
如果什麼都被擋…熊只想到用reverse ssh tunneling…
如:
Server (Public IP: 2.2.2.2)
Workstation (Public IP: 3.3.3.3)
那要Workstation可以連上Server…必須由Server做一個reverse ssh tunneling…
如果Server的ssh port是22,可以將這port forward到Workstatio任何一個沒有使用的port…如9922
Server (22) -- reverse SSH tunnel ---> Workstation (9922) <--- PC
@Server
ssh -NfR 9922:127.0.0.1:22 workstation_user@3.3.3.3
-N: 不執行指令
-f: 背景執行
-R: (R)emote Port, 另一個常用的是(L)ocal port
-127.0.0.1: localhost
-22: SSH local port
-9922: SSH Remote port
-workstation_user: Remote Workstation用來做tunnel的帳號
-3.3.3.3: Remote Workstation IP
@Workstation
ssh server_user@127.0.0.1 -p 9922
-server_user: User in Server
-9922: 本地port (任何request將由這9922傳送至Server的port 22)
那只要你公司的同伴sftp到Workstation(3.3.3.3 or local IP)的9922就可以SFTP檔案到Server
FTP的道理也一樣…只是port改成21(非ssh的22).
如果需要保持連線…可用autossh來幫忙…
熊懂得也不多…如有錯漏地方…還請指教。
p.s. "因為有防火墻的關係, 所以 FTP, SSH 都無法從外部連接進去。"
連ssh都進不去…那怎麼連上去用這台server?難道要“走”進去才能用?