说明:
从公司登国外服务器那网速真的是。。。但好多游戏都在国外。。。这怎么办。
之前还在想要找些代理,但代理说实在的免费的确实速度不行,收费的感觉也浪费。后面发现国内云服务器登陆国外服务器速度还算正常,因此在国内某云服务器(这里以“跳板机”暂代)上写了个shell,通过shell代理登陆国外服务器。
原理:
通过在各国外服务器上设置成密钥登陆,然后在“跳板机”上通过脚本调用ssh -i ${PemFile} -o StrictHostKeyChecking=no ${User}@${ServerIP}来实现登陆。
具体:
#后面增加服务器的话,只需要在下面添加一行,格式为:序号,主机名,用户,IP,密钥文件
#执行的话,就需要输入前面的序号即可登陆!
# cat /home/shell/proxy.sh #!/bin/bash # used to login foreign servers # carl 20150104 1st # PATH # define some variables ServerArray=( 0,host1,user1,xxx.xxx.xxx.xxx,/home/ssh/host1.pem 1,host2,user2,xxx.xxx.xxx.xxx,/home/ssh/host2.pem 2,host3,uesr3,xxx.xxx.xxx.xxx,/home/ssh/host3.pem ) Length=${#ServerArray[@]} # function start, list server function ListServer() { echo "***** Choose the Server to login ******" echo "****************************************" for Server in ${ServerArray[@]}; do echo $Server done echo "****************************************" echo "***** Input First num. Quit with q *****" read Choice } # end # function start ,login server function Login() { ListServer if [[ $Choice == q ]]; then exit elif [[ $Choice -ge 0 && $Choice -lt $Length ]]; then #echo "${ServerArray[${Choice}]}" ServerName=`echo "${ServerArray[${Choice}]}"|cut -f2 -d ','` User=`echo "${ServerArray[${Choice}]}"|cut -f3 -d ','` ServerIP=`echo "${ServerArray[${Choice}]}"|cut -f4 -d ','` PemFile=`echo "${ServerArray[${Choice}]}"|cut -f5 -d ','` echo "Loging in ${ServerName}......" ssh -i ${PemFile} -o StrictHostKeyChecking=no ${User}@${ServerIP} else echo "Input error, Check input!!!" ListServer fi } #end Login
附录:
“shell脚本实现代理登陆 二透过防火墙代理登陆”,主要讲如果被登陆服务器本身也是透过代理放出来的,即被登陆服务器本身也是处理防火墙内的,这时该如何实现。