有时候复现代码的readme文件里会直接用到脚本,需要去外网下载资料,但是服务器又不能下代理,可以使用以下方法来用本地代理实现服务器代理
1.查询本地代理的端口,如图是7897,同时把代理由规则改为全局
2.在cmd中输入以下两行命令:
set http_proxy=http://127.0.0.1:YourPort set https_proxy=http://127.0.0.1:YourPort #YourPort就是上面查询到的端口号输入完成后,不会有任何提示,这是正常的
3.在PowerShell中输入以下命令:
set http_proxy=http://127.0.0.1:YourPort set https_proxy=http://127.0.0.1:YourPort #同样的。YourPort就是刚刚查到的端口号输入完成后,不会有任何提示,这是正常的
4.在cmd中输入以下命令:
ssh -R 2333:127.0.0.1:YourPort -p port username@ip #YourPort是刚刚查询到端口号 #port指的是你使用的服务器所在的端口,这个在登录服务器时会用到,下图是xshell右下角显示端口的情况 #-p port 可能不是强制性的,但我不用的话就无法使用,原因不太清楚 #username是你在服务器上账号的名字 #ip是服务器的ip图片已经过ai处理,ip port username均非真实值
此时,cmd会要求输入密码,也就是你在服务器上的账号对应的密码,但输入过程是不显示的,请提前确定好大小写,并把输入法改成英文,输入完后按回车,如果显示permission denied,请先考虑是不是密码记错,不是的画就是输入错误,可以使用简单点的密码,多试几次,同时注意不要一不小心敲错
显示welcome那一段话就代表成功了
5.在服务器端(如xshell),输入以下命令
export http_proxy=http://127.0.0.1:2333 export https_proxy=http://127.0.0.1:2333输入以上内容同样不会有什么提示。
此时,服务器流量走2333端口,转发到本地127.0.0.1:YourPort,代理就完成了
6.检查。在服务器端(如xshell)输入以下内容:
curl cip.cc①如果很久不显示内容,代表当前网很卡,因为这个网址在国内也能访问,可以检查下网络
②如果显示内容为国内ip,且和本地访问cip.cc网站结果一致,说明代理成功,但是端口没有接到vpn上,问题可能出现在:YourPort使用错误,可以去代理软件检查是不是正确的结果
③如果显示内容为国内ip,服务器地址,而不是主机地址,说明代理失败,服务器的流量压根没通过ssh隧道走主机,请仔细看教程
④如果显示国外ip,与代理所使用的ip对应,就成功了。当然,也可能不对应(我也不清楚具体原因,但是我的就不对应)
此时就可以在服务器上下载Google drive 或者是其他国外平台上的东西了。
可以在服务器上开多个窗口,都会转发,但是不能关闭输入这些指令的窗口,否则隧道会被摧毁