如何通过中转服务器直接从受防火墙限制的目标服务器远程下载文件?
如何通过中转服务器直接从受防火墙限制的目标服务器远程下载文件?
嗨,我来帮你搞定这个问题!你遇到的这种“跳板机中转直接传文件”的需求,其实用scp自带的代理功能就能完美解决——完全不需要在bouncer服务器上占用存储空间,文件会直接从target服务器通过bouncer中转到你的WSL2本地,一步到位。
给你两种实用的方案,选你觉得顺手的来:
方案一:直接在scp命令里指定跳板机
如果你的WSL2里的OpenSSH版本是7.3及以上(现在大部分WSL的SSH都满足这个要求),可以直接用-J参数来指定中转服务器。命令格式如下:
scp -J your_bouncer_username@bouncer_host:bouncer_port your_target_username@target_host:/path/to/your/star_catalog /local/wsl/path/to/save/
- 把
your_bouncer_username换成你在bouncer上的账号名,bouncer_host是bouncer的服务器地址(IP或域名),bouncer_port如果不是默认的22端口就填上,默认的话可以省略:bouncer_port这部分; your_target_username是你在target服务器的账号,/path/to/your/star_catalog是目标文件在target上的路径;- 最后面的
/local/wsl/path/to/save/是你要把文件存到WSL2里的本地路径(也可以直接写Windows的路径,比如/mnt/c/Users/YourName/Documents/)。
执行命令后,会依次提示你输入bouncer和target服务器的密码(如果是密钥登录的话就不用输密码,更方便),文件就会直接中转过来了。
方案二:配置SSH Config简化操作
如果以后还要经常从target下载文件,不想每次都输一大串命令,可以配置SSH的config文件来简化操作:
- 在WSL2里打开终端,编辑
~/.ssh/config文件(如果没有这个文件就直接创建一个):
nano ~/.ssh/config
- 把下面的内容粘贴进去,替换成你自己的信息:
Host bouncer User your_bouncer_username HostName bouncer_host Port bouncer_port # 非22端口才需要,默认22可省略 Host target User your_target_username HostName target_host ProxyJump bouncer
- 保存退出(nano里按
Ctrl+O回车,再Ctrl+X)。
之后你再用scp下载文件,只需要敲简单的命令就行:
scp target:/path/to/your/star_catalog /local/wsl/path/to/save/
是不是方便多了?
另外提醒一下,如果你的bouncer或target服务器需要用SSH密钥登录,记得把本地的公钥提前传到对应的服务器上(用ssh-copy-id命令就行),这样就不用每次输密码了,效率更高。
这个方法完全不需要等VPN审批,现在就能用,刚好能帮你省出那一周的时间来做正事~
备注:内容来源于stack exchange,提问作者condosz
相关产品推荐
相关产品推荐

